하둡(Hadoop) 설치하기 – Pseudo-Distributed

하둡(Hadoop) 설치하기 – Pseudo-Distributed

이번에 회사에서 하둡 시스템으로 개발을 구축할 예정이다.

분산 파일 시스템 하둡 (http://hadoop.apache.org/)

설치를 해보자. CentOS 기준.
현재 안정버전은 1.0.3이고, 2.0.0이 알파버전으로 나온 상태

설치에는 Single Node Setup 와 Cluster Setup 이 있다

Single Node Setup : 서버 한대에..

http://hadoop.apache.org/common/docs/r1.0.3/single_node_setup.html

Cluster Setup : 여러 서버에 분산 설치..

http://hadoop.apache.org/common/docs/r1.0.3/cluster_setup.html

Single Node Setup 은 다시 두가지로 나눠질 수 있는데
1. Standalone Operation : 데몬없이 하나의 자바 프로세스에서 구동 (테스트/디버깅이 용이해서 개발시 유용하단다)
2. Pseudo-Distributed Operation : 각각의 하둡 데몬이 각자의 자바 프로세스에서 구동

아래와 같은 요구사항을 따라야한다.

1. JavaTM 1.6.x, preferably from Sun, must be installed.
2. ssh must be installed and sshd must be running to use the Hadoop scripts that manage remote Hadoop daemons.

자바는 설치되어있다고 가정하고,

# yum install ssh
# yum install rsync
# yum install openssh

sshd가 구동되어있는지 확인 후

# ps -ef | grep sshd
root 2664 1 0 May25 ? 00:00:00 /usr/sbin/sshd

구동되어있지 않으면 구동하면 된다.

본격적으로 하둡을 설치하자.
우선, Pseudo-Distributed Operation 설치 방식으로 해보자.

다운로드 : http://www.apache.org/dyn/closer.cgi/hadoop/common/
Hadoop 1.0.3 Documentation : http://hadoop.apache.org/common/docs/r1.0.3/

# cd /usr/local/src
# wget http://ftp.daum.net/apache/hadoop/common/stable/hadoop-1.0.4.tar.gz
# tar zxvf hadoop-1.0.4.tar.gz
# cp -Rf hadoop-1.0.4 /usr/local/hadoop
# cd /usr/local/hadoop

하둡파일시스템으로 사용할 디렉토리를 만들자

# mkdir -p /data/hadoop/fs/name /data/hadoop/fs/data
# mkdir -p /data/hadoop/mapred/system

환경 설정을 한다.

먼저 core-site.xml

# vi conf/core-site.xml

<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>

다음은 conf/hdfs-site.xml

# vi hdfs-site.xml

<configuration>
<property>
<name>dfs.name.dir</name>
<value>/data/hadoop/fs/name</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/data/hadoop/fs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>

마지막으로 mapred-site.xml

# vi conf/mapred-site.xml

<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
<property>
<name>mapred.system.dir</name>
<value>/data/hadoop/mapred/system</value>
</property>
</configuration>

hadoop-env.sh 을 열어 JAVA_HOME을 설정해준다.

# vi conf/hadoop-env.sh

JAVA_HOME=/usr/local/jdk1.6.0_31

그리고, 암호없이 ssh 연결을 할 수 있도록 설정하자

# ssh-keygen -t rsa -P ” -f ~/.ssh/id_rsa
# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

네임노드 포맷 (네임노드가 있는 서버에서만 하면 됨)

# bin/hadoop namenode -format

설치가 다 되었다.

bin폴더에 보면 start-all.sh 와 stop-all.sh 가 있는데,
dfs와 mapred를 동시에 실행시켜주고 중지시켜주는 역할을 한다.

실행..

# bin/start-all.sh

필요하다면 /etc/profile 에 패스 설정

# vi /etc/profile

HADOOP_HOME=/usr/local/hadoop
export HADOOP_HOME
JAVA_HOME=/usr/local/jdk1.6.0_31
export JAVA_HOME
PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin
export PATH

# source /etc/profile

로그는 ${HADOOP_LOG_DIR} 디렉토리에 저장되고
기본값은 ${HADOOP_HOME}/logs 이다.

NameNode와 JobTracker 를 위한 웹 인터페이스를 제공한다.

잘 실행이 되었으면 테스트를 해보자.

conf 디렉토리에 있는 파일을 하둡파일시스템의 input 디렉토리로 복사한다.

# bin/hadoop fs -put conf input

확인

# bin/hadoop fs -ls
Found 1 items
drwxr-xr-x – root supergroup 0 2012-06-03 17:01 /user/root/input

하둡파일시스템의 input 디렉토리를 조회해보기도 하고..

# bin/hadoop fs -ls input

# bin/hadoop jar hadoop-examples-*.jar grep input output ‘dfs[a-z.]+’

# bin/hadoop fs -get output output
# cat output/*

# bin/hadoop fs -cat output/*

하둡 명령어는 아래에서 참조할 수 있겠다. (1.0.3버전)

http://hadoop.apache.org/common/docs/r1.0.3/commands_manual.html

참조 : http://misoin.wordpress.com/2012/06/03/%ED%95%98%EB%91%A1hadoop-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0-pseudo-distributed/