[hadoop] Hadoop Install
Download and hadoop building
$ cd /usr/local/
$ wget http://ftp.apache-kr.org/lucene/hadoop/hadoop-$version.tar.gz
$ tar zxvf hadoop-$version.tar.gz
$ cd hadoop-$version
$ ant package
hadoop-env.sh 편집
$ vi ./conf/hadoop-env.sh
아래와 같이 JAVA_HOME 경로, slaves 설정 파일 경로를 편집합니다. HADOOP_HOME은 실제로 hadoop이 설치된 경로를 설정합니다. 아래의 경우에는 /home/nutch로 가정했습니다.
export JAVA_HOME=/usr/java/jdk_$version
export HADOOP_HOME=/home/nutch
export HADOOP_SLAVES=${HADOOP_HOME}/conf/slaves
export HADOOP_LOG_DIR=${HADOOP_HOME}/logs
hadoop-site.xml 편집
$ vi conf/hadoop-site.xml
<configuration>
<property>
<name>fs.default.name</name>
<value>마스터서버:9000</value>
<description>
The name of the default file system. Either the literal string
“local” or a host:port for NDFS.
</description>
</property>
<property>
<name>mapred.job.tracker</name>
<value>마스터서버:9001</value>
<description>
The host and port that the MapReduce job tracker runs at. If
“local”, then jobs are run in-process as a single map and
reduce task.
</description>
</property>
<property>
<name>mapred.map.tasks</name>
<value>2</value>
<description>
define mapred.map tasks to be number of slave hosts
</description>
</property>
<property>
<name>mapred.reduce.tasks</name>
<value>2</value>
<description>
define mapred.reduce tasks to be number of slave hosts
</description>
</property>
<property>
<name>dfs.name.dir</name>
<value>/home/nutch/filesystem/name</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/home/nutch/filesystem/data</value>
</property>
<property>
<name>mapred.system.dir</name>
<value>/home/nutch/filesystem/mapreduce/system</value>
</property>
<property>
<name>mapred.local.dir</name>
<value>/home/nutch/filesystem/mapreduce/local</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
master node
$ vi /etc/sysconfig/iptables
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 9000 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 9001 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 50010 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 50030 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 50040 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 50050 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 50060 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 50070 -j ACCEPT
$ /etc/init.d/iptables restart
slave node
$ vi /etc/sysconfig/iptables
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 50010 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 50040 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 50050 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 50060 -j ACCEPT
$ /etc/init.d/iptables restart
ssh key 생성
ssh key를 scp를 이용해 각 slave 노드로 복사 (먼저 복사될 파일 시스템이 각 slave노드에 존재해야 한다.
$ scp ~/.ssh/authorized_keys who@server2:~/.ssh/authorized_keys
! 인증키가 없을 경우(~/.ssh/authorized_keys 파일이 없을 경우)
ssh-keygen으로 공개키를 만들면 된다(버전마다 다를 수 있으며 아래는 한 예임)
$ ssh-keygen -t rsa $ cp rsa.pub authorized_keys
! scp 설치시 no route to host라고 나오는 경우: 방화벽 때문에 안되는 것임
임시로 방화벽을 무력화하고 복사할 수 있다.
$ /etc/init.d/iptables stop
설정 파일 편집
master node의 slaves 파일 편집. 한줄에 노드이름 하나씩
$ cd /home/nutch/search/conf
$ vi slaves
slave노드(IP가능)
hadoop-site.xml 파일 편집. mapred.map.tasks, mapred.reduce.tasks 두 가지 항목은 각 slave 노드에서도 수정해 줘야 함
ser1> vi hadoop-site.xml
mapred.map.tasks : 4
mapred.reduce.tasks : 2
dfs.replication : 2
Namenode 포맷
먼저 master 와 모든 slave노드에 hadoop-site.xml 파일에서 설정한 dir 를 생성해 놓아야 한다.(위의 설정에서는 /home/nutch/filesystem/ )
실행 전에 conf/hadoop-env.sh가 실행되면서 $JAVA_HOME등의 값이 변하므로 Java 디렉토리가 맞지 않아서 실행이 안되면, /etc/profile말고, hadoop/conf/hadoop-env.sh에서 수정해야 함
$ ./bin/hadoop namenode -format
데몬 실행
$ ./bin/start-all.sh
마스터와 슬레이브의 모든 데몬을 한꺼번에 실행
master-slave config test
$ ./bin/slaves.sh uptime
실행 후 콘솔 창에 각 노드의 데몬이 잘 올라왔는지 보고 각 서버의 로그 확인
관련링크 :
http://lucene.apache.org/hadoop/docs/current/quickstart.html
http://www.hadoop.co.kr/
http://www.joinc.co.kr/modules/moniwiki/wiki.php/JCvs/Search/Document/nutch/Hadoop