์๋ ํ์ธ์ ๐โ๏ธ ๐โ๏ธ
์ด๋ฒ์ ํ๋ก์์ฝ์์คํ
์ ๋ํด์ ๊ณต๋ถํด๋ณด๋ ค๊ณ ํฉ๋๋ค.
๋ด์ฉ ์ ๋ฆฌํ๋ฉด์, ๋์ค์ ๋ ๊น๋จน์ ๋ฏธ๋์ ๋๋ฅผ ์ํด!! ํฌ์คํ
ํฉ๋๋ค. ํํ
์ ๋ AWS ์ EC2๋ฅผ ์ฌ์ฉํ ์์ ์ด๋ฏ๋ก, ๋ชจ๋ ์ ์ฐจ์ ๋ค EC2๋ฅผ ์ฌ์ฉํฉ๋๋ค :)
๋ชจ๋ ๋จ๊ณ๋ ๊ณต์์ฌ์ดํธ๋ฅผ ๊ธฐ์ค์ผ๋ก ์์ฑ ๋์์ผ๋ฉฐ, ์ต์ข ์ํคํ ์ณ๋ 1๊ฐ์ ๋ง์คํฐ๋ ธ๋, 3๊ฐ์ ์ฌ๋ ์ด๋ธ๋ ธ๋๋ก ๊ตฌ์ฑ๋ ์์ ์ ๋๋ค :)
์์ํด๋ณด๊ฒ ์ต๋๋ค.
1. EC2 ์์ฑํ๊ธฐ
์ด๋ฒ ๋จ๊ณ์์๋ EC2 ์ธ์คํด์ค๋ฅผ ์์ฑํฉ๋๋ค.
OS๋ ๋ฆฌ๋
์ค CentOS๋ฅผ ์ฌ์ฉํ ์์ ์
๋๋ค.!!! ๊ผญ AWS๊ฐ ์๋๋๋ผ๋ ์ฌ์ฉํ ์ ์๋ ๋ฆฌ๋
์ค ์๋ฒ(๊ฐ์์๋ฒ) 4๋๋ฅผ ์ค๋นํด์ฃผ์ธ์!
์ด๋ฒ ๋จ๊ณ์์๋ ๊ทธ์ค์ ํ๋๋ฅผ ๋ง์คํฐ ์๋ฒ๋ก ์ฌ์ฉํ ์์ ์
๋๋ค :)
AWS ์น ์ฝ์์ ์ ์ํ ํ EC2์๋น์ค๋ฅผ ์ ํํฉ๋๋ค.
๋งจ ์ฒ์ ํ๋ฉด์์ "์ธ์คํด์ค ์์" ๋ฒํผ์ ์ฐพ์ ํด๋ฆญํฉ๋๋ค.
์ธ์คํด์ค๋ฅผ ๋ง๋๋ ๊ณผ์ ์ ์ด 7๋จ๊ณ๋ก ๊ตฌ์ฑ๋์ด์์ต๋๋ค.
๋จผ์ , 1๋จ๊ณ, AMI๋ฅผ ์ ํํฉ๋๋ค. ์ ๋ Centos7์ ์ฌ์ฉํ ์์ ์ด๋ฏ๋ก, ๊ฒ์์ฐฝ์ Centos๋ฅผ ๊ฒ์ํฉ๋๋ค!
AWS Marketplace ์์ ๋งจ ์ฒ์ ๊ฒ์๋๋ AMI๋ก ์ ํํ๊ณ ๋ค์์ผ๋ก ๋์ด๊ฐ๋๋ค.
2๋จ๊ณ, ์ธ์คํด์ค ์ ํ์ ์ ํํฉ๋๋ค. ์ ๋ t3.medium์ ์ ํํ์ต๋๋ค.
์ฌ๊ธฐ์์ ๊ฒํ ๋ฐ ์์์ ์ ํํฉ๋๋ค.
๋ง์ฝ, VPC์ค์ ์ด๋, EC2 Role ์ถ๊ฐ๊ฐ ํ์ํ๋ค๋ฉด, ์ฌ๊ธฐ์์ ๋ค์"์ธ์คํด์ค ์ธ๋ถ์ ๋ณด๊ตฌ์ฑ"์ผ๋ก ๋์ด๊ฐ๋๋ค.
7๋จ๊ณ, ๊ฒํ ๋ถ๋ถ์
๋๋ค. ์๋๊น์ง ์ญ ๊ฒํ ํ ํ ์์ํ๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
ํคํ์ด ํ์
์ฐฝ์์ ๊ฐ์ง๊ณ ์๋ ํค ํ์ด๋ฅผ ์ ํํ๊ฑฐ๋ ์ ํคํ์ด๋ฅผ ์์ฑํฉ๋๋ค.
๋ช๋ถ์ ๋ ํ๋ฉด ์ธ์คํด์ค๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ธ์คํด์ค ๋ชฉ๋ก์์ ์๋ก ์์ฑ๋ ์ธ์คํด์ค๋ฅผ ํ์ธํ๊ณ ์ด๋ฆ์ Master.Hadoop์ผ๋ก ๋ณ๊ฒฝํ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ํผ๋ธ๋ฆญIP์ฃผ์๋ฅผ ํ์ธํด์ค์๋ค!
์ด์ ์ด ์ธ์คํด์ค์ SSH๋ก ์ ์ํฉ๋๋ค.
ssh -i <ํคํ์ด๊ฒฝ๋ก> centos@<ํผ๋ธ๋ฆญIP>
์ธ์คํด์ค์ ์ ์๊น์ง ํ์ผ๋ฉด, ์ด๋ฒ ๋จ๊ณ๋ ์ฌ๊ธฐ์ ์๋ฃ ๋์์ต๋๋ค :)
๋ค์ ๋จ๊ณ๋ก ๋์ด๊ฐ์๋ค!
2. EC2์ Java ์ค์นํ๊ธฐ
Hadoop์ ์ฌ์ฉํ๊ธฐ ์ํด์๋ Linux์ Java๊ฐ ์ค์น๋์ด ์์ด์ผ ํฉ๋๋ค. (ํธํ๋๋ Java๋ฒ์ ํ์ธ)
์ ๊ฐ ์ค์นํ 2.10.1๋ฒ์ ์ ํ๋ก์ java 1.6 ํน์ java 1.7์ด ์ค์น ๋์ด์ผ ํ๋ค์. ์ค์นํด ๋ด
์๋ค :)
์ ๊ฐ ์ฌ์ฉํ๋ CentOS 7 ์์ Yum ์ผ๋ก Java 1.7 ๋ฒ์ ์ค์น๊ฐ ๊ฐ๋ฅํ์ง ํ์ธ ํ๊ธฐ ์ํด, yum search ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค.
sudo yum search java-1.7
java 1.7๋ฒ์ ์ ์ค์นํ ์ ์๋ค์ :) ์ค์นํด๋ด ์๋ค!!
sudo yum install java-1.7* -y
์ ๋ช ๋ น์ด๋ก ์ค์น ์งํ ํ ์ ์ค์น๊ฐ ๋์๋์ง ํ์ธํ๊ธฐ ์ํด java ๋ฒ์ ์ ํ์ธํด๋ด ๋๋ค.
sudo java -version
java 1.7 ๋ฒ์ ์ด ์ ์ค์น ๋์๋ค์.
๋ง์ฝ ๋ค๋ฅธ OS๋ฅผ ์ฌ์ฉํ์๋ ๊ฒฝ์ฐ์๋ ์ง์ ๋ค์ด๋ก๋ํ์ฌ ์ค์นํด์ฃผ์
์ผ ํฉ๋๋ค. (java.net)
์ฌ๊ธฐ๊น์ง ์งํ ํ์
จ๋ค๋ฉด! ๋ค์ ๋จ๊ณ๋ก ๋์ด๊ฐ๋๋ค!!
3. Hadoop ์ค์นํ๊ธฐ
Hadoop 2.10.1 ๋ฒ์ ์ ์ค์นํฉ๋๋ค. (๋ค์ด๋ก๋๋งํฌ, ๋ฌธ์๋งํฌ)
์ด๋ฒ ๋จ๊ณ์์๋ root ๊ณ์ ์ผ๋ก ์งํํ ์์ ์ ๋๋ค. ์๋ ๋ช ๋ น์ด๋ก ๋ฃจํธ ๊ณ์ ์ผ๋ก ์ ํํฉ๋๋ค.
sudo su
wget ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ ๊ฑด๋ฐ, wget๋ช ๋ น์ด๊ฐ ์๋ค์. ์ด ๋ช ๋ น์ด ๋จผ์ ์ค์นํฉ๋๋ค.
yum install wget -y
์ด์ wget ๋ช ๋ น์ด๋ก ์ค์นํฉ๋๋ค.
wget https://archive.apache.org/dist/hadoop/common/hadoop-2.10.1/hadoop-2.10.1.tar.gz
์ด์ ํ๋ก ํํด๋๊ฐ ๋ /usr/local ๊ฒฝ๋ก์ ์ํน์ ํ์ด๋ณด๊ฒ ์ต๋๋ค.
tar -zxvf ./hadoop-2.10.1.tar.gz -C /usr/local/
๊ทธ๋ฆฌ๊ณ ๋์ ์๋ ๋ช
๋ น์ด๋ก ๋ชฉ๋ก์ ํ์ธํด๋ณด๋ฉด hadoop-2.10.1 ๊ฒฝ๋ก๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
ls -al /usr/local/
๋ค๋ฅธ ๋๋ ํฐ๋ฆฌ๋ ๋ชจ๋ root์์ ์ธ๋ฐ, ๋ฐฉ๊ธ ๋ง๋ ํ๋ก๋ง ๋ค๋ฅด์ฃ ! ๋ณ๊ฒฝํด์ฃผ๊ฒ ์ต๋๋ค.
chown -R root:root /usr/local/hadoop-2.10.1/
ls -al /usr/local/
๋ค~~ ์ด๋ ๊ฒ ๋ณ๊ฒฝ์ด ์๋ฃ ๋์์ต๋๋ค!
์ด์ ํ๋ก ํ๊ฒฝ๋ณ์๋ฅผ ์ค์ ํด์ค๋๋ค.
/etc/profile ๊ฒฝ๋ก์ ์๋ ์ธ์ค์ ์ถ๊ฐํ๊ณ source ๋ช
๋ น์ด๋ก ์ค์ ์ ์ ์ฉํด์ค๋๋ค.
vi /etc/profile
export HADOOP_HOME=/usr/local/hadoop-2.10.1/
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin/:$HADOOP_HOME/sbin
export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.261-2.6.22.2.el7_8.x86_64
source /etc/profile
ํ๋ ๋ ์งํํ๊ฒ ์ต๋๋ค. "/usr/local/hadoop-2.10.1/etc/hadoop/hadoop-env.sh" ์ด ๊ฒฝ๋ก์ JAVA_HOME ์ ์ค์ ํด์ค๊ฒ์!
vim /usr/local/hadoop-2.10.1/etc/hadoop/hadoop-env.sh
export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.261-2.6.22.2.amzn2.0.1.x86_64
(๋งจ ์๋ซ์ค์ ์ถ๊ฐ)
๋ค! ์ด์ ์ค๋น๊ฐ ์๋ฃ ๋์์ต๋๋ค!!!
๋ค์ ๋จ๊ณ๋ก ๋์ด๊ฐ๋๋ค!
4. Hadoop ์ค์ ํ์ผ ์ค์ ํ๊ธฐ
ํ๋ก ํด๋ฌ์คํฐ๋ฅผ ๋์ ์ํค๊ธฐ ์ํด ์ค์ ํ์ผ์ ์์ ํฉ๋๋ค.
์ค์ ํ์ผ์ ํ๋ก์ด ์ค์น๋์ด์๋ ๊ฒฝ๋ก($HADOOP_HOME)/etc/hadoop ์๋ ์์นํฉ๋๋ค.
์ค์ ํ์ผ ์์ฑ์ ์ค๋ฅ๊ฐ ์๋ค๋ฉด ํ๋ก์คํ์ด ๋ถ๊ฐํ๊ธฐ๋๋ฌธ์ ์คํ๊ฐ ์๋์ง ์ฌ๋ถ๋ฅผ ๋ฐ๋์ ํ์ธํ์ธ์!
์ด ๋จ๊ณ์์ 4๊ฐ์ ํ์ผ์ ์์ ํฉ๋๋ค.
1. core-site.xml
ํ๋ก ์์คํ
์ค์ ํ์ผ๋ก, ๋ก๊ทธํ์ผ, ๋คํธ์ํฌ ํ๋, I/Oํ๋, ํ์ผ์์คํ
ํ๋, ์์ถ ๋ฑ ์์คํ
์ค์ ํ์ผ์
๋๋ค.
HDFS์ ๋งต๋ฆฌ๋์ค์์ ๊ณตํต์ ์ผ๋ก ์ฌ์ฉํ ํ๊ฒฝ์ ๋ณด๋ฅผ ์
๋ ฅํ๊ฒ ๋๋ฉฐ, core-default.xml์ด ๊ธฐ๋ณธ ๊ฐ์ด๋ฉฐ, core-site.xml์ ์ค์ ๊ฐ์ด ์๋ ๊ฒฝ์ฐ ๊ธฐ๋ณธ ๊ฐ์ ๊ทธ๋๋ก ์ฌ์ฉํฉ๋๋ค. (๋งค๊ฐ๋ณ์์ ๋ณด)
vi /usr/local/hadoop-2.10.1/etc/hadoop/core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
</configuration>
2. hdfs-site.xml
HDFS์์ ์ฌ์ฉํ ํ๊ฒฝ์ ๋ณด๋ฅผ ์ค์ ํฉ๋๋ค. hdfs-default.xml์ด ๊ธฐ๋ณธ ๊ฐ์ด๋ฉฐ, hdfs-site.xml์ ์ค์ ๊ฐ์ด ์๋ ๊ฒฝ์ฐ ๊ธฐ๋ณธ ๊ฐ์ ๊ทธ๋๋ก ์ฌ์ฉํฉ๋๋ค (๋งค๊ฐ๋ณ์์ ๋ณด)
vi /usr/local/hadoop-2.10.1/etc/hadoop/hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///data/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///data/datanode</value>
</property>
<property>
<name>dfs.namenode.checkpoint.dir</name>
<value>file:///data/namesecondary</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
</configuration>
3. yarn-site.xml
Resource Manager ๋ฐ Node Manager์ ๋ํ ๊ตฌ์ฑ์ ์ ์ํฉ๋๋ค. (๋งค๊ฐ๋ณ์์ ๋ณด)
vi /usr/local/hadoop-2.10.1/etc/hadoop/yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.local-dirs</name>
<value>file:///data/yarn/local</value>
</property>
<property>
<name>yarn.nodemanager.log-dirs</name>
<value>file:///data/yarn/logs</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
</configuration>
4. mapred-site.xml
MapReduce ์ดํ๋ฆฌ์ผ์ด์ ์ค์ ํ์ผ์ ๋๋ค. (๋งค๊ฐ๋ณ์์ ๋ณด)
vi /usr/local/hadoop-2.10.1/etc/hadoop/mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
์ด ๋ค๊ฐ์ ์ค์ ํ์ผ์ ๋ชจ๋ ์์๊ฐ์ด ์ค์ ํ์ จ๋ค๋ฉด! ๋ค์๋จ๊ณ๋ก ๋์ด๊ฐ๋๋ค!
5. EC2 ๋ณต์ ํ๊ธฐ
์ด์ ์ค์น๋ ์ด EC2๋ฅผ 3๊ฐ ๋ ๋ณต์ ํด์! ์ด 4๊ฐ์ ์ธ์คํด์ค๋ก ํ๋ก ํด๋ฌ์คํฐ๋ฅผ ๋ง๋ค๊ฒ ์ต๋๋ค!
๋จผ์ , AWS EC2 ์ฝ์๋ก ์ด๋ํฉ๋๋ค.
EC2๋ฅผ ์ ํํ๊ณ ์์
> ์ด๋ฏธ์ง ๋ฐ ํ
ํ๋ฆฟ > ์ด๋ฏธ์ง ์์ฑ์ ํด๋ฆญํฉ๋๋ค.
์ด๋ฏธ์ง ์์ฑ ํ์ด์ง์์, ์ด๋ฏธ์ง์ ์ด๋ฆ๊ณผ ์ค๋ช ๋ง ์์ฑํ์ ํ "์ด๋ฏธ์ง ์์ฑ"์ ํด๋ฆญํฉ๋๋ค.
EC2์ฝ์, ์ผ์ชฝ ๋ค๋น๊ฒ์ด์
๋ฐ์์ AMI๋ฅผ ํด๋ฆญํฉ๋๋ค.
์๊ฐ์ด ์กฐ๊ธ ์ง๋ ํ ํ์ธํ์๋ฉด avaliable ์ํ๋ก ๋ณ๊ฒฝ๋๊ฒ์ ๋ณผ ์์์ต๋๋ค.
์ด์ , ์ด ์ด๋ฏธ์ง๋ฅผ ์ ํํ๊ณ , ์๋จ์ ์์
> ์์ํ๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
์ธ์คํด์ค ์ ํ์ ์ ํํฉ๋๋ค.
์ ๋ t3.medium์ ์ฌ์ฉํฉ๋๋ค. ์ดํ "๋ค์:์ธ์คํด์ค ์ธ๋ถ์ ๋ณด ๊ตฌ์ฑ"์ ํด๋ฆญํฉ๋๋ค.
์ธ์คํด์ค ๊ฐ์๋ฅผ 3์ผ๋ก ๋ณ๊ฒฝํฉ๋๋ค.
ํ๋ฒ์ ์ฌ๋ฌ๊ฐ์ ์ธ์คํด์ค๋ฅผ ์์ฑํ ์ ์์ต๋๋ค. 3์ผ๋ก ๋ณ๊ฒฝ ๋์๋ค๋ฉด, ๊ฒํ ๋ฐ ์์์ ํด๋ฆญํฉ๋๋ค.
์ธ์คํด์ค ์์ ์ ๊ฒํ ํ์ด์ง์
๋๋ค.
์๋ชป๋ ๋ถ๋ถ์ด ์๋์ง ํ๋ฒ ๋ ๊ฒํ ํ๊ณ "์์ํ๊ธฐ"๋ฅผ ํด๋ฆญํฉ๋๋ค.
์์ ํ ์ฝ๊ฐ์ ์๊ฐ์ด ํ๋ฅด๋ฉด, ์๋ ์ฌ์ง์ฒ๋ผ ๋ค๊ฐ์ ์ธ์คํด์ค๊ฐ ์ด์์ค์ธ ์ํ๊ฐ ๋ฉ๋๋ค.
์ ๋ ๊ตฌ๋ถํ๊ธฐ ํธํ๋๋ก Name์ ๋ณ๊ฒฝํด๋์์ต๋๋ค.
์, ์ด์ ๋ค์๋จ๊ณ์์๋ ๊ฐ ๋ ธ๋์์์ ์ค์ ์ ์งํํด ๋ด ์๋ค!
๋๋ฌด ๊ธธ์ด์ ธ์ ํฌ์คํ ์ ๋๋ ์ ํ๊ฒ ์ต๋๋ค~
๋ค์ ํธ์คํ ์ผ๋ก ๋ฟ !