連載
» 2017年02月21日 05時00分 公開

Hadoopの疑似分散モードと完全分散モードを試すきょうから試せる Hadoop“スモールスタート”ガイド(4)(3/4 ページ)

[佐々木達也,著]

完全分散モードでHadoopクラスタを構築する

 最後は完全分散モードを試してみましょう。

 今回の例では3台の仮想サーバを使ってHadoopクラスタを構築してみます。

  • 192.168.11.20(マスターノード)
  • 192.168.11.21(スレーブノード1)
  • 192.168.11.22(スレーブノード2)

 まず疑似分散モードのときのようにそれぞれのサーバ同士がSSHで鍵無しアクセスできるように設定しないといけないのですが、完全分散モードの場合、それぞれのサーバへのアクセスがホスト名で行えるように設定しなければいけません。/etc/hostsファイルを以下のように編集し、それぞれのサーバにホスト名を設定してください。今回はそれぞれにhadoop1、hadoop2、hadoop3というホスト名を付けました。

/etc/hosts
192.168.11.20 hadoop1
192.168.11.21 hadoop2
192.168.11.22 hadoop3

 設定したらそれぞれのサーバ上からSSHでそれぞれのサーバにログインできることを確認しておきましょう。ホスト名で問題なくログインできれば大丈夫です。

(例)hadoop1上でhadoop2にSSHログインする

 ここからは各種設定をしていきます。まず、マスターノード(今回はhadoop1)上で以下の2つのファイルを編集します。これもすべてホスト名で設定するので注意してください。

  • $HADOOP_HOME/conf/masters(マスターノードのホスト名を指定)
  • $HADOOP_HOME/conf/slaves(スレーブノードのホスト名を指定)
$HADOOP_HOME/conf/masters
hadoop1
$HADOOP_HOME/conf/slaves
hadoop1
hadoop2
hadoop3

 また、全ノード上で以下のファイルを設定します。

  • $HADOOP_HOME/conf/core-site.xm(l 全体の設定)
  • $HADOOP_HOME/conf/mapred-site.xm(l MapReduceの設定)
  • $HADOOP_HOME/conf/hdfs-site.xm(l HDFSの設定)

 具体的な設定内容は以下のようになります。

$HADOOP_HOME/conf/core-site.xml
$HADOOP_HOME/conf/mapred-site.xml
$HADOOP_HOME/conf/hdfs-site.xml

HDFSのフォーマット

 ここまで来たら設定は完了です。疑似分散モードのときと同じようにHDFSのフォーマットを行います。マスターノード(hadoop1)上で実行してください。

マスターノード(hadoop1)上で実行する

 疑似分散モードでHadoopを起動していたサーバをそのまま使っている場合など、フォーマットがうまくいかない場合があると思います。もしフォーマットがうまくいかない場合には各サーバで以前にHDFSのディレクトリが構築されたディレクトリ(つまり/tmp/hadoop-hadoop)を一度削除してから再度フォーマットしてみてください。

各サーバで実行する

デーモンの起動

 最後にデーモンを起動します。こちらもマスターノード(hadoop1)上で実行してください。

マスターノード(hadoop1)上で実行する

 分散疑似モードのときとは違い、デーモンがそれぞれのサーバで起動していることがわかります。前述したjpsコマンドを使えばきちんと起動していることが確認できるのでやってみてください。hadoop1上で実行するとこのような結果になるでしょう。

マスターノード(hadoop1)上で実行する

 スレーブノード(hadoop2、hadoop3)上で実行すればデータノードとタスクトラッカーだけが起動していることがわかります。

スレーブノード(hadoop2、hadoop3)上で実行する

Hadoop処理の実行

 これで準備は整いました。では、実際に完全分散モードで動かしてみます。疑似分散モードのときと同じように、inputディレクトリをそのままHDFS上に配置します。

 Hadoop処理を実行するコマンドはスタンドアロンモードや疑似分散モードのときと同じです。どのモード(スタンドアロンモード、疑似分散モード、完全分散モード)で実行されるかは設定ファイルの設定によって判定されます。

 ※11 HDFS上にoutputディレクトリが存在しない場合には省略可能です

 結果はこのようになりました。正しくカウントされていることがわかります。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。