2016-08-19 9 views
2

Как проверить, существует ли файл в местоположении HDFS или нет, используя Oozie?Как проверить, существует ли файл в местоположении HDFS, используя oozie?

В моем местоположении HDFS я получаю файл, подобный этому test_08_01_2016.csv в 11 вечера, ежедневно.

Я хочу проверить, существует ли этот файл после 11:15 вечера. Я могу запланировать партию, используя задание координатора Oozie.

Но как я могу проверить, существует ли файл в HDFS?

ответ

3

вы можете использовать выражение EL в oozie как:

<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 answer.its работает как ожидалось :), я хочу, чтобы динамическое значение сегодняшнего дня было присвоено имени файла i.e test_08_22_2016. Я попытался выполнить координационную работу, чтобы получить значение даты, но оно не работает. Скажите, пожалуйста, как я могу получить и добавить значение даты в файл. –

+0

Используйте http://stackoverflow.com/questions/1401482/yyyy-mm-dd-format-date-in-shell-script, convert-to _ (say date1), а затем 'export path = '/ path/test_' $ date1'.csv'' – abhiieor

+0

спасибо, я пробовал формат даты, он будет работать так, как ожидалось, для сегодняшней даты. Но в моем случае, если текущий файл отсутствует, значит, (test_08_22_2016), я должен проверить последние недельные файлы (test_08_21_2016, test_08_20_2016 ... и т.д.). в этом случае, как я могу использовать это –