登録する。 Hadoop 名前ノードの形式

登録する。 Hadoop 名前ノードの形式

CentOS 9とHadoop 3.1.1を使用して、パーソナルコンピュータにHadoop擬似クラスタを構築しています。私はhadoopのインストールを終えて少し遊んでいましたが、すべてが大丈夫です。後でjpsを実行したときにnamenodeデーモンは実行されませんでした。そのため、Googleで検索したガイドに従って、namenodeとdatanodeディレクトリを削除して再作成し、「hadoop namenode -format」を実行してから、namenode(およびdatanode)デーモンが実行されました。ただし、ネームノードをフォーマットする前にデータをインポートするために使用される「hdfs dfs -ls」を使用して、hdfsに保存されているデータをインポートすることはできません。

私が知っている限り、namenodeをフォーマットすると、namenode VERSIONファイルに新しい名前空間IDとクラスタIDが生成されるため、hdfsから古いデータを取得できません。

そして、データ復旧方法も知りたいです。

以下を試しましたが、動作しません。

  1. データノードがハートビートを送信してネームノードに報告するので、ネームノードがメタデータを構築すると仮定し、データノードVERSIONファイルのClusterID値をネームノードVERSIONファイルに置き換えます。しかし、これは役に立ちません。

データ復旧に関する提案はありますか?

答え1

データを回復できない可能性があります。

あなたが言ったように:

namenodeディレクトリとdatanodeディレクトリを削除して再作成した後、「hadoop namenode -format」を実行しました。

基本的には:

  • ネームノードディレクトリからメタデータ(データが保存されている場所に関する情報)を消去する
  • データノードディレクトリに保存されている実際のデータを消去します。
  • 新しい名前空間IDを作成しました。

関連コンテンツをもっと見るhttps://stackoverflow.com/questions/27143409/what-the-command-hadoop-namenode-format-will-do

関連情報