Hadoopクラスタ構築への道 ~疑似分散編~
※HadoopはCDHではなく、Apacheの公式ページからビルド
※完全分散は別記事。ここでは疑似分散まで
Javaのインストール
まずはjava7をダウンロード ※hadoop-2.7の時点ではjava8はまだ対応していない
# リポジトリ追加 $ sudo add-apt-repository ppa:webupd8team/java # アップデート $ sudo apt-get update # jdk7インストール $ sudo apt-get install oracle-jdk7-installer
↓参考にしたサイト
ubuntu 14.04にOracleJDK7(JAVA)をインストールする - Qiita
Hadoopインストール
基本的にはApacheの公式ドキュメントに沿って行う
Apache Hadoop 2.7.2 – Hadoop: Setting up a Single Node Cluster.
ぐぐるといろんな方が様々なパラメータを追加で設定しているやり方を載せてくれているが、初心者が下手に真似すると爆死します(俺の事)
# HadoopパッケージをHome(好きなとこ)に置く $ wget http://ftp.meisei-u.ac.jp/mirror/apache/dist/hadoop/common/hadoop-2.7.2/hadoop-2.7.2.tar.gz # 解凍 $ tar zxvf hadoop-2.7.2.tar.gz # 環境変数を設定 $ sudo vim /etc/profile
末尾に以下を追加、後々便利なので、余分なものも追加しているが、公式にのっているやつだけもよい
export JAVA_HOME=/usr/lib/jvm/java-7-oracle
export HADOOP_HOME=/home/#ユーザー名/hadoop-2.7.2
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
# 適用する $ source /etc/profile
ここからHadoop環境の設定
# まずは、etc/hadoop/hadoop-env.sh export JAVA_HOME=/usr/lib/jvm/java-7-oracle export HADOOP_CONF_DIR=/home/ユーザー名/hadoop-2.7.2/etc/hadoop # 次に etc/hadoop/ の core-site.xmlとhdfs-site.xmlに以下の内容を追加 # core-site.xml <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> </configuration> # hdfs-site.xml <configuration> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration> # localhostにパスフレーズなしで自分に接続できるか確認 $ ssh localhost
SSHで接続できないときは以下のページを参照
複数の仮想マシンを互いにSSHで接続 - 8t's BBR
# ファイルシステムのフォーマット(設定ファイルをいじるたびに必ず行う) $ (bin/)hdfs namenode -format ///pathを通していたらbin/かかなくてよい、以下略 # デーモンの起動 $ (sbin/)start-dfs.sh # デーモンがきちんと起動したか確認。 $ jps
立ち上がっていれば、NamenodeとかDatanodeとかが表示される。
ウェブで確認するには、http://localhost:50070でつながるかどうか
ここから実際にサンプルアプリケーションを動かしてみる
# hdfsのユーザーを作成 $ hdfs dfs -mkdir /user $ hdfs dfs -mkdir /user/<username> # hdfs用のinputディレクトリ作成 $ hdfs dfs -put etc/hadoop input # アプリケーション起動。公式ではgrepでやってる $ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount input output # 出力データ確認 $ hdfs dfs -get output output $ cat output/* # or $ hdfs dfs -cat output/*
ここからYARNの起動。まずは設定ファイルから。
# 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> </configuration> # ResourmanagerとNodemanager起動 $ (sbin/)start-yarn.sh
jpsコマンドかウェブで確認
ウェブで確認する場合はポート番号8088で
そして先ほど同様にサンプルアプリケーション動かしてみて、
最後までしっかり動作すればOK