2016-08-19 5 views
2

Oozieを使用して、HDFSの場所にあるファイルが存在するかどうかを確認する方法は?oozieを使用してファイルがHDFSの場所に存在するかどうかをチェックする方法は?

私のHDFSの場所では、test_08_01_2016.csvを毎日午後11時に入手します。

このファイルが11.15 PM後に存在するかどうかをチェックします。私はOozieコーディネータージョブを使用してバッチをスケジュールすることができます。

しかし、ファイルがHDFSに存在するかどうかを確認するにはどうすればよいですか?

答えて

3

あなたは次のようにoozieにEL式を使用することができます。

<decision name="CheckFile"> 
     <switch> 
      <case to="nextOozieTask"> 
       ${fs:exists('/path/test_08_01_2016.csv')} <!--do note the path which should be in ''--> 
      </case> 
      <default to="MailActionFileMissing" /> 
     </switch> 
</decision> 

また、キャプチャ出力を使用して、簡単なシェルスクリプトを使用してファイルの名前を構築することができます。

+0

こんにちはAbhiieor、ur reply.itsが期待通りに働いてくれてありがとう:)、今日の日付の値をファイル名、つまりtest_08_22_2016に動的に取得したい。私は日付の値を取得するために仕事を調整しようとしましたが、それは動作していません。どのように私は取得し、ファイルの日付の値を追加することをお勧めします。 –

+0

http://stackoverflow.com/questions/1401482/yyyy-mm-dd-format-date-in-shell-scriptを使用して、_に変換します(例:date1)。その後、エクスポートパス= '/パス/テスト_' $ date1'.csv'' – abhiieor

+0

ありがとう、私は今日の日付のために期待どおりに動作する日付の形式を試しています。しかし、私の場合は、今日のファイルは意味がない(test_08_22_2016)、私は最後の1週間のファイルを確認する必要がありますtest_08_21_2016、test_08_20_2016 ...など)。その場合、私はこの –

関連する問題