자세히 쓰자면 잡소리도 많이 들어가고 분량도 길어지니 대충 적어보자
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