2017-03-22 8 views
1

Cloudera Hadoop内で指定した日数のディレクトリをクリーンアップできるようにするbashスクリプトを作成しようとしています。私はファイルを一時ディレクトリに移動してからhdfs dfs -rmを実行することを考えましたが、hdfs dfs -ls,-mv、または-rmのHadoopコマンド構文内でを使用することはできません。私はまた-moveToLocalについて考えましたが、それは選択肢ではありません。 -copyToLocalまたは-getのみ。どんな提案も大歓迎です。Cloudera Hadoopから指定した日数のディレクトリを削除します

答えて

0

シェルスクリプトでHadoopコマンドを構築しようとしましたか?そうすれば、N日後にクリーンアップしてジョブを実行するファイルを探すことができます。

find $dir -type f -name '*.log' -mtime +7 -exec sh cleanup.sh \; 
1

......は、jarは(あなたが 見つけCMDで正確なディレクトリを検索することができます利用可能なディレクトリになります

hadoop jar /opt/....../jars/search-mr-*-job.jarorg.apache.solr.hadoop.HdfsFindTool -find /hdfs/ -mtime +365 -rm rvf {} \; 
  1. (未テスト)これを試してみてください。

  2. ここで、365日を超えるファイルの場合は+365です。

  3. ここで、/hdfs/は、ファイルを削除する必要があるディレクトリです。詳細については

は、下のリンクをチェック -

https://www.cloudera.com/documentation/enterprise/latest/topics/search_hdfsfindtool.html

関連する問題