자세히 쓰자면 잡소리도 많이 들어가고 분량도 길어지니 대충 적어보자

OS : Ubuntu 12.10


1. Base

1) User setting

$ sudo groupadd hadoop
$ sudo useradd -g hadoop hadoop -s /bin/bash -m
$ passwd hadoop

2) SSH

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

3) JDK

$ sudo apt-get install openjdk-7-jdk


2. Hadoop

Pseudo-Distribute 모드로 일단 셋팅해보자

1) Install

$wget http://ftp.daum.net/apache/hadoop/common/hadoop-2.2.0/hadoop-2.2.0.tar.gz
$ tar xvzf ~

컴파일 그딴거 없다 압축 풀어서 쓰자

2) Env var

$ vi ~/.bash_profile

export JAVA_HOME= 알아서
export HADOOP_HOME=알아서
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin

$ source ~/.bash_profile


3) version test

$ hadoop version


4) Hadoop settings

  2.0부터 디렉토리 구조가 조금 변경되었다. conf디렉토리가 없어지고 etc/hadoop 안에 대부분의 설정 파일들이 들어있다. 하둡 서버를 실행시키는 스크립트들은 sbin/으로 들어갔다.
  설정 시작!

(1) HDFS settings

#etc/hadoop/core-site.xml

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


#etc/hadoop/hdfs-site.xml

<configuration>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/알아서 하둡 파일 시스템 내부 namenode 경로</value>
    </property>
    <property>
        <name>dfs.datanode.name.dir</name>
        <value>file:/알아서 하둡 파일 시스템 내부 datanode 경로</value>
    </property>
    <property>
        <name>dfs.namenode.http-address</name>
        <value>0.0.0.0:50071</value>
    </property>
</configuration>


$ mkdir 하둡_파일_시스템_내부_namenode와_datanode_경로
$ hdfs namenode -format
$ sbin/start-dfs.sh
(hadoop-daemon.sh start namenode 같이 하나씩 start도 가능)

$ jps
NameNode
SecondaryNameNode
DataNode
Jps

(2) YARN settings

#etc/hadoop/mapred-site.xml

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


#etc/hadoop/yarn-site.xml

<configuration>
    <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>

#빨간 부분을 꼭 언더바(_)로 작성해야 하다.


#etc/hadoop/yarn-env.sh
#파일에 맨 처음에 다음 내용 추가

export HADOOP_PREFIX=알아서 하둡 위치
export HADOOP_MAPRED_HOME=${HADOOP_PREFIX}
export HADOOP_COMMON_HOME=${HADOOP_PREFIX}
export HADOOP_HDFS_HOME=${HADOOP_PREFIX}
export HADOOP_YARN_HOME=${HADOOP_PREFIX}

...

$ sbin/start-yarn.sh
(yarn-daemon.sh start {resourcemanager, nodemanager}, mr-jobhistory-daemon.sh start historyserver로 하나씩 start도 가능)


3. Let's do something

$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar pi -Dmapreduce.clientfactory.class.name=org.apache.hadoop.mapred.YarnClientFactory -libjars share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar 16 10000


4. Reference

대용량 데이터 분석 및 처리를 위한 Hadoop & NoSQL / 길벗출판사
http://raseshmori.wordpress.com/2012/09/23/install-hadoop-2-0-1-yarn-nextgen/
http://blog.daum.net/caisa/109

+ Recent posts