我写了一份使用在本地模式下运行良好的烫伤的作业。但是当我尝试以 hdfs 模式(在同一个文件上)执行它时,它什么也没做。更准确地说,第一步没有任务(映射器或减速器),之后的步骤显然什么都不做。
我尝试 grepping 日志中的异常并将我的代码包装在 try-catch 中(在烫伤作业定义在构造函数中,我还包装了 run 方法)。
也许由于某种原因级联决定忽略输入文件?这是一个 Avro 放气文件。
更新:挖掘更多,我可以看到这一行:
2014-04-28 04:49:23,954 INFO org.apache.hadoop.mapred.JobInProgress: Input size for job job_201404280448_0001 = 0. Number of splits = 0
在作业 xml 中,mapred.input.dir 属性设置为我的文件的路径。
看起来 JobInProgress 正在从作业 xml 文件中不存在的 mapred.job.split.file 获取其信息