我是hadoop的新手,需要一点帮助。
假设我使用shell脚本在后台运行作业,我怎么知道作业是否完成。我要问的原因是,一旦作业完成,我的脚本必须将输出文件移动到其他位置。如何使用hdfs检查作业是否存在或outfile是否存在。
由于 MRK
答案 0 :(得分:2)
您需要注意以这种方式检测作业的方式,因为在作业完成之前可能会有输出。
要回答您的直接问题,为了测试存在,我通常会hadoop fs -ls $output | wc -l
,然后确保该数字大于0.
我的建议是你使用&&
来解决问题:
hadoop ... myjob.jar ... && hadoop fs -mv $output $new_output &
这将完成作业,然后执行移动。
答案 1 :(得分:0)
您可以使用JobConf.setJobEndNotificationURI()在作业完成时收到通知。
我认为您还可以使用ps命令检查启动Hadoop作业的进程的pid。