Hadoop이 정상적이지 않은 방법으로 종료 되었을 때 발생하는 에러

정상적이지 않은 방법으로 hadoop이 꺼지게 되면, name node 가 safe모드로 이동한다.


$ hadoop dfsadmin -safemode leave

Safe mode is OFF 라는 메세지가 나온 후, 다시 구동

Mahout은 간단히 설명하고 빠른 설치 ㄱㄱ


1. Introduction

Hadoop환경에서 쓸 수 있는 기계학습 library모음을 제공한다. 
  또한, 관련된 Classification, Clustering, Collaborative Filtering에 관련된 기본적이고 대표적인 알고리즘들이 미리 구현되어 있다. 
  Hadoop환경이니까 당연히 Map/Reduce로 구동된다.
  2014년 1월 17일 현재 0.8버전이 최신 버전이다.


2. Installation

1) Download

$ wget http://ftp.daum.net/apache/mahout/0.8/mahout-distribution-0.8.tar.gz
역시 컴파일 따위 없다. 걍 컴파일 되어 있는거 받아서 쓰는거다.

2) Env var

$ vi ~/.bash_profile

export MAHOUT_HOME=알아서
export PATH=$PATH:$MAHOUT_HOME/bin

$ source ~/.bash_profile
$ mahout --help

3) Let's do something

(1) Data download for test

$ wget http://archive.ics.uci.edu/ml/databases/synthetic_control.data

(2) Data store to HDFS

$ hadoop fs -put synthetic_control.data /알아서HDFS/synthetic_control.data

(3) RUN!!

$ mahtout org.apache.mahout.clustering.syntheticcontrol.kmeans.Job --input /알아서HDFS/synthetic_control.data --output /알아서HDFS/output_dir -t1 20 -t2 50 -k 5 -x 20 -ow

3. Reference

대용량 데이터 분석 및 처리를 위한 Hadoop & NoSQL / 길벗출판사
http://blog.daum.net/caisa/109

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

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


JDK 1.6.0_25
Hadoop 0.20.2
Eclipse 3.3.2

Map/Reduce 를 이용한 WordCount 예제...
삽질끝에 드디어 성공 -_- !

+ Recent posts