Hadoop-CDH4.3.0
CentOSにインストールし直したので,記録です.
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://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