OS X에 Hadoop 2.5.1 설치하기

Reading time ~4 minutes

이 글은, OS X 에 Hadoop2.5.1을 설치하고, 정상적으로 설치가 되었는지 테스트 하는 방법에 대한 글입니다.
실제 Cluster에 Hadoop 관련 Job을 제출하기 전에 Local에서 테스트 하기 위한 환경을 구축하기 위해 필요한 작업입니다.

WARNING

이 글은 최신버전을 기준으로 설명된 글이 아닙니다. 최신 버전을 대상으로 하였을 때와 설치 과정 혹은 출력 결과가 다를 수 있습니다.


Target Version

설치하고, 연동하고자 하는 Hadoop의 버전은 2.5.1입니다.

Pre-requirements

설치에 앞서 필요한 사항입니다. homebrew등을 이용해 쉽게 설치 가능합니다.
Mavericks 와, Yosemite 에서 테스트 되었습니다.

  • JDK7
  • Maven 3.x

Notation

이 문서에서 사용될 용어들에 대한 정의입니다.

  • ${HADDOP_DIR} : Hadoop 압축 해제 위치


I. Hadoop 설치

Hadopo 2.5.1 다운로드

Hadoop 다운로드 페이지에서 hadoop-2.5.1.tar.gz 를 다운로드 하고 압축을 해제합니다.


hadoop-env.sh 설정

${HADOOP_DIR}/etc/hadoop/hadoop-env.sh 파일에 다음 두 가지를 설정해야 합니다.

  1. JAVA_HOME : Java가 설치된 경로
  2. HADOOP_PREFIX : Hadoop이 설치된 경로, 즉 ${HADOOP_DIR}

해당 변수가 있는 부분을 주석 해제 후, 적절한 경로를 입력하면 됩니다.
Oracle 에서 배포하는 JDK7를 통해서 JDK7을 설치한 경우 /Library/Java/JavaVirtualMachines/jdk1.7_x 가 기본 경로입니다.


core-site.xml 설정

${HADOOP_DIR}/etc/hadoop/core-site.xml파일을 다음과 같이 설정합니다.

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


hdfs-site.xml 설정

${HADOOP_DIR}/etc/hadoop/hdfs-site.xml파일을 다음과 같이 설정합니다.

<configuration>
        <property>
                <name>dfs.replication</name>
                <value>1</value>
        </property>
        <property>
                <name>dfs.namenode.name.dir</name>
                <value>네임노드 정보가 저장될 경로</value>
        </property>
        <property>
                <name>dfs.datanode.data.dir</name>
                <value>데이터노드 정보가 저장될 경로</value>
        </property>
</configuration>


mapred-site.xml 설정

${HADOOP_DIR}/etc/hadoop/mapred-site.xml파일을 다음과 같이 설정합니다.

<configuration>
        <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
        </property>
</configuration>


yarn-site.xml 설정

${HADOOP_DIR}/etc/hadoop/yarn-site.xml파일을 다음과 같이 설정합니다.

<configuration>
        <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
        </property>
</configuration>


SSH 인증키 생성

콘솔창에서 다음 명령어를 수행합니다.

$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys


II.Hadoop 설치 결과 테스트

설치한 Hadoop이 정상적으로 설치되었는지 확인합니다.

Namenode format

다음 명령어를 수행합니다.

${HADOOP_DIR}/bin/hdfs namenode -format

콘솔에 출력된 결과 중,

common.Storage: Storage directory "hdfs-site.xml에서 설정한 경로" has been successfully formatted

메시지를 확인합니다.


DFS(Distributed File System) 실행

다음 명령어를 수행합니다.

${HADOOP_DIR}/sbin/start-dfs.sh

다음 페이지에서 Live Nodes 항목이 1로 표시되는지 확인합니다.

http://localhost:50070


YARN 실행

다음 명령어를 수행합니다.

${HADOOP_DIR}/sbin/start-yarn.sh

다음 페이지에서 Active Nodes 항목이 1로 표시되는지 확인합니다.

http://localhost:8088


III. 예제 수행

다음 명령어들이 수행되는 기본 경로는 ${HADOOP_HOME}이라 가정합니다.

$ bin/hdfs dfs -put etc/hadoop /input
$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.1.jar grep /input /output 'dfs[a-z.]+'
$ bin/hdfs dfs -cat /output/p*

위 명령어의 최종 수행 결과가 다음과 같은 텍스트를 출력하였다면, 정상적으로 수행된 것입니다.

6   dfs.audit.logger
4   dfs.class
3   dfs.server.namenode.
2   dfs.audit.log.maxbackupindex
2   dfs.period
2   dfs.audit.log.maxfilesize
1   dfsmetrics.log
1   dfsadmin
1   dfs.servers
1   dfs.replication
1   dfs.file
1   dfs.datanode.data.dir
1   dfs.namenode.name.dir


참고 사항

Hadoop 2.5.1에서 사용되는 Native Library 는 Mac OS X Platform 에서 사용이 불가능합니다. 때문에 Hadoop 관련 명령어를 수행할 때 마다 Native Library를 사용할 수 없다는 경고 메시지가 출력됩니다.

Yes24 책 추천 알고리즘, 어떻게 구현했나

얼마전 한국 정보화 진흥원이 관리하는 [개방형 문제해결 플랫폼](http://crowd.kbig.kr)에 올라온 Yes24 도서 추천 알고리즘 대회가 종료되었다.총 230여명이 참여하였고, 25팀이 최종 결과물을 제출한 대회였다. 이 대회에서 친...… Continue reading