Hadoop HDFS のゴミ箱から削除されたファイルを回復する方法

HadoopHadoopBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

このチュートリアルでは、Hadoopの分散ファイルシステム(HDFS)のゴミ箱ディレクトリから削除されたファイルを回復するプロセスを案内します。重要なファイルを誤って削除した場合でも、データを復元する必要がある場合でも、この記事では失われた情報を取り戻し、Hadoopクラスタの整合性を維持するために必要な手順を提供します。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL hadoop(("Hadoop")) -.-> hadoop/HadoopHDFSGroup(["Hadoop HDFS"]) hadoop/HadoopHDFSGroup -.-> hadoop/hdfs_setup("HDFS Setup") hadoop/HadoopHDFSGroup -.-> hadoop/fs_ls("FS Shell ls") hadoop/HadoopHDFSGroup -.-> hadoop/fs_rm("FS Shell rm") hadoop/HadoopHDFSGroup -.-> hadoop/fs_expunge("FS Shell expunge") hadoop/HadoopHDFSGroup -.-> hadoop/data_replication("Data Replication") hadoop/HadoopHDFSGroup -.-> hadoop/data_block("Data Block Management") hadoop/HadoopHDFSGroup -.-> hadoop/node("DataNode and NameNode Management") hadoop/HadoopHDFSGroup -.-> hadoop/snapshot("Snapshot Management") subgraph Lab Skills hadoop/hdfs_setup -.-> lab-417686{{"Hadoop HDFS のゴミ箱から削除されたファイルを回復する方法"}} hadoop/fs_ls -.-> lab-417686{{"Hadoop HDFS のゴミ箱から削除されたファイルを回復する方法"}} hadoop/fs_rm -.-> lab-417686{{"Hadoop HDFS のゴミ箱から削除されたファイルを回復する方法"}} hadoop/fs_expunge -.-> lab-417686{{"Hadoop HDFS のゴミ箱から削除されたファイルを回復する方法"}} hadoop/data_replication -.-> lab-417686{{"Hadoop HDFS のゴミ箱から削除されたファイルを回復する方法"}} hadoop/data_block -.-> lab-417686{{"Hadoop HDFS のゴミ箱から削除されたファイルを回復する方法"}} hadoop/node -.-> lab-417686{{"Hadoop HDFS のゴミ箱から削除されたファイルを回復する方法"}} hadoop/snapshot -.-> lab-417686{{"Hadoop HDFS のゴミ箱から削除されたファイルを回復する方法"}} end

Hadoop HDFSの紹介

Hadoop分散ファイルシステム(HDFS)は、ビッグデータ処理のためにHadoopフレームワークで使用される主要なストレージシステムです。HDFSは、大規模なデータセットに対して信頼性が高く、拡張性があり、耐障害性のあるストレージを提供するように設計されています。

HDFSとは何か?

HDFSは、汎用ハードウェア上で動作する分散ファイルシステムです。アプリケーションデータへの高スループットなアクセスを提供するように設計されており、大規模なデータセットを持つアプリケーションに適しています。HDFSはマスター・スレーブアーキテクチャに従っており、単一のNameNodeがファイルシステムの名前空間を管理し、クライアントによるファイルへのアクセスを調整します。一方、複数のDataNodeがデータの保存と取得を行います。

HDFSの主要な特徴

  1. 拡張性:HDFSは数百ペタバイトのストレージと数千のクライアントノードまで拡張可能です。
  2. 耐障害性:HDFSは自動的なデータの複製と回復を提供し、ハードウェア障害が発生した場合でもデータが失われないようにします。
  3. 高スループット:HDFSはアプリケーションデータへの高スループットなアクセスに最適化されており、大規模なデータセットに適しています。
  4. 互換性:HDFSは幅広いアプリケーションやツールと互換性があり、ビッグデータ処理のための汎用的なストレージソリューションとなっています。

HDFSアーキテクチャ

HDFSアーキテクチャは、NameNodeと複数のDataNodeで構成されています。NameNodeはファイルシステムの名前空間を管理する責任があり、DataNodeはデータブロックの保存と取得を行います。

graph TD NameNode --> DataNode1 NameNode --> DataNode2 NameNode --> DataNode3 DataNode1 --> Data Blocks DataNode2 --> Data Blocks DataNode3 --> Data Blocks

HDFSコマンド

HDFSは、ファイルシステムとやり取りするための一連のコマンドラインツールを提供しています。一般的なHDFSコマンドには以下のようなものがあります。

コマンド 説明
hdfs dfs -ls ディレクトリの内容を表示する
hdfs dfs -put ローカルファイルシステムからHDFSにファイルをコピーする
hdfs dfs -get HDFSからローカルファイルシステムにファイルをコピーする
hdfs dfs -rm HDFSからファイルまたはディレクトリを削除する

HDFSにおけるゴミ箱管理

HDFSは、ユーザーが誤って削除したファイルを回復するのを助けるゴミ箱(Trash)機能を提供しています。HDFSでファイルが削除されると、まずそのファイルは完全に削除される代わりにゴミ箱ディレクトリに移動されます。

ゴミ箱機能の有効化

HDFSのゴミ箱機能はデフォルトでは無効になっています。この機能を有効にするには、core-site.xml 設定ファイルを変更し、以下のプロパティを設定する必要があります。

<property>
  <name>fs.trash.interval</name>
  <value>1440</value>
</property>
<property>
  <name>fs.trash.checkpoint.interval</name>
  <value>0</value>
</property>

fs.trash.interval プロパティは、ゴミ箱ディレクトリの内容が完全に削除されるまでの分数を指定します。fs.trash.checkpoint.interval プロパティは、ゴミ箱ディレクトリがチェックポイントされる頻度を設定します。

ファイルの削除とゴミ箱の利用

HDFSでファイルが削除されると、まずそのファイルはゴミ箱ディレクトリに移動されます。以下のコマンドを使用してファイルを削除し、ゴミ箱に移動することができます。

hdfs dfs -rm /path/to/file

削除されたファイルは、/user/<username>/.Trash/ にあるゴミ箱ディレクトリで利用可能になります。

ゴミ箱の空にする

ゴミ箱ディレクトリの内容を完全に削除するには、以下のコマンドを使用できます。

hdfs dfs -expunge

これにより、ゴミ箱ディレクトリからすべてのファイルが削除され、これらのファイルはもはや回復できなくなります。

ゴミ箱から削除されたファイルを復元する

誤って削除されたファイルを復元する必要がある場合は、以下のコマンドを使用してゴミ箱ディレクトリからファイルをコピーし戻すことができます。

hdfs dfs -mv /.Trash/Current/path/to/file /path/to/restore

これにより、ファイルはゴミ箱ディレクトリから元の場所に戻されます。

ゴミ箱から削除されたファイルを回復する

HDFSでファイルが削除されると、まずそのファイルはゴミ箱ディレクトリに移動され、そこに指定された期間保存された後で完全に削除されます。これにより、ユーザーは誤って削除したファイルを回復することができます。

ゴミ箱内の削除されたファイルを見つける

ゴミ箱ディレクトリ内の削除されたファイルを見つけるには、以下のコマンドを使用できます。

hdfs dfs -ls /.Trash/Current/

これにより、現在ゴミ箱内にあるすべてのファイルとディレクトリが一覧表示されます。

削除されたファイルを復元する

ゴミ箱ディレクトリから削除されたファイルを復元するには、以下のコマンドを使用できます。

hdfs dfs -mv /.Trash/Current/path/to/file /path/to/restore

これにより、ファイルはゴミ箱ディレクトリから元の場所に戻されます。

完全削除とゴミ箱の空にする

ゴミ箱ディレクトリの内容を完全に削除したい場合は、以下のコマンドを使用できます。

hdfs dfs -expunge

これにより、ゴミ箱ディレクトリからすべてのファイルが削除され、これらのファイルはもはや回復できなくなります。

ゴミ箱の保持期間を設定する

HDFSのゴミ箱機能は、削除されたファイルの保持期間を制御するように設定できます。core-site.xml 設定ファイルを変更し、以下のプロパティを設定することができます。

<property>
  <name>fs.trash.interval</name>
  <value>1440</value>
</property>
<property>
  <name>fs.trash.checkpoint.interval</name>
  <value>0</value>
</property>

fs.trash.interval プロパティは、ゴミ箱ディレクトリの内容が完全に削除されるまでの分数を指定します。fs.trash.checkpoint.interval プロパティは、ゴミ箱ディレクトリがチェックポイントされる頻度を設定します。

HDFSのゴミ箱機能を理解し、活用することで、誤って削除されたファイルを効果的に回復し、Hadoopクラスタ内のデータの整合性を維持することができます。

まとめ

このHadoopチュートリアルの指示に従うことで、ゴミ箱ディレクトリを効果的に管理する方法、削除されたファイルを回復するプロセスを理解し、Hadoop HDFSデータの安全性と信頼性を確保することができます。この知識を活用することで、堅牢で適切に管理されたHadoopエコシステムを維持し、データ回復のシナリオを自信を持って処理し、貴重な情報を保護することができます。