Amazon EC2へのHadoopのインストールに超ハマる
何度も何度もCDHはインストール・構築しているので,まさか途中でハマるとは思いませんでした.
ネームノードがまっ更な状態でジャーナルノードを上げて,
/usr/local/hadoop/sbin/hadoop-daemon.sh start journalnode
ネームノードをフォーマットすると,どうしてもエラーがでます.
/usr/local/hadoop/bin/hadoop namenode -format 14/04/09 17:01:08 INFO ipc.Client: Retrying connect to server: server02.example.com/172.31.3.102:8485. Already tried 1 time(s); maxRetries=45 14/04/09 17:01:08 INFO ipc.Client: Retrying connect to server: server03.example.com/172.31.3.103:8485. Already tried 1 time(s); maxRetries=45 14/04/09 17:01:09 WARN client.QuorumJournalManager: Waited 43027 ms (timeout=60000 ms) for a response for hasSomeData. Succeeded so far: [172.31.14.173:8485] 14/04/09 17:01:10 WARN client.QuorumJournalManager: Waited 44028 ms (timeout=60000 ms) for a response for hasSomeData. Succeeded so far: [172.31.14.173:8485]
WARNですが,このまま最大リトライまでいって落ちます.
ヒントはAmazonのオンラインドキュメントでした.
http://aws.amazon.com/jp/vpc/faqs/
Q: 私のサブネットに接続するルーターまたはデフォルトのゲートウェイに ping を実行できないのはなぜですか?
VPC 内のルーターへの Ping(ICMP エコー要求とエコー応答)リクエストはサポートされていません。VPC 内 の Amazon EC2 インスタンス間の Ping は、オペレーティングシステムのファイアウォール、VPC セキュリティグループ、およびネットワーク ACL がこのようなトラフィックを許可する場合に限りサポートされます。
そういえばもっと早く気づいても良かったのですが,VPC内に6台のプライベートアドレスを持つ仮想マシンを作ったのですが,互いにpingが通りません.
にも関わらす,sshは通ります.それでも,ジャーナルノードの通信で使う8485は,telnet server02 8485とやっても通りません.
なぜsshだけ通るかに早く気づくべきでした.
細かい設定をする時間が無くなっているので,OSのファイアーウォールすなわちiptablesはオフにしました.
/etc/init.d/iptables stop
それから,AWSのコンソールからセキュリティグループをプライベートアドレス内だけ全開にしました.
これでOKでした...