2016年6月25日土曜日

UbuntuのHadoop2.6.0で完全分散モード

今回は、Hadoopを使った完全分散モードについて。
スタンドアローンと擬似分散はこちらから。
ここでの完全分散モードでは事前にHadoopのインストールが終わっていることを前提としています。そのため、上のリンクからmasterのみにインストールしておいてください。
masterではhadoopというユーザで環境を構築してください。
また、slaveにはhadoopというユーザを追加しておいてください。

完全分散ではmasterとslave用のサーバーとして最低でも2台のLAN接続されたPCが必要です。
今回の設定では、
master:1
slave:1
を例として取り上げます。最後のほうにslaveを増やした時の設定も設定方法も少し載せています。

実行環境
Ubuntu 14.04
Hadoop 2.6.0

sshキーの交換
masterからslaveにアクセスするために、masterの公開鍵をslaveに渡してやります。
ここでは、簡単に紹介しますが、もう少し詳しい内容はUbuntu14.04どうしをsshでリモート接続するで紹介しています。

まずは、masterのhostsにslaveのIPアドレスとホスト名を追加し、接続できるか確認します。

sshの登録
masterからslaveへの通信が確認できたら、masterで鍵を作成しslaveに渡します。

slave側で確認

接続してみる


各ファイルの設定
master側の設定

master上でファイルの設定が終わったので、これらをslaveに渡してやります。


slaveの設定
.bashrcはmasterと同じように書いておく。
slaveはnanenodeではなくdatanodeになるのでhdfs-site.xmlで設定を書き換える。


起動
まずは、フォーマットしてから起動。

master側で、Namenode,ResourceManeger
slave側で、DataNode,NodeManager
が起動していたらok
うまく出てない方は記事の下を参考に

コマンドによる確認

Webで確認
アドレスバーに192.168.XXX:50070
でアクセスするとHadoopの状態やdatanodeつまりslaveの状態が確認できる

サンプルの実行

slaveを増やす
slaveを増やすときはslaveファイルにslaveの名前を追加し、すべてのslaveの設定ファイルを同じにする。
また、hadoop/tmpフォルダはすべて削除した上でフォーマットする。

トラブルシューティング
  1. Datanodeが起動しない
  2. master,slaveともに、/usr/local/hadoopフォルダに/tmpがあったらそれをけ消してからもう一度フォーマットしてみる。 JAVA_HOMEのパスが通っているか確認する。
  3. 起動してもslaveが全然起動しない
  4. .bashrcやJAVA_HOMEのパスがきちんと通っているか。 sshで繋げれるか。 設定ファイルはあっているか。 slaveファイルに記述しているか。



0 件のコメント :

コメントを投稿