DIY

とりあえずやってみるのメモ。技術的なメモもありますが、独り言もあります。

DockerでHadoopを動かす(1)

DockerでHadoopを動かしてみる。
基本は以下のサイトどおり。

https://hadoop.apache.org/docs/r2.7.2/hadoop-project-dist/hadoop-common/SingleCluster.html


1.Hadoopインストール

wget http://apache.claz.org/hadoop/common/hadoop-2.7.2/hadoop-2.7.2.tar.gz
tar xvzf hadoop-2.7.2.tar.gz
mv hadoop-2.7.2 /usr/local/lib/hadoop

2.サンプル実行

/usr/local/lib/hadoop/bin/hadoop jar /usr/local/lib/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar pi 10 2000

3.HDFSにファイルを入れてみる。

# cd /usr/local/lib/hadoop
# bin/hdfs namenode -format
# sbin/start-dfs.sh

sshが入っていないのでopenssh-clientsとopenssh-serverをyumで入れる。

yum install -y openssh-clients
yum install -y openssh-server

dockerコンテナはいったんhadoopという名前をつけてcommitしておく。
commitしたイメージを再度コンテナとして起動するが、
systemctでsshdを起動しようとすると権限の問題で怒られるので、
以下の起動の仕方で起動する。

# docker run --privileged -d hadoop /sbin/init
# docker exec -ti container_id bash

しかしここでJAVA_HOMEが設定されてないと怒られる。
/root/.bash_profileや/etc/profileにexportを記述しても解決しないので、
以下のファイルのexport JAVA_HOME=…を上書きした。

# vim etc/hadoop/hadoop-env.sh
# bin/hdfs dfs -mkdir /user
# bin/hdfs dfs -put etc/hadoop/ /user
# bin/hdfs dfs -ls /user
drwxr-xr-x   - root root       4096 2016-07-27 03:22 /user/hadoop

# bin/hdfs dfs -ls /user/hadoop
rw-r--r--   1 root root       4436 2016-07-27 03:22 /user/hadoop/capacity-scheduler.xml
-rw-r--r--   1 root root       1335 2016-07-27 03:22 /user/hadoop/configuration.xsl
-rw-r--r--   1 root root        318 2016-07-27 03:22 /user/hadoop/container-executor.cfg
-rw-r--r--   1 root root        774 2016-07-27 03:22 /user/hadoop/core-site.xml
-rw-r--r--   1 root root       3670 2016-07-27 03:22 /user/hadoop/hadoop-env.cmd
-rw-r--r--   1 root root       4266 2016-07-27 03:22 /user/hadoop/hadoop-env.sh
-rw-r--r--   1 root root       2490 2016-07-27 03:22 /user/hadoop/hadoop-metrics.properties
-rw-r--r--   1 root root       2598 2016-07-27 03:22 /user/hadoop/hadoop-metrics2.properties
-rw-r--r--   1 root root       9683 2016-07-27 03:22 /user/hadoop/hadoop-policy.xml
…(省略)

ということで、HDFSまで動かすことができました。