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を試される人はご注意ください。