HW & SW/IT

[hadoop] single node cluster 설치

부산라이더 2013. 12. 1. 13:56

참고 사이트

http://www.cyworld.com/ruo91/8714459

http://www.yongbok.net/blog/how-to-install-hadoop-2-2-0-pseudo-distributed-mode/#comment-70525



http://hadoop.apache.org 에서 2.x 버전을 다운받아 압축을 풀어준다.


SSH 설정

hadoop은 분산DB의 접속 및 제어를 SSH를 통하므로 비밀번호 없이 바로 접속할 수 있도록 해 준다.

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


jdk는 1.7 버전을 설치한다.


hadoop 환경변수 설정

~/.profile (.bash_profile) 에 아래의 환경변수를 설정한다.

# Hadoop
export HADOOP_PREFIX="/opt/hadoop-2.2.0"                 # hadoop이 설치된 디렉토리
export PATH=$PATH:$HADOOP_PREFIX/bin
export PATH=$PATH:$HADOOP_PREFIX/sbin
export HADOOP_MAPRED_HOME=${HADOOP_PREFIX}
export HADOOP_COMMON_HOME=${HADOOP_PREFIX}
export HADOOP_HDFS_HOME=${HADOOP_PREFIX}
export YARN_HOME=${HADOOP_PREFIX}
# Native Path
export HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_PREFIX}/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_PREFIX/lib"



hadoop 환경설정

$HADOOP_PREFIX/etc/hadoop/core-site.xml 편집

<configuration>
    <property>
        <name>fs.default.name</name>
        <value>hdfs://localhost:9000</value>
        <final>true</final>
        <description>Set dfs URI. Set dfs ip or domain name and port.</description>
    </property>
</configuration>



$HADOOP_PREFIX/etc/hadoop/hdfs-site.xml 편집

<configuration>
    <property>
        <name>dfs.namenode.name.dir</name>
           <value>file:/opt/hadoop-2.2.0/dfs/name</value>                       //hadoop의 hdfs 저장 위치
          <final>true</final>
     </property>
     <property>
           <name>dfs.datanode.data.dir</name>
           <value>file:/opt/hadoop-2.2.0/dfs/data</value>
                         //hadoop의 hdfs 저장 위치

           <final>true</final>
     </property>
     <property>
           <name>dfs.permissions</name>
           <value>false</value>
     </property>
</configuration>



$HADOOP_PREFIX/etc/hadoop/mapred-site.xml 편집

mapred-site.xml.template 를 복사하여 편진하면 된다.

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
     </property>
     <property>
           <name>mapred.system.dir</name>
          <value>file:/opt/hadoop-2.2.0/mapred/system</value>                
//hadoop의 mapreduce 저장 위치

           <final>true</final>
    </property>
    <property>
        <name>mapred.local.dir</name>
        <value>file:/opt/hadoop-2.2.0/mapred/local</value>
        <final>true</final>
    </property>
</configuration>


$HADOOP_PREFIX/etc/hadoop/yarn-site.xml 편집

<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>
<property>
    <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
    <value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
</configuration>


$HADOOP_PREFIX/etc/hadoop/hadoop-env.sh 내용에서 jdk의 홈디렉토리를 설정한다.

export JAVA_HOME=/usr/lib/jvm/default-java           //debian 기준


이제 hadoop을 실행할 준비가 되었다.

먼저 hdfs를 초기화 한다.(한 번만 하면 된다.)

hdfs namenode -format


이제 정말로 시작한다.

$HADOOP_PREFIX/sbin/start-all.sh

jps로 실행여부를 확인할 수 있다.

SecondaryNameNode, DataNode, NodeManager, NameNode, ResourceManager 가 실행 프로세스로 확인할 수 있다.


http://localhost:8088/ 에서 hadoop 동작확인을 할 수 있다.

http://localhost:50070/ 에서 NameNode 확인을 할 수 있다.