OSS-HDFSのゴミ箱機能を使用する場合は、クライアントを使用して削除するファイルを特定のディレクトリに移動する必要があります。 サーバは、ディレクトリ内のファイルを定期的に削除する。
ゴミ箱機能の仕組み
OSS-HDFSからファイルを強制的に削除しても、ファイルはすぐには削除されません。 ファイルは
/user/<username>/.Trash/Current
ディレクトリに移動されます。30分後、
/user/<username>/.Trash/Current
ディレクトリ内のファイルが/user/<username>/.Trash/<timestamp>
ディレクトリに転送されます。説明<timestamp> パラメーターの値は、UNIX時間形式に従ったタイムスタンプである必要があります。 1970年1月1日木曜日00:00:00から経過した秒数です。 <timestamp> パラメーターは、特定の期間内に削除されたファイルを、タイムスタンプを持つディレクトリに分類することを指定します。
特定の日数が経過すると、
/user/<username>/.Trash/<timestamp>
ディレクトリは完全に削除されます。デフォルトでは、データは3日間ゴミ箱に保持されます。 1 ~ 14日のカスタム保存期間を指定できます。 たとえば、データをごみ箱に5日間保持するように指定できます。 ファイルを削除してから5日以内の任意の時点で、対応するタイムスタンプディレクトリから削除されたファイルを復元できます。 次の手順を実行して、データがゴミ箱に保持される日数を指定できます。
OSSコンソールにログインします。
左側のナビゲーションウィンドウで、バケットをクリックします。 [バケット] ページで、目的のバケットの名前をクリックします。
左側のナビゲーションツリーで、を選択します。
OSS-HDFSタブで、ごみ箱セクションで
をクリックし、削除されたデータの保存期間を変更します。
[OK] をクリックします。
ゴミ箱機能は、クライアントとサーバー間の連携に依存します。 クライアントは、削除したファイルを. ゴミ箱
ディレクトリに移動します。 デフォルトでは、サーバーは定期的に /user/<username>/.Trash
ディレクトリからファイルを削除します。
Hadoop FileSystemシェルでゴミ箱機能を使用する
Hadoop FileSystem Shellでは、デフォルトでクライアントのゴミ箱機能が有効になっています。
ゴミ箱機能はOSS-HDFSでのみ使用できます。
次のコマンドを実行して、ファイルをごみ箱ディレクトリに移動します。 次に、サーバーはディレクトリ内のファイルを定期的にクリアします。
hadoop fs -rm oss://examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/a/b/c
上記のコマンドを実行すると、クライアントは自動的にコマンドをmoveコマンド
hadoop fs -mv oss:// examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/a/b/c /user/<username>/.Trash/Current/a/b/c
に変換します。 この方法では、ゴミ箱機能を管理する必要はありません。 サーバーは定期的に /user/<username>/.Trashディレクトリのファイルをクリアします。次のいずれかの方法を使用して、ファイルを完全に削除し、ストレージスペースを解放します。 この場合、ファイルはゴミ箱ディレクトリに移動するのではなく、直接削除されます。
方法1: 次のコマンドを実行してファイルを強制的に削除する
hadoop fs -rm -f oss://examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/a/b/c
方法2: 次のコマンドに-skipTrashパラメーターを追加する
hadoop fs -rm -skipTrash oss://examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/a/b/c
Hadoopエコシステムサービスでゴミ箱機能を使用する
Hive、Spark、Flinkなどのサービスは、OSS-HDFSのゴミ箱機能を認識していません。 HDFSのdeleteインターフェイスを呼び出してファイルを削除すると、ファイルはすぐに削除されます。
OSS-HDFSは、オープンソースのHadoopと同様のポリシーを採用しています。 Hadoopエコシステムサービスでゴミ箱機能を使用するには、HDFSの名前変更インターフェイスを明示的に呼び出して、削除するファイルを /user/<username>/. trash /Current
ディレクトリに移動する必要があります。 その後、OSS-HDFSサーバは、定期的にファイルをごみ箱ディレクトリから消去する。