์ด ํฌ์คํ ์ ์ด์ ํฌ์คํ ๊ณผ ์ด์ด์ง๋๋ค :)
์ง๊ธ๊น์ง ํ๋์ ๋
ธ๋์ Java์ ํ๋ก์ ์ค์นํ๊ณ , ํ๋ก ์ค์ ํ์ผ์ ์์ ํ์ต๋๋ค.
์ด๋ฒ ํฌ์คํ
์์๋ ๊ฐ ๋
ธ๋์ ๋ง๊ฒ ์ค์ ์ ๋ณ๊ฒฝํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค !!
1. Master์๋ฒ ์ค์
์ด๋ฒ ๋จ๊ณ์์๋ Master ์๋ฒ์ ์ค์ ์ ๋ณ๊ฒฝํฉ๋๋ค :)
Master ์๋ฒ์ SSH๋ก ์ ์ํฉ๋๋ค.
1) Hostname ๋ณ๊ฒฝ
hostnamectl ๋ช ๋ น์ด๋ฅผ ํตํด ํธ์คํธ ์ด๋ฆ์ ๋ณ๊ฒฝํฉ๋๋ค.
sudo hostnamectl set-hostname master.hadoop
![](https://blog.kakaocdn.net/dn/bcWvTe/btqYDksThP7/uR4o5OctgwmOlgZdC53lyK/img.png)
2) /etc/hosts ํ์ผ ์์
hostsํ์ผ์ ์์ ํฉ๋๋ค.
hosts ํ์ผ์ ์์ ํ๊ธฐ ์ , EC2์ฝ์์์ ๊ฐ ์ธ์คํด์ค์ ํ๋ผ์ด๋นIP์ฃผ์๋ฅผ ์์๋ก๋๋ค :)
sudo vi /etc/hosts
<ํธ์คํธIP> <ํธ์คํธ Name>
172.31.3.145 master.hadoop master
172.31.5.127 slave1.hadoop slave1
172.31.1.245 slave2.hadoop slave2
172.31.13.143 slave3.hadoop slave3
![](https://blog.kakaocdn.net/dn/biGJXN/btqYDjHrcg1/f87PrQrVv4UiWFxwokGHZ0/img.png)
3) SSH ํค ์์ฑ ๋ฐ SSH ์ค์ ๋ณ๊ฒฝ
ssh-keygen ๋ช
๋ น์ด๋ก SSHํค๋ฅผ ์์ฑํ๊ณ SSH๋ก ์ ์ ๊ฐ๋ฅํ๋๋ก /etc/ssh/sshd_config ํ์ผ์ ์์ ํฉ๋๋ค.
* ์ฃผ์ * ์ง๊ธ ํ๋ SSH์ค์ ์ ๋งค์ฐ ์ทจ์ฝํ ์ค์ ์ด๋ฉฐ, ํ
์คํธ ์ฉ๋๋ก๋ง ์ฌ์ฉํ์
์ผ ํฉ๋๋ค.
๋จผ์ , SSH ํค๋ฅผ ์์ฑํฉ๋๋ค.
sudo ssh-keygen
![](https://blog.kakaocdn.net/dn/1BkQv/btqYvdIB5md/ypu3T9PC3jGGebIO2dZkK0/img.png)
์ด์ ssh ์ค์ ํ์ผ์ ์์ ํฉ๋๋ค.
sudo vi /etc/ssh/sshd_config
๋จผ์ 2๊ฐ๋ฅผ ๋ณ๊ฒฝํ ๊ฑด๋ฐ, 38๋ฒ์งธ ์ค์ "PermitRootLogin" ์ ์ฃผ์์ ํด์ ํฉ๋๋ค.
![](https://blog.kakaocdn.net/dn/Zvss9/btqYvdBYXYL/Mzt7Z0hqOZT9m5cfyA5L5K/img.png)
๊ทธ๋ฆฌ๊ณ 65๋ฒ์งธ ์ค์ "PasswordAuthentication" ๋ฅผ yes๋ก ๋ณ๊ฒฝํฉ๋๋ค.
![](https://blog.kakaocdn.net/dn/BUWJA/btqYJ9qxoWq/KeIKV4WrMGUYfAHjl2Rtzk/img.png)
์ ์ฅํ ์ค์ ํ์ผ์ ๋ฆฌ๋ก๋ํ๊ธฐ ์ํด ssh ๋ฐ๋ชฌ์ ์ฌ์์ ํฉ๋๋ค.
sudo systemctl restart sshd
Root ๊ณ์ ์ ๋น๋ฐ๋ฒํธ๋ฅผ ์์ฑํฉ๋๋ค.
sudo passwd root
4) Slaves ํ์ผ ์ค์
์ด ์ค์ ์ Master ์๋ฒ์์๋ง ์งํํฉ๋๋ค!
/usr/local/hadoop-2.10.1/etc/hadoop/slaves ํ์ผ์ Slave๊ฐ ๋ ๋
ธ๋๋ค์ ๋ช
์ํด์ฃผ์ด์ผ ํฉ๋๋ค.
vi ํธ์ง๊ธฐ๋ก slaves ํ์ผ์ ์ค์ ์ ๋ณ๊ฒฝํด์ค๋๋ค.
vi /usr/local/hadoop-2.10.1/etc/hadoop/slaves
slave1
slave2
slave3
![](https://blog.kakaocdn.net/dn/bdi5v7/btqYAs56m9X/WBfZXhBsbmWL2f8QN267Sk/img.png)
์ด์ ๋ค์์ผ๋ก ๋์ด๊ฐ๋๋ค.
2. Slave1~3 ์๋ฒ ์ค์
์ด๋ฒ ๋จ๊ณ์์๋ Slave ์๋ฒ์ ์ค์ ์ ๋ณ๊ฒฝํฉ๋๋ค :)
์๋ ์์๋๋ก ๊ฐ Slave1, Slave2, Slave3์์ ๋ชจ๋ ์คํ์์ผ์ฃผ์ธ์!!
Slave ์๋ฒ์ SSH๋ก ์ ์ํฉ๋๋ค.
1) Hostname ๋ณ๊ฒฝ
hostnamectl ๋ช
๋ น์ด๋ฅผ ํตํด ํธ์คํธ ์ด๋ฆ์ ๋ณ๊ฒฝํฉ๋๋ค.
๊ฐ ํธ์คํธ ์ด๋ฆ์ ๋ง๊ฒ ๋ณ๊ฒฝํฉ๋๋ค.
sudo hostnamectl set-hostname slave1.hadoop
![](https://blog.kakaocdn.net/dn/cnEA9N/btqYwhqqV0F/tlTdDB21N5Dpc30rc1jjCK/img.png)
2) /etc/hosts ํ์ผ ์์
hostsํ์ผ์ ์์ ํฉ๋๋ค.
sudo vi /etc/hosts
<ํธ์คํธIP> <ํธ์คํธ Name>
172.31.3.145 master.hadoop master
172.31.5.127 slave1.hadoop slave1
172.31.1.245 slave2.hadoop slave2
172.31.13.143 slave3.hadoop slave3
![](https://blog.kakaocdn.net/dn/47FVM/btqYB53R64c/hblkAdKfLPqRpImRXwkvhk/img.png)
3) SSH ํค ์์ฑ ๋ฐ SSH ์ค์ ๋ณ๊ฒฝ
ssh-keygen ๋ช
๋ น์ด๋ก SSHํค๋ฅผ ์์ฑํ๊ณ SSH๋ก ์ ์ ๊ฐ๋ฅํ๋๋ก /etc/ssh/sshd_config ํ์ผ์ ์์ ํฉ๋๋ค.
* ์ฃผ์ * ์ง๊ธ ํ๋ SSH์ค์ ์ ๋งค์ฐ ์ทจ์ฝํ ์ค์ ์ด๋ฉฐ, ํ
์คํธ ์ฉ๋๋ก๋ง ์ฌ์ฉํ์
์ผ ํฉ๋๋ค.
๋จผ์ , SSH ํค๋ฅผ ์์ฑํฉ๋๋ค.
sudo ssh-keygen
![](https://blog.kakaocdn.net/dn/dvbFTn/btqYJ8ZwaeP/2vyYxEdcIarJBbTcfLojQK/img.png)
์ด์ ssh ์ค์ ํ์ผ์ ์์ ํฉ๋๋ค.
sudo vi /etc/ssh/sshd_config
๋จผ์ 2๊ฐ๋ฅผ ๋ณ๊ฒฝํ ๊ฑด๋ฐ, 38๋ฒ์งธ ์ค์ "PermitRootLogin" ์ ์ฃผ์์ ํด์ ํฉ๋๋ค.
![](https://blog.kakaocdn.net/dn/Zvss9/btqYvdBYXYL/Mzt7Z0hqOZT9m5cfyA5L5K/img.png)
๊ทธ๋ฆฌ๊ณ 65๋ฒ์งธ ์ค์ "PasswordAuthentication" ๋ฅผ yes๋ก ๋ณ๊ฒฝํฉ๋๋ค.
![](https://blog.kakaocdn.net/dn/BUWJA/btqYJ9qxoWq/KeIKV4WrMGUYfAHjl2Rtzk/img.png)
์ ์ฅํ ์ค์ ํ์ผ์ ๋ฆฌ๋ก๋ํ๊ธฐ ์ํด ssh ๋ฐ๋ชฌ์ ์ฌ์์ ํฉ๋๋ค.
sudo systemctl restart sshd
Root ๊ณ์ ์ ๋น๋ฐ๋ฒํธ๋ฅผ ์์ฑํฉ๋๋ค.
sudo passwd root
์ด์ ๋ค์์ผ๋ก ๋์ด๊ฐ๋๋ค.
3. SSH ํค ๊ตํ
์ด ๋จ๊ณ๋ ๊ฐ ์๋ฒ์์ ๋์ผํ๊ฒ ์คํํฉ๋๋ค! (Master, Slave1, Slave2, Slave3 4๋์ ์์คํ
๋ชจ๋์์ ์งํํฉ๋๋ค)
์ ๋ค๋ณด๋ Master์๋ฒ์์๋ง ์งํํด๋ ๋์ง ์์๋ ํ๋ ์๋ฌธ์ด ๋๋๋ฐ... ๋ค์์ ๋ค์ ํ
์คํธ ํด๋ณด๊ฒ ์ต๋๋ค!! ์ผ๋จ ์ง๊ธ์ ์ด๋ ๊ฒ ๊ฐ๋๋ค!
์ด ์ค์ ์ ์๋ฃํ๋ฉด ssh ๋ช
๋ น์ด๋ก ์ด๋ค ์๋ฒ์๋ ๊ทธ๋ฅ ์ ์ํ ์ ์๊ฒ ๋ฉ๋๋ค!!
Master ์๋ฒ์ ํค๋ฅผ ๊ตํํฉ๋๋ค.
ssh-copy-id root@master
![](https://blog.kakaocdn.net/dn/b4MWh3/btqYDjndHuF/Ih9itgBmgwalwmkMcqCicK/img.png)
slave1 ์๋ฒ์ ํค๋ฅผ ๊ตํํฉ๋๋ค.
ssh-copy-id root@slave1
![](https://blog.kakaocdn.net/dn/3g9vy/btqYvd9C3A6/p4veiNFMB7v6c78UIXKqXk/img.png)
slave2 ์๋ฒ์ ํค๋ฅผ ๊ตํํฉ๋๋ค.
ssh-copy-id root@slave2
![](https://blog.kakaocdn.net/dn/llJkl/btqYxpBPfTX/3IOjiZbz4jHk3NskNa5G51/img.png)
slave3 ์๋ฒ์ ํค๋ฅผ ๊ตํํฉ๋๋ค.
ssh-copy-id root@slave3
![](https://blog.kakaocdn.net/dn/cv9iEV/btqYxp2R619/FkHWsiUM3NJ0BGgQfwSzek/img.png)
๋ชจ๋ ์๋ฃ ๋์๋ค๋ฉด! ๋ค์ ๋จ๊ณ๋ก ๋์ด๊ฐ๋๋ค.
4. HDFS ํ์ผ ํฌ๋ฉง
์ฒ์ ๋์คํฌ๋ฅผ ์ฌ์ฉํ ๋, OS์ ๋ง๊ฒ ํ์ผ ์์คํ
์ ํฌ๋ฉงํ๋๊ฒ ์ฒ๋ผ, HDFS๋ฅผ ์์ํ๊ธฐ ์ ํฌ๋ฉง์ ์งํํฉ๋๋ค :)
NameNode ํฌ๋ฉง์ Master ์๋ฒ์์, DataNode ํฌ๋ฉง์ Slave1, Slave2, Slave3 ์๋ฒ์์ ์งํํฉ๋๋ค!
1) NameNode ํฌ๋ฉง
๋จผ์ ๋ง์คํฐ ์๋ฒ์์ ์๋์ ๋ช
๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
๋ช
๋ น์ด ์คํ ํ /data ๋๋ ํฐ๋ฆฌ๊ฐ ์์ฑ๋๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
/usr/local/hadoop-2.10.1/bin/hdfs namenode -format
![](https://blog.kakaocdn.net/dn/bKiHz3/btqY5LRfqaZ/uNVoWKqs6cp7tqgIoibS8k/img.png)
(์ค๊ฐ์๋ต)
![](https://blog.kakaocdn.net/dn/banz54/btqYZ69uafI/7gQBuhs9jjUDCVhwQziruk/img.png)
2) DataNode ํฌ๋ฉง
Slave ๋
ธ๋ (DataNode) 3๋ ๋ชจ๋์์ ์๋์ ๋ช
๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
๋ง์ฐฌ๊ฐ์ง๋ก, ๋ช
๋ น์ด ์คํ ํ /data ๊ฒฝ๋ก๊ฐ ์์ฑ๋จ์ ํ์ธํ ์ ์์ต๋๋ค.
![](https://blog.kakaocdn.net/dn/rM72K/btqYQwnBKCg/eU3LTgLaoWKWVNzRZ0voV1/img.png)
(์ค๊ฐ์๋ต)
![](https://blog.kakaocdn.net/dn/kQAun/btqY7ouHmA1/KX8hp2KRUF4vRP2RtzJmgK/img.png)
5. HDFS & YARN ์์ํ๊ธฐ
ํ๋ก ํด๋ฌ์คํฐ๋ฅผ ์คํํ๊ธฐ ์ํด์, HDFS๋ฅผ ์์ํ ํ์ YARN์ ์คํ์์ผ์ฃผ๋ฉด ๋ฉ๋๋ค.
HDFS๋ ๋ง ๊ทธ๋๋ก ํ์ผ์์คํ
, ๊ทธ๋ฆฌ๊ณ YARN์ ๋ฆฌ์์ค ๋งค๋์ ์
๋๋ค :)
1) HDFS ์์ํ๊ธฐ
์๋ ๋ช
๋ น์ด๋ก HDFS๋ฅผ ์์ํฉ๋๋ค.
/usr/local/hadoop-2.10.1/etc/hadoop/slaves์ ๋ฑ๋ก๋ ๋
ธ๋์ ๋ชจ๋ SSH Trusted Access ๊ฐ๋ฅํ๋ค๋ฉด,
์๋ ๋ช
๋ น์ด ํ์ค๋ก ๋ชจ๋ ๋
ธ๋์ ๋ฐ๋ชฌ์ ๋์ธ ์ ์์ต๋๋ค :)
/usr/local/hadoop-2.10.1/sbin/start-dfs.sh
![](https://blog.kakaocdn.net/dn/cbI3xQ/btqY9073yCm/I2K9uUG8HqqG101nqqSzBk/img.png)
์ด์ ๊ฐ ๋
ธ๋์์๋ ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด, Master ๋
ธ๋์์๋ NameNode ๋ฐ๋ชฌ์ด ๋์ํ๊ณ , Slave ๋
ธ๋์์๋ DataNode ๋ฐ๋ชฌ์ด ๋์ํ๊ฒ ๋ฉ๋๋ค.
๊ฐ ๋ฐ๋ชฌ์ด ์ ์์ ์ผ๋ก ๋์ํ๋์ง ์ฌ๋ถ๋ jps ๋ช
๋ น์ด๋ก ํ์ธํด ๋ณผ ์ ์์ต๋๋ค.!
![](https://blog.kakaocdn.net/dn/ZuSqW/btqYZ536g20/QGeoXVYQ9a9lK7gk0pMW80/img.png)
HDFS๋ฅผ ์ ์์ ์ผ๋ก ์์ํ์ จ๋ค๋ฉด ์น๋ธ๋ผ์ฐ์ ๋ก ์ ์ ๊ฐ๋ฅํฉ๋๋ค:)
http://<Master IP>:50070
![](https://blog.kakaocdn.net/dn/bPDsi3/btqY9ZuHoDX/24PrS2ad2RHhrrcGKvS6R0/img.png)
![](https://blog.kakaocdn.net/dn/B0Fr4/btqZdkLRdju/0HaFWjQbWJV01xtE79FPS1/img.png)
2) YARN (Resource Manager) ์์ํ๊ธฐ
์๋ ๋ช
๋ น์ด๋ก YARN๋ฅผ ์์ํฉ๋๋ค.
/usr/local/hadoop-2.10.1/etc/hadoop/slaves์ ๋ฑ๋ก๋ ๋
ธ๋์ ๋ชจ๋ SSH Trusted Access ๊ฐ๋ฅํ๋ค๋ฉด,
์๋ ๋ช
๋ น์ด ํ์ค๋ก ๋ชจ๋ ๋
ธ๋์ ๋ฐ๋ชฌ์ ๋์ธ ์ ์์ต๋๋ค :)
/usr/local/hadoop-2.10.1/sbin/start-yarn.sh
![](https://blog.kakaocdn.net/dn/bEyJ0s/btqZdl44Thq/JAflkWwt3DDOTpldCw2ID1/img.png)
![](https://blog.kakaocdn.net/dn/CMCp2/btqZdkylQ6M/4mjs8HzLpKYV9nqlzVVku1/img.png)
Yarn์ ์ ์์ ์ผ๋ก ์์ ํ์ จ๋ค๋ฉด, ์น๋ธ๋ผ์ฐ์ ์์๋ ์ ์ ๊ฐ๋ฅํฉ๋๋ค :)
http://<Master IP>:8088
![](https://blog.kakaocdn.net/dn/cfs97f/btqZfiuZvDj/ytyHlwQr2bX442ylWveOJK/img.png)
์ด๊ฒ์ ๊ฒ ํด๋ฆญํด์ ํ์ธํด๋ณด์ธ์!
์ฌ๊ธฐ๊น์ง ์งํ ํ์
จ๋ค๋ฉด HDFS๋ฅผ ๊ตฌ์ถํ๋ ๋ถ๋ถ์ ์๋ฃ ๋์์ต๋๋ค!! ๐ค๐ค๐ค
5. HDFS & YARN ์ข ๋ฃํ๊ธฐ
์์๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ์ข ๋ฃํ ๋์๋ ์์์ ๋ง์ถฐ ์งํํด์ฃผ์๋ฉด ๋ฉ๋๋ค :)
HDFS & YARN์ ์ข ๋ฃํ๋ ๊ฒ์ ์๋ ๋ ๋ช ๋ น์ด๋ฅผ ์์๋๋ก ์งํํ์๊ฑฐ๋ stop-all.sh๋ฅผ ์คํ์์ผ์ฃผ์ ๋ ๋ฉ๋๋ค :)
/usr/local/hadoop-2.10.1/sbin/stop-yarn.sh
![](https://blog.kakaocdn.net/dn/y7JZV/btqZlPykeTZ/HDisJvEb4MtgF7xJb0Im6K/img.png)
/usr/local/hadoop-2.10.1/sbin/stop-dfs.sh
![](https://blog.kakaocdn.net/dn/bnuZW8/btqZfgDVD8H/LJNkaSIQYEOwCuVxXWtbSK/img.png)