์ด ํฌ์คํ ์ ์ด์ ํฌ์คํ ๊ณผ ์ด์ด์ง๋๋ค :)
์ง๊ธ๊น์ง ํ๋์ ๋
ธ๋์ Java์ ํ๋ก์ ์ค์นํ๊ณ , ํ๋ก ์ค์ ํ์ผ์ ์์ ํ์ต๋๋ค.
์ด๋ฒ ํฌ์คํ
์์๋ ๊ฐ ๋
ธ๋์ ๋ง๊ฒ ์ค์ ์ ๋ณ๊ฒฝํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค !!
1. Master์๋ฒ ์ค์
์ด๋ฒ ๋จ๊ณ์์๋ Master ์๋ฒ์ ์ค์ ์ ๋ณ๊ฒฝํฉ๋๋ค :)
Master ์๋ฒ์ SSH๋ก ์ ์ํฉ๋๋ค.
1) Hostname ๋ณ๊ฒฝ
hostnamectl ๋ช ๋ น์ด๋ฅผ ํตํด ํธ์คํธ ์ด๋ฆ์ ๋ณ๊ฒฝํฉ๋๋ค.
sudo hostnamectl set-hostname master.hadoop
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
3) SSH ํค ์์ฑ ๋ฐ SSH ์ค์ ๋ณ๊ฒฝ
ssh-keygen ๋ช
๋ น์ด๋ก SSHํค๋ฅผ ์์ฑํ๊ณ SSH๋ก ์ ์ ๊ฐ๋ฅํ๋๋ก /etc/ssh/sshd_config ํ์ผ์ ์์ ํฉ๋๋ค.
* ์ฃผ์ * ์ง๊ธ ํ๋ SSH์ค์ ์ ๋งค์ฐ ์ทจ์ฝํ ์ค์ ์ด๋ฉฐ, ํ
์คํธ ์ฉ๋๋ก๋ง ์ฌ์ฉํ์
์ผ ํฉ๋๋ค.
๋จผ์ , SSH ํค๋ฅผ ์์ฑํฉ๋๋ค.
sudo ssh-keygen
์ด์ ssh ์ค์ ํ์ผ์ ์์ ํฉ๋๋ค.
sudo vi /etc/ssh/sshd_config
๋จผ์ 2๊ฐ๋ฅผ ๋ณ๊ฒฝํ ๊ฑด๋ฐ, 38๋ฒ์งธ ์ค์ "PermitRootLogin" ์ ์ฃผ์์ ํด์ ํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ 65๋ฒ์งธ ์ค์ "PasswordAuthentication" ๋ฅผ yes๋ก ๋ณ๊ฒฝํฉ๋๋ค.
์ ์ฅํ ์ค์ ํ์ผ์ ๋ฆฌ๋ก๋ํ๊ธฐ ์ํด 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
์ด์ ๋ค์์ผ๋ก ๋์ด๊ฐ๋๋ค.
2. Slave1~3 ์๋ฒ ์ค์
์ด๋ฒ ๋จ๊ณ์์๋ Slave ์๋ฒ์ ์ค์ ์ ๋ณ๊ฒฝํฉ๋๋ค :)
์๋ ์์๋๋ก ๊ฐ Slave1, Slave2, Slave3์์ ๋ชจ๋ ์คํ์์ผ์ฃผ์ธ์!!
Slave ์๋ฒ์ SSH๋ก ์ ์ํฉ๋๋ค.
1) Hostname ๋ณ๊ฒฝ
hostnamectl ๋ช
๋ น์ด๋ฅผ ํตํด ํธ์คํธ ์ด๋ฆ์ ๋ณ๊ฒฝํฉ๋๋ค.
๊ฐ ํธ์คํธ ์ด๋ฆ์ ๋ง๊ฒ ๋ณ๊ฒฝํฉ๋๋ค.
sudo hostnamectl set-hostname slave1.hadoop
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
3) SSH ํค ์์ฑ ๋ฐ SSH ์ค์ ๋ณ๊ฒฝ
ssh-keygen ๋ช
๋ น์ด๋ก SSHํค๋ฅผ ์์ฑํ๊ณ SSH๋ก ์ ์ ๊ฐ๋ฅํ๋๋ก /etc/ssh/sshd_config ํ์ผ์ ์์ ํฉ๋๋ค.
* ์ฃผ์ * ์ง๊ธ ํ๋ SSH์ค์ ์ ๋งค์ฐ ์ทจ์ฝํ ์ค์ ์ด๋ฉฐ, ํ
์คํธ ์ฉ๋๋ก๋ง ์ฌ์ฉํ์
์ผ ํฉ๋๋ค.
๋จผ์ , SSH ํค๋ฅผ ์์ฑํฉ๋๋ค.
sudo ssh-keygen
์ด์ ssh ์ค์ ํ์ผ์ ์์ ํฉ๋๋ค.
sudo vi /etc/ssh/sshd_config
๋จผ์ 2๊ฐ๋ฅผ ๋ณ๊ฒฝํ ๊ฑด๋ฐ, 38๋ฒ์งธ ์ค์ "PermitRootLogin" ์ ์ฃผ์์ ํด์ ํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ 65๋ฒ์งธ ์ค์ "PasswordAuthentication" ๋ฅผ yes๋ก ๋ณ๊ฒฝํฉ๋๋ค.
์ ์ฅํ ์ค์ ํ์ผ์ ๋ฆฌ๋ก๋ํ๊ธฐ ์ํด ssh ๋ฐ๋ชฌ์ ์ฌ์์ ํฉ๋๋ค.
sudo systemctl restart sshd
Root ๊ณ์ ์ ๋น๋ฐ๋ฒํธ๋ฅผ ์์ฑํฉ๋๋ค.
sudo passwd root
์ด์ ๋ค์์ผ๋ก ๋์ด๊ฐ๋๋ค.
3. SSH ํค ๊ตํ
์ด ๋จ๊ณ๋ ๊ฐ ์๋ฒ์์ ๋์ผํ๊ฒ ์คํํฉ๋๋ค! (Master, Slave1, Slave2, Slave3 4๋์ ์์คํ
๋ชจ๋์์ ์งํํฉ๋๋ค)
์ ๋ค๋ณด๋ Master์๋ฒ์์๋ง ์งํํด๋ ๋์ง ์์๋ ํ๋ ์๋ฌธ์ด ๋๋๋ฐ... ๋ค์์ ๋ค์ ํ
์คํธ ํด๋ณด๊ฒ ์ต๋๋ค!! ์ผ๋จ ์ง๊ธ์ ์ด๋ ๊ฒ ๊ฐ๋๋ค!
์ด ์ค์ ์ ์๋ฃํ๋ฉด ssh ๋ช
๋ น์ด๋ก ์ด๋ค ์๋ฒ์๋ ๊ทธ๋ฅ ์ ์ํ ์ ์๊ฒ ๋ฉ๋๋ค!!
Master ์๋ฒ์ ํค๋ฅผ ๊ตํํฉ๋๋ค.
ssh-copy-id root@master
slave1 ์๋ฒ์ ํค๋ฅผ ๊ตํํฉ๋๋ค.
ssh-copy-id root@slave1
slave2 ์๋ฒ์ ํค๋ฅผ ๊ตํํฉ๋๋ค.
ssh-copy-id root@slave2
slave3 ์๋ฒ์ ํค๋ฅผ ๊ตํํฉ๋๋ค.
ssh-copy-id root@slave3
๋ชจ๋ ์๋ฃ ๋์๋ค๋ฉด! ๋ค์ ๋จ๊ณ๋ก ๋์ด๊ฐ๋๋ค.
4. HDFS ํ์ผ ํฌ๋ฉง
์ฒ์ ๋์คํฌ๋ฅผ ์ฌ์ฉํ ๋, OS์ ๋ง๊ฒ ํ์ผ ์์คํ
์ ํฌ๋ฉงํ๋๊ฒ ์ฒ๋ผ, HDFS๋ฅผ ์์ํ๊ธฐ ์ ํฌ๋ฉง์ ์งํํฉ๋๋ค :)
NameNode ํฌ๋ฉง์ Master ์๋ฒ์์, DataNode ํฌ๋ฉง์ Slave1, Slave2, Slave3 ์๋ฒ์์ ์งํํฉ๋๋ค!
1) NameNode ํฌ๋ฉง
๋จผ์ ๋ง์คํฐ ์๋ฒ์์ ์๋์ ๋ช
๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
๋ช
๋ น์ด ์คํ ํ /data ๋๋ ํฐ๋ฆฌ๊ฐ ์์ฑ๋๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
/usr/local/hadoop-2.10.1/bin/hdfs namenode -format
(์ค๊ฐ์๋ต)
2) DataNode ํฌ๋ฉง
Slave ๋
ธ๋ (DataNode) 3๋ ๋ชจ๋์์ ์๋์ ๋ช
๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
๋ง์ฐฌ๊ฐ์ง๋ก, ๋ช
๋ น์ด ์คํ ํ /data ๊ฒฝ๋ก๊ฐ ์์ฑ๋จ์ ํ์ธํ ์ ์์ต๋๋ค.
(์ค๊ฐ์๋ต)
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
์ด์ ๊ฐ ๋
ธ๋์์๋ ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด, Master ๋
ธ๋์์๋ NameNode ๋ฐ๋ชฌ์ด ๋์ํ๊ณ , Slave ๋
ธ๋์์๋ DataNode ๋ฐ๋ชฌ์ด ๋์ํ๊ฒ ๋ฉ๋๋ค.
๊ฐ ๋ฐ๋ชฌ์ด ์ ์์ ์ผ๋ก ๋์ํ๋์ง ์ฌ๋ถ๋ jps ๋ช
๋ น์ด๋ก ํ์ธํด ๋ณผ ์ ์์ต๋๋ค.!
HDFS๋ฅผ ์ ์์ ์ผ๋ก ์์ํ์ จ๋ค๋ฉด ์น๋ธ๋ผ์ฐ์ ๋ก ์ ์ ๊ฐ๋ฅํฉ๋๋ค:)
http://<Master IP>:50070
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
Yarn์ ์ ์์ ์ผ๋ก ์์ ํ์ จ๋ค๋ฉด, ์น๋ธ๋ผ์ฐ์ ์์๋ ์ ์ ๊ฐ๋ฅํฉ๋๋ค :)
http://<Master IP>:8088
์ด๊ฒ์ ๊ฒ ํด๋ฆญํด์ ํ์ธํด๋ณด์ธ์!
์ฌ๊ธฐ๊น์ง ์งํ ํ์
จ๋ค๋ฉด HDFS๋ฅผ ๊ตฌ์ถํ๋ ๋ถ๋ถ์ ์๋ฃ ๋์์ต๋๋ค!! ๐ค๐ค๐ค
5. HDFS & YARN ์ข ๋ฃํ๊ธฐ
์์๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ์ข ๋ฃํ ๋์๋ ์์์ ๋ง์ถฐ ์งํํด์ฃผ์๋ฉด ๋ฉ๋๋ค :)
HDFS & YARN์ ์ข ๋ฃํ๋ ๊ฒ์ ์๋ ๋ ๋ช ๋ น์ด๋ฅผ ์์๋๋ก ์งํํ์๊ฑฐ๋ stop-all.sh๋ฅผ ์คํ์์ผ์ฃผ์ ๋ ๋ฉ๋๋ค :)
/usr/local/hadoop-2.10.1/sbin/stop-yarn.sh
/usr/local/hadoop-2.10.1/sbin/stop-dfs.sh