(※ ssh 설치와 설정을 해주신 뒤 와주셔야 합니다.)

하둡에서는 namenode, jobtracker, datanode, tasktracker, secondarynamenode

등이 존재합니다.

 

이 글의 설치과정에서는

first - namenode, jobtracker

second - secondarynamenode

third - datanode, tasktracker

forth - datanode, tasktracker

위 처럼 설치를 해보겠습니다.

 

hadoop을 설치하기 위해 CentOS에 우선 hadoop 설치파일을 받도록 하겠습니다.

 

우선 wget이 필요하므로 설치가 안되신 분은 설치를 해주셔야 합니다.

# yum -y install wget

 

wget을 우선 설치하신 뒤,

wget으로 hadoop 설치파일을 받기위해 다운로드할 url을 알아봅시다.

 

http://hadoop.apache.org

위 사이트에서 Releases - Download - Download a release now!

까지 들어간 뒤

여러가지 링크 중 하나에 들어가신 뒤

현재 stable 버전을 찾아 다운로드 해주시면 됩니다.

제가 다운받을 때 stable 버전은 1.2.1이었습니다.


 

위에서 볼 때 다운로드 url은

http://apache.mirror.cdnetworks.com/hadoop/common/hadoop-1.2.1/hadoop-1.2.1.tar.gz

입니다.

 

이제 CentOS에서 받도록 하겠습니다.


 

위처럼

# wget http://apache.mirror.cdnetworks.com/hadoop/common/hadoop-1.2.1/hadoop-1.2.1.tar.gz

이란 명령어를 쳐주면 현재 폴더에 받을 수 있습니다.

 

이제 이 압축을 풀어보도록 하겠습니다.


 

위 사진처럼

# tar -xvzf hadoop-1.2.1.tar.gz

라고 명령어를 치시면 압축이 풀리고

hadoop-1.2.1이란 폴더가 생길 겁니다.

 

(선택사항)

# mv hadoop-1.2.1 /usr/local/hadoop

자신이 편한 장소로 파일을 옮겨 줍니다.

 

그 다음 환경설정을 해 줍니다.


 

위 명령어를 입력해 환경설정을 해줍니다.

 


 

파일 맨 밑에

 

# hadoop Environment

export HADOOP_HOME=/usr/local/hadoop

export PATH=$PATH:$HADOOP_HOME/bin

 

을 추가하고 저장해 줍니다.

그 뒤 

 

# source /etc/profile

 

명령어를 입력해 환경설정을 적용해 줍니다.

 

그 다음

# cd /usr/lcoal/hadoop/conf

# vi hadoop-env.sh

 


위 사진처럼

export JAVA_HOME=/usr/local/java

export HADOOP_HOME_WARN_SUPPRESS="TRUE"

를 추가해 줍니다.

 

그 다음

#vi hdfs-site.xml


 

 

위 사진처럼

<property>

<name>dfs.name.dir</name>

<value>/usr/local/hadoop/dfs/name</value>

</property>

<property>

<name>dfs.data.dir</name>

<value>/usr/local/hadoop/dfs/data</value>

</property>

<property>

<name>dfs.replication</name>

<value>3</value>

</property>

<property>

<name>dfs.http.address</name>

<value>first:9003</value>               (address 변경)

</property>

 

위 내용을 추가해 줍니다.

 

그 다음

#vi core-site.xml

 


 

 

위 사진처럼

<property>

<name>hadoop.tmp.dir</name>

<value>/usr/local/hadoop/tmp</value>

</property>

<property>

<name>fs.default.name</name>

<value>hdfs://first:9000</value>         (namenode 설정)

</property>

추가해 저장해줍니다.

 

그 다음

#vi mapred-stie.xml


 

위 사진처럼

<property>

<name>mapred.job.tracker</name>   (jobtracker 설정)

<value>first:9001<value>

</property>

<property>

<name>mapred.job.tracker.http.address</name>    (address 변경)

<value>first:9002</value>

</property>

<property>

<name>mapred.local.dir</name>

<value>/usr/local/hadoop/mapred/local</value>

</property>

<property>

<name>mapreduce.jobtracker.staging.root.dir</name>

<value>/tmp</value>

</property>

 

를 추가하고 저장해 줍니다.

 

이제 master 파일과 slaves파일을 수정해 줍시다.

#vi masters   (secnodary namenode 설정)

 

에는

second

를 입력해 주시고 저장해줍니다.

 

#vi slaves   (task tracker, datanode 설정)

 

에는

third

forth

를 입력해 주시고 저장해줍니다.

 

위 처럼 해주시면 설정이 끝납니다.

 

이제 위 과정을 모든 가상머신에서 똑같이 해주셔야 합니다.

하지만 귀찮으므로 위 설정한 파일들을 다른 가상머신에 ssh를 이용하여 보내주도록 합시다.

 

#scp -r /usr/local/hadoop root@second:/usr/local/hadoop

#scp /etc/profile root@second:/etc/profile

 

-r을 붙여주시면 디렉토리의 모든 파일을 복사해주는 설정입니다.

위 명령어로 second 뿐만아니라 third, forth도 복사해 주셔야합니다.

(※ 각 가상머신에 자바도 설치되어 있어야 합니다.)

 

이제 방화벽을 풀어줍시다

#vi /etc/sysconfig/iptables



 

위 사진처럼

-A INPUT -m state -state NEW -m tcp -p tcp --dport 9000:90003 -j ACCEPT

-A INPUT -m state -state NEW -m tcp -p tcp --dport 50000:50010 -j ACCEPT

을 추가해 줍니다.

 

그뒤

#scp /etc/sysconfig/iptables root@호스트명:/etc/sysconfig/iptables

를 해서 모든 가상머신에 방화벽설정을 복사해 줍니다.

 

이제 각 가상머신에서

#service iptables restart

명령어를 입력해 주시면 방화벽 설정도 끝이 납니다.

 

위 설정을 다 끝내셨다면 이제 namenode를 포맷해 줍니다.

# hadoop namenode format

 

포맷을 해주신 뒤 이제 하둡을 시작해 봅시다.

# start-all.sh

 

이제 하둡이 시작되었습니다.

 

이제 host os에서

http://first의 ip:9002 (jobtracker를 볼 수 있음)



위 주소로 들어가시면 위 같은 사이트가 뜹니다.

 

http://first의 ip:9003 (dfs의 상태를 볼 수 있음)



위 주소로 들어가시면 위 같은 사이트가 뜹니다.

 

여기까지 되셨다면 성공입니다.

이제 테스트를 해봅시다.

 

#cd /usr/local/hadoop

#hadoop dfs -mkdir input

#hadoop dfs -put NOTICE.txt input

#hadoop jar hadoop-examples-1.2.1.jar wordcount input output

위 명령어까지 하시면 하둡이 돌아가시는 것을 보실 수 있고

#hadoop dfs -cat output/*


 

위 사진처럼 되신다면 성공입니다.

 

참고 : http://blog.naver.com/adonis50/178774994

         http://blog.naver.com/gyrbsdl18/173310038

+ Recent posts