クラスター内の1つのノードのJournalNodeコンポーネントのみが異常な場合、別のノードからコンポーネントを修正できます。このトピックでは、別のノードから異常なJournalNodeコンポーネントを修正する方法について説明します。
手順
- Health状態のJournalNodeコンポーネントを見つけます。Hadoop Distributed File System(HDFS)コンポーネントのWebユーザーインターフェイス(UI)で、JournalNodeコンポーネントのステータスを表示できます。詳細については、「HDFS の Web UI」をご参照ください。
- 正常なJournalNodeコンポーネントがデプロイされているノードにログオンします。ヘッダーノードまたはマスターノードを選択することをお勧めします。次に、復元するファイルをパッケージ化します。ノードへのログオン方法の詳細については、「クラスターへのログオン」をご参照ください。
- HDFSユーザーに切り替えます。
su hdfs - 復元するファイルが保存されているディレクトリを入力します。
cd /mnt/disk1/hdfs/journal/emr-cluster/ - ファイルをパッケージ化します。
tar --exclude='edits*' -zcvf /tmp/jn-current.tar.gz current次の例は、期待される出力を示しています。current/ current/last-writer-epoch current/VERSION current/last-promised-epoch current/paxos/ current/committed-txid
- HDFSユーザーに切り替えます。
- パッケージ化された jn-current.tar.gz ファイルを、異常なJournalNodeコンポーネントがデプロイされているノードに同期します。
- emr-user ユーザーに切り替えます。
su emr-userE-MapReduce(EMR)-5.7.0以前またはEMR-3.41.0以前で emr-user ユーザーが存在しない場合は、Hadoopユーザーに切り替えることができます。su hadoop - パッケージ化されたファイルを同期します。
scp /tmp/jn-current.tar.gz $unhealthy-journal-node:/tmp/$unhealthy-journal-node パラメーターの値を、異常なJournalNodeコンポーネントがデプロイされているノードのホスト名に置き換えます。
- emr-user ユーザーに切り替えます。
- EMRコンソールで異常なHDFSノードのJournalNodeコンポーネントを停止し、異常なJournalNodeがデプロイされているノードにログオンして、JournalNodeコンポーネントを復元します。
- HDFSユーザーに切り替えます。
su hdfs - 以前の現在のディレクトリをバックアップします。
cd /mnt/disk1/hdfs/journal/emr-cluster/ mv current current.bak - JournalNodeコンポーネントを復元します。
tar -xvf /tmp/jn-current.tar.gz
- HDFSユーザーに切り替えます。
- EMRコンソールで異常なHDFSノードのJournalNodeコンポーネントを起動し、異常なノードのJournalNodeコンポーネントのログを表示します。ログの詳細については、「HDFSサービスログ」をご参照ください。
- HDFSコンポーネントのWeb UIでJournalNodeコンポーネントのステータスを表示します。JournalNodeコンポーネントにデータを書き込むことができる場合、復元は成功です。この場合、バックアップされている現在のディレクトリファイル current.bak をクリアできます。HDFSコンポーネントのWeb UIで、JournalNodeコンポーネントにデータを書き込むことができるかどうかを確認できます。詳細については、「HDFS の Web UI」をご参照ください。