본문 바로가기
IT/하둡

Haddop 설치

by 최고영회 2014. 3. 4.
728x90
반응형
SMALL

리눅스 서버 준비

vmware 에 Cent OS로 준비 했으며 아래와 같이 구성 할 계획 이다.

 호스트하둡 설치 내용 

yh01 - 192.168.3.118 

네임노드

yh02 - 192.168.3.119

보조네임노드 겸 데이터 노드 

yh03 - 192.168.3.120 

데이터 노드 

테스트용으로 구성한 환경에서는 보조네임노드와 데이터노드를 함께 두었지만

실제로 서비스 용도로 준비할 때는 보조 네임도드는 단독으로 설치 하는 것을 권장한다.

보조 네임노드는 네임노드의 장애 발생에 대비하는 것이기 때문이다.


하둡 실행 계정 생성

 - root 계정으로도 하둡을 실행할 수 있지만 root로 하둡을 관리하는 것은 좋은 방법이 아니다.

   혹시라도 root 계정으로 사용하다가 중대한 실수라도 하게 되면 리눅스 시스템 자체가 사용하지 못하는 상태가 될 수 있기 때문이다. 

   하둡을 사용할 때 뿐만아니라 리눅스에서 다른 작업을 할 때도 root 계정으로 작업하는 것은 결코 좋은 습관이 아니다.

   위의 서버에 'hadoop' 이라는 계정을 모두 추가 한다.


호스트 파일 수정

 - vi /etc/hosts

192.168.3.118 yh01
192.168.3.119 yh02
192.168.3.120 yh03


인코딩 방식 설정

 - 하둡은 UTF-8을 사용한다. 서버의 인코딩 방식이 UTF-8이 아닌 다른 방식으로 되어 있다면 문자열 처리 시 문제가 발생할 수 있다.

   특히 한글로 작성된 파일을 처리할 경우, 십중팔구 한글이 모두 깨질 것이다.


Java 설치

 - jdk-6u24-linux-i586.bin 파일 다운로드 후 각 서버에 upload

 - /usr/local/에 복사

 - chmod 755  후 실행

 - 링크 ln -s jdk1.6.0_24 java

 - /etc/profile 에 path export

 ex)  export JAVA_HOME=/usr/local/java

        export PATH=$PATH:$JAVA_HOME/bin

        export CLASS_PATH="."

 source /etc/profile

 java -version 으로 설치 확인


SSH 설정

 하둡은 SSH 프로토콜을 이용해 하둡 클러스터 간의 내부 통신을 수행 한다.

 네임노드에서 SSH 공개키를 설정하고, 이 공개키를 전체 서버에 복사하는 작업을 진행 해야 한다.

 # ssh-keygen -t rsa  ( 추가 입력 없이 계속 enter )

 # scp ~/.ssh/id_rsa.pub hadoop@yh02:/home/hadoop/

 # ssh yh02

 # mv id_rsa.pub ~/.ssh/authorized_kyes

 # exit

 # ssh yh02 (이때 암호 없이 접속 되는 것을 확인)

 # yh03 도 같은 작업 반복


지금까지 하둡을 설치하기 위한 모든 준비 작업을 진행 하였다.

이제 하둡 사이트에서 다운 받은 tar 파일을 하둡 설치 계정의 홈 디렉토리로 옮겨 놓고 압축을 하재 한다.

# tar xvzf hadoop-2.3.0.tar.gz

심볼릭 링크 설정

# ln -s hadoop-2.3.0 hadoop

yh02, yh03 도 반복


하둡 환경 설정 파일 수정

 - 이제 하둡 환경 설정 파일만 수정하면 모든 설치 작업이 마무리 된다.

 환경설정 파일은 HADOOP_HOME/etc/hadoop 에 있다. 

 1. hadoop-env 수정

 export JAVA_HOME=${JAVA_HOME} 을 export JAVA_HOME=/usr/local/java  로 변경하자.

 ${JAVA_HOME} 으로 해도 되겠지... 하고 했더니 yh02, yh03에서 JAVA_HOME 을 찾을 수 없다는 메시지가 나온다. (괜한 삽질 30분 함)

2. slaves 수정

yh02

yh03

호스트명 또는 IP로 기재 가능하며 한줄에 하나씩 기재하면 된다.

3. core-site.xml 수정

<configuration>
 <property>
  <name>fs.default.name</name>
  <value>hdfs://yh01:9000</value> </property>
 <property>
  <name>hadoop.tmp.dir</name>
  <value>/home/hadoop/hadoop-data/</value>
 </property>
</configuration>

4. hdfs-site.xml 수정

<configuration>
 <property>
  <name>dfs.replication</name>
  <value>3</value>
 </property>
 <property>
  <name>dfs.http.address</name>
  <value>yh01:50070</value>
 </property>
 <property>
  <name>dfs.secondary.http.address</name>
  <value>yh02:50090</value>
 </property>
</configuration>

5. mapred-site.xml 수정

<configuration>
  <name>mapred.job.tracker</name>
  <value>yh01:9001</value>
 </property>
</configuration>


NameNode(yh01)에서 모든 수정 작업이 완료되었으면 아래와 같이 scp 를 이용하여 
6. 모든 데이터노드 서버로 네임노드의 하둡 환경 설정을 전송 한다.
scp /home/hadoop/hadoop/etc/hadoop/* hadoop@yh02:/home/hadoop/hadoop/etc/hadoop/


하둡 실행
 네임노드를 초기화하고 모든 데몬을 실행하면 하둡이 실행된다.
 네임노드의 HADOOP_HOME/bin 에서
 ./hadoop namenode -format 실행
 HADOOP_HOME/sbin/ 으로 이동 후
./start-all.sh 실행 
hadoop 이 실행된다.
하둡 데몬 실행 여부는 자바에서 제공하는 jps(Java Virtual Machine Process Status Tool) 를 이용해 확인할 수 있다.
NameNode 에서 jps 실행 시 아래와 같이 나오면 성공

yh02로 접속해서 jps 실행 하면 TaskTracker, DataNode 가 출력 되어야 한다.



하둡은 사용자 편의성을 위해 웹UI 를 제공한다.

http://NameNode IP:500701 으로 접속하면 아래와 같이 나온다.

이 사이트에서는 HDFS의 용량, 데이터 노드 개수 등 기본적인 HDFS 의 상태 정보와 NameNode에 적재된 하둡로그, HDFS에 저장된 파일도 조회할 수 있다.













728x90
반응형
LIST

'IT > 하둡' 카테고리의 다른 글

HDFS(Hadoop Distributed File System) 아키텍처  (0) 2014.03.05
HDFS(Hadoop Distributed File System) 기초  (0) 2014.03.04
Hadoop Test (STS + Maven)  (0) 2014.03.04
Hadoop Echosystem  (0) 2014.03.04
Hadoop(하둡)  (0) 2014.03.04