長い間、Hadoop フレームワークが時間間隔に関係なくゴミ箱の現在のディレクトリにチェックポイントを設定するのに対し、自動チェックポイントを作成した後、指定された削除間隔内でファイル/ディレクトリを完全に削除することを観察しました。これが私がテストしたものです:
vi core-site.xml
<property>
<name>fs.trash.interval</name>
<value>5</value>
</property>
hdfs dfs -put LICENSE.txt /
hdfs dfs -rm /LICENSE.txt
fs.TrashPolicyDefault: Namenode のごみ箱の構成: 削除間隔 = 5 分、空にする間隔 = 0 分。移動: 'hdfs://hacluster/LICENSE.txt' をゴミ箱: hdfs://hacluster/user/hduser/.Trash/Current
hdfs dfs -ls -R /user/hduser
/user/hduser/.Trash/Current
/user/hduser/.Trash/Current/LICENSE.txt
その後しばらくして:
/user/hduser/.Trash/160229140000
/user/hduser/.Trash/160229140000/LICENSE.txt
Hadoop が「現在の」ディレクトリをチェックポイントに設定した時点と、チェックポイント後に指定されたごみ箱間隔で削除された時点を追跡するサンプル bash スクリプトを作成しました。
ゴミ箱の間隔: 5 分
- 自動チェックポイント - 約 30 秒
- 完全削除 - 約5分
ゴミ箱の間隔: 10 分
- 自動チェックポイント - 約 90 秒
- 完全削除 - 約10分
ゴミ箱の間隔: 15 分
- 自動チェックポイント - 約 630 秒
- 完全削除 - 約15分
ゴミ箱の間隔: 20 分
- 自動チェックポイント - 約 1080 秒
- 完全削除 - 約20分
ゴミ箱の間隔 - 20 分 (消去 - 手動チェックポイント)
hdfs dfs -expunge
- 手動チェックポイント - 一度に
- 完全削除 - 約20分
Hadoop がこのチェックポイントをいつ作成するかを理解するのに役立つ人はいますか? ごみチェックポイントを作成するためにどのようなメカニズムが採用されていますか? それがリソースの可用性である場合、私のテスト環境では、このテスト中のオーバーヘッドはゼロです。