Hadoop-CDH4.3.0

CentOSにインストールし直したので,記録です.

  1. CDHのバージョンが上がったから
  2. クラスタモードでインストールしたから
  3. HBaseのインストールを追加

HadoopとHBaseのダウンロード先はこちら.
http://archive.cloudera.com/cdh4/cdh/4/hadoop-2.0.0-cdh4.3.0.tar.gz
http://archive.cloudera.com/cdh4/cdh/4/hbase-0.94.6-cdh4.3.0.tar.gz

fs.defaultFS
hdfs://localhost:8020/

↓なんかネームノードのサーバ名にでもする

fs.defaultFS
hdfs://namenode:8020/

mapreduce.jobhistory.address
0.0.0.0:10020

↓この辺りも,ネームノードのサーバ名辺りに全部変える

mapreduce.jobhistory.address
namenode:10020

ネームノード上で,この辺はちゃんと書く.

dfs.namenode.name.dir
file:///home/hadoop/namenode

リソースマネージャの指定もちゃんと書く.

yarn.resourcemanager.address
resourcemanager:8040

などなどの設定変更でフルクラスタモードになるのですが,一箇所だけハマりました.

ネームノードを立ち上げる

mkdir -v /home/hadoop/namenode 
./bin/hdfs namenode -format hadoop
./sbin/hadoop-daemon.sh --script hdfs start namenode

全てのスレーブ(データノード)で,データノードデーモンを立ち上げる

./sbin/hadoop-daemon.sh --script hdfs start datanode

エラーが出ました.
ネームノードのログではこんなエラー.

WARN org.apache.hadoop.hdfs.server.blockmanagement.DatanodeManager: Unresolved datanode registration
Datanode denied communication with namenode

データノードのログではこんなエラー.

Datanode denied communication with namenode

ソースを見てみると,サーバ名の正引き・逆引きがちゃんと出来ないとエラーにしてるようですね.
「処理速度が低下するから」とかコメントがJavaのソースの中にありました.

ネームサーバを触る権限が無いので,取り敢えず/etc/hostsにIPアドレスとマシン名を書きまくって解決しました.

あとは,

リソースマネージャ上でデーモンを立ち上げる.

./sbin/yarn-daemon.sh start resourcemanager

全てのスレーブ(データノード)上で,ノードマネージャを立ち上げる.

./sbin/yarn-daemon.sh start nodemanager

ひまがあったらヒストリーサーバも立ちあげる.

./sbin/mr-jobhistory-daemon.sh start historyserver