このトピックでは、JournalNode での EditsLog エラーが原因で NameNode の起動に失敗した場合の原因と解決策について説明します。
エラーメッセージ
NameNode のログに次のエラーメッセージが記録されます。FATAL org.apache.hadoop.hdfs.server.namenode.FSEditLog: Error: recoverUnfinalizedSegments failed for required journal (JournalAndStream(mgr=QJM to [xxx:8485, xxx:8485, xxx:8485], stream=null)) java.io.IOException: Timed out waiting 120000ms for a quorum of nodes to respond.
NameNode ログの詳細については、「HDFS サービスログ」をご参照ください。
原因
HDFS の起動時に、JournalNode のデータを取得できません。これは、JournalNode でエラーが発生しているためです。
解決策
JournalNode にログオンし、JournalNode の起動状態とログを確認します。詳細については、「HDFS のデプロイメントトポロジ」および「HDFS サービスログ」をご参照ください。
JournalNode のログにエラーが報告されていない場合は、JournalNode のセキュリティグループ設定を確認し、NameNode と JournalNode 間のネットワーク接続をテストします。
JournalNode が異常な場合は、次のエラーメッセージが返されます。
org.apache.hadoop.hdfs.server.namenode.FSImage: Caught exception after scanning through 0 ops from /current/edits_inprogress_0000000000000191004 while determining its valid length. Position was 1036288 java.io.IOException: Can't scan a pre-transactional edit log.
この場合は、正常な JournalNode に切り替え、異常な JournalNode のエラーを修正します。詳細については、「ノード上の異常な JournalNode コンポーネントを修正する」をご参照ください。