0

私はHadoopに非常に慣れていません。次のコマンドで Hadoop を起動します...

[gpadmin@BigData1-ahandler root]$ /usr/local/hadoop-0.20.1/bin/start-all.sh
starting namenode, logging to /usr/local/hadoop-0.20.1/logs/hadoop-gpadmin-namenode-BigData1-ahandler.out
localhost: starting datanode, logging to /usr/local/hadoop-0.20.1/logs/hadoop-gpadmin-datanode-BigData1-ahandler.out
localhost: starting secondarynamenode, logging to /usr/local/hadoop-0.20.1/logs/hadoop-gpadmin-secondarynamenode-BigData1-ahandler.out
starting jobtracker, logging to /usr/local/hadoop-0.20.1/logs/hadoop-gpadmin-jobtracker-BigData1-ahandler.out
localhost: starting tasktracker, logging to /usr/local/hadoop-0.20.1/logs/hadoop-gpadmin-tasktracker-BigData1-ahandler.out

次のディレクトリからの出力を -cat しようとすると、「利用可能なノードがありません」というエラーが表示されます。このエラーはどういう意味ですか? どうすれば修正できますか?それともデバッグを開始しますか?

[gpadmin@BigData1-ahandler root]$ hadoop fs -cat output/d*/part-*
13/11/13 15:33:09 INFO hdfs.DFSClient: No node available for block: blk_-5883966349607013512_1099 file=/user/gpadmin/output/d15795/part-00000
13/11/13 15:33:09 INFO hdfs.DFSClient: Could not obtain block blk_-5883966349607013512_1099 from any node:  java.io.IOException: No live nodes contain current block
4

1 に答える 1

0

これは、namenode の前に datanodes を開始すると発生します。

namenode が開始する前に datanodes が開始すると、datanode サービスは namenode にチェックインしようとし、 と言って失敗します"namenode not found"。その後、namenode が開始されると、チェックインされたデータノードがないため、アクセスされているデータのブロックが配置されているノードを見つけることができません。

スクリプトstart-all.shを実行して、namenode が datanodes の前に開始することを確認する必要があります。

于 2013-11-13T23:31:41.697 に答える