DAY78. Hadoop Basic Master ์๋ฒ ์ค์
Hadoop ์์คํ
๊ฐ์
๊ตฌ๊ธ : GFS(Google File System)์ ๋งต๋ฆฌ๋์ค(MapReduce)
2005๋
๋๊ทธ์ปคํ
๊ตฌํ
2008๋
์ํ์น ์ต์์ ํ๋ก์ ํธ ์น๊ฒฉ
์ฃผ์ ๊ตฌ์ฑ
- HDFS(Hadoop Distributed File System) : ์ ์ฅ์
- Map Reduce : ๋ถ์ฐ์ฒ๋ฆฌ ์์คํ
Hadoop ์ด์
์ฌ๋ฌ ๋ ์๋ฒ์ ๋ฐ์ดํฐ ์ ์ฅ
๊ฐ ์๋ฒ์์ ๋์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ(๋ถ์ฐ์ฒ๋ฆฌ)
๊ธฐ์กด์ RDBMS ๋์ฒด
๊ณ ๊ฐ ์ฅ๋น ๋์ ๋ฆฌ๋
์ค ์๋ฒ๋ก ๋์ฒด
์คํ ์์ค (SW ๋ผ์ด์ ์ค, ๊ณ ๊ฐ HW ๋น์ฉ ์ ๊ฐ)
Hadoop ์์ฝ ์์คํ
Hadoop+Hive+Spark ์ํํธ์จ์ด ์ํคํ ์ฒ
Hadoop ๋ถ์ฐ ๋ณ๋ ฌ ์ฒ๋ฆฌ
ex) Word Count
Hadoop ๋ฐ์ ๊ณผ์
Hadoop 1.0 | Hadoop 2.0 |
- HDFS & MapReduce ๊ตฌ์ฑ, MapReduce ์คํ ์ ๋งตํผ๋ ๋ชจ๋ ๋์ํ๋๋ฐ ๋ฆฌ๋์๋ ๋๊ณ ์๊ฑฐ๋ ๊ทธ ๋ฐ๋์ ๊ฒฝ์ฐ ๋ฐ์ - ์ ์ฒด ํด๋ฌ์คํฐ ์ฌ์ฉ๋ฅ ๋ฎ์ |
- YARN(์)์ด ๋์
๋๋ฉด์ ์ ์ฒด ํด๋ฌ์คํฐ์ ์์(resource) ์ ๋ณด๋ฅผ ํ ๋๋ก ํจ๊ณผ์ ์ผ๋ก ์์์ ํ ๋นํ์ฌ ๋งต๋ฆฌ๋์ค ํ์คํฌ ์คํ - ์ ์ฒด ํด๋ฌ์คํฐ ์ฌ์ฉ๋ฅ ํฅ์ - YARN์ ๋ฆฌ์์ค ๋งค๋์ ๋ ์ ์ฒด ํด๋ฌ์คํฐ์ ๋ฆฌ์์ค ๊ด๋ฆฌ/ํ ๋น |
Hadoop1.0 ์ํคํ ์ฒ
Job Tracker : ์ฌ์ฉ์๋ก ๋ถํฐ Job ์คํ ์์ฒญ ๋ฐ๊ณ , ํด๋น Task Tracker์ ํ ๋น
Task Tracker : ๋ก์ปฌ Disk ๋์์ผ๋ก ์ค์ Task ์คํ, Job Tracker ์งํ ๋ณด๊ณ
Hadoop2.0 ์ํคํ ์ฒ
Master vs Slave server
Master Server | Slave server |
NameNode, Resource Manager ๋ณด์กฐ ๋ค์๋
ธ๋ ์ค์น ์๋ฒ ๋์คํฌ : 2 ~ 4๊ฐ ๋ฉ๋ชจ๋ฆฌ : 32GB ~ 128GB (64GB : 1์ต ํ์ผ ์ ์ฅ) CPU : ์ฝ์ด ์ 16~24๊ฐ |
DataNode, Node Manager ์ค์น ์๋ฒ ๋์คํฌ : 4 ~ 12๊ฐ(1TB~3TB) ๋ฉ๋ชจ๋ฆฌ : 24GB ~ 48GB CPU : ์ฟผ๋ ์ฝ์ด 2๊ฐ ์ด์ |
Job Tracker : Job ์คํ ์์ฒญ ๋ฐ๊ณ , Task Tracker์ ํ ๋น
Task Tracker : ์ค์ Task ์คํ, Job Tracker ์งํ ์ํ ๋ณด๊ณ
NameNode(Master Server)
1) HDFS์์์ NameNode(master)๋ ๋ถ์ฐํ๊ฒฝ์์ Job ๋ถ๋ฐฐ, ์ง์ ๋ฐ ๊ฐ๋
2) ์์ ์ ๋์์ด ๋๋ ํ์ผ์ ๋ธ๋ก(block)๋จ์๋ก ๋๋์ด์ slave node ๋ถ๋ฐฐ
3) ๋ฉํ๋ฐ์ดํฐ ์ ์ฅ
- ํ์ผ ๋ณ ๋ธ๋ก, ๊ฐ ๋ธ๋ก ๋ณ ์ ๋ณด(DataNode ์์น ๋ฑ)
- ์ค์ ํ์ผ์ ๋ธ๋ก์ DataNode์ ์ ์ฅ๋จ
4) ์ ์ฒด ๋ถ์ฐ ํ์ผ์์คํ ์ด์ ์ ๋ฌด ์ฒดํฌ, DataNode(slave) ๋ฐ์ดํฐ ์ ์ถ๋ ฅ ์์ (low-level I/O tasks) ์ง์
5) NameNode ๋ฌธ์ ๋ฐ์ ์ฌ Hadoop ํด๋ฌ์คํฐ ์ ์ฒด ์์คํ ์ฐจ๋จ
- Secondary NameNode ์ด์ฉ(NameNode ์ด์คํ) ๋ฌธ์ ํด๊ฒฐ
DataNode(Slave Server)
1) ์ค์ HDFS(๋ถ์ฐํ์ผ์์คํ ) ๋์์ผ๋ก ์ฝ๊ธฐ ๋ฐ ์ฐ๊ธฐ์ ๋ชจ๋ ์์ ์ํ
2) ๋ชจ๋ ์์ ์ ๋์ ํ์ผ์ randomํ๊ฒ ๋ธ๋ก(block) ๋จ์๋ก ๋๋์ด ์งํ
3) DataNode ์์ ์ NameNode์ ์์ ๋ณด๊ณ , ๋ฉํ๋ฐ์ดํฐ ํ์ ์ ์ฅ
4) ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด ๋ค์ด๋ ์ฆ์ ๊ฐ Data node์ ๋ถ๋ฐฐ(Name node)
- HDFS๋ ํฐ ๋ฐ์ดํฐ ํ์ผ์ ์ฌ๋ฌ ๊ฐ๋ก ๋ถ๋ฆฌ์์ผ์ ๊ฐ node ์ฒ๋ฆฌ
5) ๊ฐ๊ฐ์ ์กฐ๊ฐ(chunk) ๋ ์ฌ๋ฌ ๋์ ์ปดํจํฐ์ ์ค๋ณต์ ์ผ๋ก ๋ณต์
- ํ ์ปดํจํฐ์์ ์ฅ์ ๊ฐ ๋ฐ์ํด๋ ๋ค๋ฅธ ์ปดํจํฐ๋ฅผ ํตํด ๋ฐ์ดํฐ ์ด์ฉ
6) ๋ชจ๋ ํ์ผ์กฐ๊ฐ๋ค์ ํ๋์ namespace๋ฅผ ๊ณต์
- ํด๋ฌ์คํฐ ๋ด์ ๋ชจ๋ node๋ค์ ๊ณต์ ๋ ํ์ผ ์ด์ฉ
Hadoop ํด๋ฌ์คํฐ ๊ตฌ์ถ ์์คํ ๊ตฌ์ฑ๋
Master ์๋ฒ ์์ฑ/ํ๊ฒฝ ์ค์
1 .Master ์๋ฒ ์์ฑ
1) C๋๋ผ์ด๋ธ์ Master ํด๋ ์์ฑ
2) VMware > Home> Create a New Virtual Machine > ๋งจ ์๋ ์ต์ ์ ํ > Linux / CentOS 7 64-bit ์ค์ > Location์ Masterํด๋ > Maximum disk size 20.0 / Split ์ต์ ์ ํ
3) VMware Master > Edit virtual machine settings
- Memory 2048MB > Network Adapter์์ Advanced... > MAC Address์ Generate (MAC์ฃผ์ ์์ฑ)
- CD/DVD > Use ISO image file > CentOS 7 7 64-bit
2. ๋ฐฉํ๋ฒฝ ์ ๊ฑฐ
[Hadoop@localhost ~]$ su root -> ๊ด๋ฆฌ์ ๋ชจ๋ ์ง์
์ํธ:
[root@localhost hadoop]#
[root@localhost hadoop]# system status firewalld.service -> ๋ฐฉํ๋ฒฝ ๋ฐ๋ชจ ์ํ ํ์ธ
.
.
[root@localhost hadoop]# system stop firewalld -> ๋ฐฉํ๋ฒฝ ๋ฐ๋ชจ ์ค์ง
[root@localhost hadoop]# system mask firewalld -> ๋ฐฉํ๋ฒฝ ๋ฐ๋ชจ ์ ๊ฑฐ
Created symlink from /etc/systemd/system/firewalld.service to /dev/null
๋คํธ์ํฌ ์ค์
๋คํธ์ํฌ > ์ ์ ์ ํฑ๋๋ฐํด > ์์ธํ๋ณด๊ธฐ > IPv4์ฃผ์ (Linux์ค์ IP4์ฃผ์) > ๊ธฐ๋ณธ ๋ผ์ฐํ , ๋ค์์๋ฒ(DNS)ํ์ธ (๊ธฐ๋ณธ ๋ผ์ฐํ (๊ฒ์ดํธ์จ์ด))
* ๋ฉ๋ชจ์ฅ์ ๊ฐ์ธ ๋คํธ์ํฌ ์ ๋ณด ๋ฐ๋ก ๊ธฐ๋กํด๋๊ธฐ
์ ์ > MAC์ฃผ์ ์ ํ
IPv4 > IPv4๋ฐฉ์ ์๋ > ์ฃผ์์์ ์ค์ IP์ 4๋ฒ์งธ ์ซ์ ๋ณ๊ฒฝํด์ / ๊ฒ์ดํธ์จ์ด์ ๋ค์์๋ฒ๋ ๊ธฐ๋ณธ ์ค์ ๊ณผ ๋์ผํ๊ฒ > ์ ์ฉ
3. ํธ์คํธ ๋ค์์ค์
[Hadoop@localhost ~]$ su root -> ๊ด๋ฆฌ์ ๋ชจ๋ ์ง์
์ํธ:
[root@localhost hadoop]# hostnamectl set-hostname master -> ์๋ฒ ์ด๋ฆ ๋ณ๊ฒฝ
[root@localhost hadoop]# hostname -> ์๋ฒ ์ด๋ฆ ํ์ธ
master
[root@localhost hadoop]#
[root@localhost hadoop]# vi /etc/hosts -> ํธ์คํธ ํ๊ฒฝ ์ค์
์ด์ ๋จ๊ณ์์ ์ค์ ํ๋ Master ๊ฐ์ IP์ฃผ์ ๊ธฐ์
172. 16. 57. 5 master
172. 16. 57. 10 slave1
์ธํฐ๋ท ์ฐ๊ฒฐ ํ์ธ > Master์๋ฒ ์ฌ๋ถํ > ์ค์ > ๋คํธ์ํฌ > ์์ธํ๋ณด๊ธฐ์์ IPv4, ํ๋์จ์ด์ฃผ์, ๊ธฐ๋ณธ ๋ผ์ฐํ , ๋ค์์๋ฒ ์ฃผ์ ํ์ธ
4. Java ์ค์น
JRE ์ค์น ํ์ธ
[Hadoop@master ~]$ su
์ํธ:
[root@master hadoop]# yum list java*jdk-devel ->1.8 ๋ฒ์ ์ค์น
JDK ์ค์น
[Hadoop@master ~]$ su
์ํธ:
[root@master hadoop]# yum install java-1.8.0-openjdk-devel.x86_64
.
.
Is this ok [y/d/N]y
JDK ์ค์น ํ์ธ
Complete!
[root@master hadoop]# rpm -qa java-1.8.0-openjdk-devel.x86_64 -> JDK์ค์น ํ์ธ
Java-1.8.0-openjdk-devel-1.8.0.312.b07-1.e17_9.x86_64
[root@master hadoop]#
[root@master hadoop]#java -version -> JRE๋ฒ์ ํ์ธ
openjdk version "1.8.0_312"
5. Slave ํด๋ ์์ฑ(Master ํด๋ ๋ณต์ฌ)
Masterํด๋๊ฐ ์๋ C๋๋ผ์ด๋ธ ๊ณต๊ฐ์ Masterํด๋ ๋ณต์ฌ ํ Slave1๋ก ์ด๋ฆ ๋ณ๊ฒฝ