Hadoopの各プロセス(ノード)が勝手に死ぬ


メモリ不足でした。ちくしょう。

経緯

Hadoop仕事で使いそうな予感!Hadoopもやろう!早速インストールだ!

という訳でClouderaのCDH4.6をインストールしてHadoopの環境を整える事にしました。

色々進めて、疑似分散環境(単一のハードで動かすだけの環境)を整えて、サービスを起動するところまで来ました。sudo serviceで色々サービスを起動する訳ですが、sudo jpsで起動したサービスを確認すると・・・・

sudo jps

29847 NameNode
30420 -- process information unavailable
30995 JobHistoryServer
30244 SecondaryNameNode
31100 Jps
30038 DataNode

unavailableって何だよ・・と。しかもサービスは6個起動したはずなのに(jpsを除いて)4個しかない・・・。

色々悩んだ末、ターミナルが妙に重くなったりfreeしてみると余裕がないことからメモリ不足だと結論しました。

初めVagrantで環境作って、Vagrant(VirtualBox)が悪いのか?と思い、GCEのmicroインスタンスに乗り換えましたが全く同じ結果でした。両方メモリ少ないので当然ですね。

Vagrantのメモリを1Gに増やしてあげたところ、無事全プロセスが起動した状態を保てました(消費メモリ800MB)

という訳でメモリ不足が原因でした。AWS EC2やGCEでHadoopを試される人はご注意ください。