Hadoop 2.2.0 (1) – Installation #1: Prerequisites

By | Y2014Y2014-4M-D

* Next

Hadoop 2.2.0 (1) – Installation #2: Installing hadoop

Hadoop 2.2.0 (1) – Installation #3: TroubleShootings


 

칼을 들었으면 썩은 무라도 베어야 하고 공부를 했으면 실행을 해봐야..;;; 라지요.

일단 Cluster Mode 설치를 해봅니다.
(* 완벽히 검증한 것은 아니라 아직 내용에 오류가 있을 수 있습니다. 과감한 지적 바랍니다. 구글닥에서 작성해서 옮겼더니 문서 포맷이 많이 깨지네요..ㅜㅜ)

하둡도 프레임워크인지라 설정따라 움직이는 것이 당연하다.(당연하다고 설정을 대충하면 삽질한다. ㅡㅡ;;

이미 설치해보신 분들은 잘 아시리라 생각하지만 1.x 대의 하둡의 설치에는 두가지가 있다.

Single Node Setup 과 Cluster Setup.

그리고  Single Node Setup 에는 이름하야 Standalone Operation 과 Pseudo-Distributed Operation(이름이 웅장하다..두둥!) 가 있다. 그리고 Cluster Setup 은 Fully-Distributed Operation 을 지원한다.

뜻이야 대충 아실테고, Single Node Setup 은 빠르게 하둡을 맵리듀스를 이용하여 돌려보고 싶은 분들에게, Cluster Setup 이야 당연 실제 적용하기 위해 수천 수만 노드를 위한 설정이다.

하둡 2.2.0 에서는 Single Node Setup 과 Cluster Setup 가 있고, CLI Mini Cluster Setup 도 있다(아 이건 1.x 버전에도 있었다;). Cluster Setup 들어갔더니 떡하니 이렇게 적혀있다.

경고: Cluster Setup 은 중요한 노드를 열라 많이(수천~ 수만) 두는 실전용임!  하둡이랑 걍 재밌게 놀고 싶으면 Single Node Setup 으로 꺼지삼~ (헉!)

이유는 잘 모르겠는데 이너넷 자료를 찾아보면 Cluster Setup에 대한 내용이 잘 없다. 전부 Single Node Setup(Pseudo Mode..;;)  공부하라는 신의 뜻인갑다. 역시 날로먹는건 없나보다.

삽질의 망망대해로 푹~ 빠져보자.


** 본 설치 절차는 하둡 Stable 버전(2.2.0;2014-04-22 현재) 공식 문서 중 Cluster Setup/Running in Non-Secure Mode를 참조하였습니다.
(http://hadoop.apache.org/docs/r2.2.0/hadoop-project-dist/hadoop-common/ClusterSetup.html)

  • 하둡 프레임워크 동작을 위한 설정파일

하둡 관련 폴더를 뒤져보면 알겠지만, 관련 폴더에는 설정을 위한 기본 환경파일(Environment; *.env) 파일과 하둡의 기본 설정을 나타내는 Default 설정파일(core-default.xml;hdfs-default.xml;mapred-default.xml;yarn-default.xml) 과 이 설정들을 각 서버와 그 서버에서 돌아가는 데몬 별로 적용하기 위한 Site 설정파일(core-site.xml;hdfs-site.xml;mapred-site.xml;yarn-site.xml) 이 있다.

  • core-*.xml     : NameNode, Secondary Namenode 및 하둡 기본 temp directory와 Default File System 위치와 서비스 http, rpc 등 관련 값 설정
  • hdfs-*.xml     : NameNode, Checkpoint Node Host 및 DataNode Host 정보 (rpc, http 접근을 위한 주소 포함) 및 NameNode Directory (fsimage) 정보 등.
  • mapred-*.xml   : Map Reduce Framework 를 위한 설정. JobTracker, map, task 및 yarn  프레임워크 연동 관련 정보
  • yarn-*.xml         : YARN Resource Manager, Node Manager 관련 RPC Host  및 각종 관련 daemon 정보
  • Hadoop Framework 용 서버 환경 설정

Runtime Host Environment

– CPU/MEM/OS: AMD 4Ghz, 4 Core, HT enabled(8Core) / 16GB / MS Windows 7

– Network/Storage: 1GB LAN, NAS

– Virtualization: VMWare Workstation

  • Specifications of Virtual Machines:

– CPU/MEM/DISK/OS:  2 Core / 2GB / 45GB / CentOS 5

Numbers of Virtual Machine: 3 Hosts
– beethoven (192.168.0.230) / mozart (192.168.0.231)  / bach (192.168.0.232)


  •  설치 전 사전 작업

  1. hadoop 용 계정 추가(이 글에서는 hadoop:hadoop 으로 계정 생성 및 그룹 할당 하였다). 이후 모든 작업은 hadoop 으로 로그인하여 작업.
  2. hadoop 용 계정을 /etc/sudoer , /etc/groups 에 sudo 등록 (참고: http://lang.snu.ac.kr/clab/?q=node/135)

단, No password 옵션은 보안 상 나쁘지 않을까 하는 개인적인 견해…

  1. SSH 와 키 등록

    이 부분에 대해서는 이미 포스팅 한 바 있으니 다음 글을 확인해보자.
    SSH와 공개키를 이용한 시스템간 사용자 인증 및 권한획득

    1. cd ~/.ssh
      (디렉토리가 없으면 cd ~/; .ssh 폴더가 없으면 키 생성한 적이 없는 것을 뜻함)
    2. ssh-keygen -t  dsa 명령으로 공개키 생성
    3. .ssh/id_dsa, .ssh/id_dsa.pub
    4. cd ~/.ssh(.ssh 키가 새로 만들어진 경우만)
    5. 각 서버에서 다음을 실행한다. cp ~/.ssh/id_dsa.pub  ~/.ssh/authorized_keys
    6. vim /etc/ssh/sshd_config 명령으로 sshd_config 파일의 주석을 해제RSAAuthentication yes
      PubkeyAuthentication  yes
      AuthorizedKeyFile .ssh/authorized_keys
    7. TEST 실시: ssh -l current_account hostname
      (여기에서 fingerprint를 묻는 Prompt에서 yes, 2번 과정에서 생성한 개인키 PassPhrase 를 한번 입력해준다.)
    8. 각 서버의 id_dsa 파일을 id_dsa_hostname (ex. id_dsa_beethoven) 로 복사하고 scp 등으로 각각의 서버에 모두 복사해둔다.
      (Ex. scp ~/.ssh/id_dsa_beethoven  hadoop@mozart:~/.ssh/)
    9. 각 서버의 id_dsa.pub 파일을 id_dsa_hostname 으로 복사하고 scp 등으로 각각의 서버에 모두 복사해둔다.
      (Ex. scp ~/.ssh/id_dsa_beethoven.pub  hadoop@mozart:~/.ssh/)
    10. (Option.) 각 서버에서 모든 서버의 공개키를 ~/.ssh/authorized_keys 에 추가한다.
      (Ex. cat ~/.ssh/id_dsa_hostname >> ~/.ssh/authorized_keys)
    11. ssh-agent 를 실행 후, 각 서버에서 복사한 개인키(id_dsa_hostname )를 등록한다.
      ssh-agent $SHELL
      ssh-add ~/.ssh/id_dsa_hostname 
    12. 각 서버에서 다른 서버로 ssh 접속테스트한다. PassPhrase 를 묻지 않아야 한다.
  2. JDK 설치 (http://tecadmin.net/steps-to-install-java-on-centos-5-6-or-rhel-5-6/)
    1. Download jdk: link here
      # cd /opt/
      # wget –no-cookies –no-check-certificate –header “Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie” “http://download.oracle.com/otn-pub/java/jdk/7u65-b17/jdk-7u65-linux-x64.tar.gz”
    2. unzip downloaded archive
    3. Run the scripts to install using alternatives:




  3. 환경변수 설정
    1. 개인적으로는 Cluster 환경이면 머신을 멀티 서비스하지는 않을 것으로 생각된다.따라서 Machine-level 로 환경설정을 해주는 것이 낫다고 생각한다.
      보통, 이 레벨의 환경설정은 /etc/init.d/profile 에 있지만 실제로 이 파일을 들여다보면 친절하게 향후 OS의 업데이트를 대비하여 /etc/profile.d/ 에 custom.sh 파일을 생성하여 사용하도록 권하고 있다.
    2. /etc/profile.d/custom.sh 설정(link)
  4. 시스템 설정 파일 설정

 

* Next

Hadoop 2.2.0 (1) – Installation #2: Installing hadoop

Hadoop 2.2.0 (1) – Installation #3: TroubleShootings

4,616 total views, 1 views today

One thought on “Hadoop 2.2.0 (1) – Installation #1: Prerequisites

  1. Pingback: Hadoop 2.2.0 (1) – Installation #2: Installing hadoop (editing..) | bluecore's...

댓글 남기기