Как проверить, существует ли файл или нет с помощью команд оболочки hdfs - PullRequest
2 голосов
/ 21 сентября 2011

я новичок в hadoop, и требуется небольшая помощь.

Предположим, если я выполнил задание в фоновом режиме, используя сценарии оболочки, как я узнаю, выполнено ли задание или нет. Причина, по которой я спрашиваю, заключается в том, что после завершения работы мой сценарий должен переместить выходной файл в другое место. Как я могу проверить, существует ли задание выполненное или файл outfile или не использует hdfs.

Спасибо MRK

Ответы [ 2 ]

2 голосов
/ 21 сентября 2011

Вы должны быть осторожны в том, как вы обнаруживаете, что работа выполнена таким образом, потому что может быть вывод до того, как ваша работа будет полностью завершена.

Чтобы ответить на ваш прямой вопрос, проверить на существованиеОбычно я делаю hadoop fs -ls $output | wc -l, а затем проверяю, что число больше 0.

Я предлагаю вам использовать && для движения:

hadoop ... myjob.jar ... && hadoop fs -mv $output $new_output &

Это завершитзадание, а затем выполните ход.

0 голосов
/ 21 сентября 2011

Вы можете использовать JobConf.setJobEndNotificationURI () , чтобы получать уведомления о завершении работы.

Я думаю, вы также можете проверить pid процесса, который запустил задание Hadoop, с помощью команды ps.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...