Railway gun

Web系企業に勤めるサラリーマンが書くブログ。技術に関してだったり他の物だったりします。

Datanodeのエラー:Initialization failed for block pool Block pool BP-xxxxxxx

久しぶりのHadoopクラスタ構築で出てきたエラー。

DataNodeを起動しようとするとログに下記のエラーが吐かれて勝手にシャットダウンしてしまう。

FATAL org.apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed for block pool Block pool BP-<<ユニーク値>> (storage id DS-<<ユニーク値>>) service to <<ドメイン名>>/<<IPアドレス>>:<<ポート>>

エラーの内容はBlock poolを初期化できませんでしたよ、という内容。
Hadoopが生成する"current"ディレクトリ配下のVERSIONファイルがおかしいのかと思ってみてみるが、
特におかしい所は無い。

何が原因なのか悩んだあげく、結論としては/etc/hostsファイルにドメインが記載されていなかった。

vim /etc/hosts

でhostsファイルにドメインを記載してやったら解決。

DNSで名前解決は出来ている状態になっていたのだが、Hadoopはhostsでしっかり記載してやらないと予期せぬエラーが起きる事がある。以前も同じ原因で別のエラーが出た事があった。

もし、何か理不尽なエラーが出る事があったら/etc/hostsを確認してみるといいかもしれない。