Skip to content

Instantly share code, notes, and snippets.

@sakama
Last active April 19, 2018 15:02
Show Gist options
  • Save sakama/cd12b8059473d14afe57 to your computer and use it in GitHub Desktop.
Save sakama/cd12b8059473d14afe57 to your computer and use it in GitHub Desktop.
Amazon Linux AMI 2015.03にCDH5をインストールしてembulk-mapreduce-executorを実行する

CDH5(Cloudera Hadoop 5のインストール)

下準備

# cat /etc/system-release
Amazon Linux AMI release 2015.03

タイムゾーンの変更
# date
Sat Aug 15 08:48:30 UTC 2015
# cp /etc/localtime /etc/localtime.org
# ln -sf  /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
# vi /etc/sysconfig/clock
ZONE="Asia/Tokyo" に変更
UTC=true を削除
# date
Sat Aug 15 17:50:41 JST 2015

# yum update

JDKのインストール

JDKを/usr/local/src/にアップロードしておく
# yum localinstall jdk-7u79-linux-x64.rpm
# java -version
# echo $JAVA_HOME

設定されていなければJAVA_HOMEをセットする(root/hdfsユーザ)
# vim ~/.bashrc
# source ~/.bashrc
# echo $JAVA_HOME

CDH5のインストール

# cd /usr/local/src
# wget http://archive.cloudera.com/cdh5/one-click-install/redhat/6/x86_64/cloudera-cdh-5-0.x86_64.rpm
# rpm -ivh cloudera-cdh-5-0.x86_64.rpm
# rpm --import http://archive.cloudera.com/cdh5/redhat/6/x86_64/cdh/RPM-GPG-KEY-cloudera
# yum install hadoop-conf-pseudo

host名の変更

# hostname
example-cluster
# vim /etc/hosts
# vi /etc/hadoop/conf/core-site.xml
<property>
  <name>fs.defaultFS</name>
  <value>hdfs://example-cluster:8020</value>
</property>

# vi /etc/hadoop/conf/mapred-site.xml
<property>
  <name>yarn.resourcemanager.address</name>
  <value>example-cluster:8032</value>
</property>

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

<property>
  <name>mapreduce.jobhistory.address</name>
  <value>example-cluster:10020</value>
</property>

<property>
  <name>mapreduce.jobhistory.webapp.address</name>
  <value>example-cluster:19888</value>
</property>

# vi yarn-site.xml
<property>
  <description>Where to aggregate logs to.</description>
  <name>yarn.nodemanager.remote-app-log-dir</name>
  <value>/app-logs</value>
</property>
# sudo -u hdfs hadoop fs -mkdir /app-logs
# sudo -u hdfs hadoop fs -chown -R yarn:hadoop /app-logs
# sudo -u hdfs hadoop fs -chmod -R 777 /app-logs

HDFSの起動

Namenodeのフォーマットを実行

JDKをインストールしてJAVA_HOMEをセットしていない、またはホスト名を書いてないとエラーになる

# sudo -u hdfs hdfs namenode -format

HDFS(Namenode / Secondarynamenode / Datanode)を起動

擬似分散環境の場合一つのサーバーで構築するので Secondarynamenode は必要ないが、起動しても特に問題はない。

# for x in `cd /etc/init.d ; ls hadoop-hdfs-*` ; do sudo service $x start ; done

YARNの起動

HDFS上に各種ディレクトリを作成。これをしないとYARNの起動でコケる

# /usr/lib/hadoop/libexec/init-hdfs.sh

HDFS上のディレクトリの確認

# sudo -u hdfs hadoop fs -ls -R /
# service hadoop-yarn-resourcemanager start
# service hadoop-yarn-nodemanager start
# service hadoop-mapreduce-historyserver start

WordCountの実行(正常にインストールできたか確認)

# sudo su - hdfs
$ echo "hoge fuga bar foo hoge fuga" > wordcount.txt
$ hadoop fs -mkdir -p /user/hdfs/input
$ hadoop fs -put wordcount.txt /user/hdfs/input
$ hadoop fs -cat /user/hdfs/input/wordcount.txt
hoge fuga bar foo hoge fuga
$ hadoop jar /usr/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar wordcount /user/hdfs/input/wordcount.txt /user/hdfs/output

$ hadoop fs -ls -R /user/hdfs/output
$ hadoop fs -cat /user/hdfs/output/part-r-00000

Embulkのインストール

# sudo su - hdfs
$ curl --create-dirs -o ~/.embulk/bin/embulk -L "http://dl.embulk.org/embulk-latest.jar"
$ chmod +x ~/.embulk/bin/embulk
$ echo 'export PATH="$HOME/.embulk/bin:$PATH"' >> ~/.bashrc
$ source ~/.bashrc

$ embulk gem install embulk-input-s3
$ embulk gem install embulk-executor-mapreduce
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment