본문 바로가기

Hadoop

Hadoop 설치

Centos 6.4기준 Hadoop설치 방법입니다.

OS : CentOS 6.4

Hadoop : 1.2.1


1. Create User

#터미널 실행
#Hadoop User생성
adduser hadoop

#Password 변경
passwd hadoop

Changing password for user hadoop
New password : 패스워드 입력


2. Hadoop download

#터미널 실행
#root유저로 변경
su - root

#wget 설치
yum install wget

#hadoop 유저로 변경
su - hadoop

#change home directory
cd ~

#wget으로 hadoop 1.2.1버전 다운로드
wget http://mirror.apache-kr.org/hadoop/common/hadoop-1.2.1/hadoop-1.2.1.tar.gz

#압축 해제
tar zxvf hadoop-1.2.1.tar.gz
위와 같이 진행이 되었으면 /home/hadoop/hadoop-1.2.1 디렉토리 밑으로 Hadoop파일들이 압축해제가 됩니다.

다른 위치로 Hadoop을 설치하시고 싶으신 경우에는 압축 해제한 디렉토리를 전부 이동하시면 됩니다.
 


3. Hadoop Setting 

Hadoop설정은 압축 해제한 디렉토리에 conf 디렉토리가 있는데 이 중 hadoop-env.sh, core-site.xml, hdfs-site.xml, mapred-site.xml , masters, slaves 파일만 수정을 하면 됩니다.

해당 설정값에 대한 자세한 설명을 보시고 싶으시면 src/core, src/mapred, src/hdfs 디렉토리에 -default.xml로 끝나는 파일이 존재합니다. 이 파일을 열어보시면 됩니다.


conf/hadoop-env.sh

#JDK가 설치된 디렉토리를 지정합니다. 가급적 jdk 1.6을 설치하시길 추천합니다.
export JAVA_HOME=/usr/java/jdk
export HADOOP_HOME=/home/hadoop/hadoop-1.2.1
export HADOOP_LOG_DIR=${HADOOP_HOME}/logs
export HADOOP_SLAVES=${HADOOP_HOME}/conf/slaves
export HADOOP_PID_DIR=${HADOOP_HOME}/pids


conf/core-site.xml

<property>
	<name>fs.default.name</name>
	<value>hdfs://IP주소 또는 Hostname:9000</value>
</property>
<property>
	<name>hadoop.tmp.dir</name>
	<value>/home/hadoop/hadoop-1.2.1/tmp</value>
</property>


conf/hdfs-site.xml

<property>
	<name>dfs.name.dir</name>
	<value>/home/hadoop/dfs/name</value>
</property>
<property>
	<name>dfs.name.edits.dir</name>
	<value>${dfs.name.dir}</value>
</property>
<property>
	<name>dfs.data.dir</name>
	<value>/home/hadoop/hadoop-1.2.1/dfs/data</value>
</property>


conf/mapred-site.xml

<property>
	<name>mapred.job.tracker</name>
	<value>IP주소 또는  Hostname:9001</value>
</property>
<property>
	<name>mapred.local.dir</name>
	<value>/home/hadoop/hadoop-1.2.1/mapred/local</value>
</property>
<property>
	<name>mapred.system.dir</name>
	<value>/home/hadoop/hadoop-1.2.1/mapred/system</value>
</property>

conf/masters

#기본설정값이 localhost로 지정이 되어있는데 서버 IP나 Hostname을 적어줍니다.
192.168.100.100

conf/slaves

#기본설정값이 localhost로 지정이 되어있는데 서버 IP나 Hostname을 적어줍니다.
#여러대의 클러스터를 구성하고 싶으시면 이 파일에 구성하려는 서버의 IP나 Hostname을 적어줍니다.
192.168.100.100

설정을 다 하셨으면

cd /home/hadoop/hadoop-1.2.1 디렉토리로 이동해서

mkdir dfs/name 명령어로 디렉토리를 생성합니다.

하둡 시작 시 필요한 디렉토리를 자동으로 생성이 되는데 위 디렉토리는 자동생성되지 않아 오류가 발생합니다.


4. SSH 생성 

cd ~
ssh-keygen -t rsa  #입력 후 연속 3번 엔터
cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys

#이 부분이 중요합니다. .ssh .ssh/authorized_keys 권한이 아래 처럼 설정이 되어 있지 않으면 ssh 접속 시 계속 패스워드를 요구합니다.
chmod 700 .ssh
chmod 640 .ssh/authorized_keys

#ssh 접속 테스트
ssh hadoop@localhost

#최초 접속 시 1회만 접속여부를 물어보는 메시지가 나오고 그 다음부터는 패스워드 없이 접속이 가능합니다.


5. Namenode format

#bin 디렉토리로 이동
cd /home/hadoop/hadoop-1.2.1/bin

#namenode format
./hadoop namenode -format


6. Hadoop Start

#hadoop start
./start-all.sh

시작이 완료되면 logs 디렉토리로 이동을 하여 생성된 로그파일 확인

에러 메시지가 없으면 정상적으로 구동이 완료됨 

혹시라도 에러 메시지가 존재하면 에러메시지를 자세히 보면 에러에 대한 원인이 있으니 에러 메시지를 확인하시고 대처 하시면 됩니다


7.Web UI 확인

MapReduce

http://IP주소 또는 Hostname:50030

HDFS

http://IP주소 또는 Hostname:50070