我使用在本地模式下运行良好的烫伤编写了一份工作。但是当我尝试在hdfs模式下执行它(在同一个文件上)时,它没有做任何事情。更确切地说,第一步没有任务(映射器或减速器),之后的步骤显然什么都不做。
我尝试使用日志来查看异常,并将我的代码包装在try-catch中(在scalding中,作业定义在构造函数中,我也包装了run方法)。
也许由于某种原因,级联决定忽略输入文件?这是一个Avro deflate文件。
更新: 挖掘更多,我可以看到这一行:
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从mapred.job.split.file获取其在作业xml文件中不存在的信息
答案 0 :(得分:2)
事实证明我的avro文件名为sample.avro.deflate。 Avro,1.7.4,默默地忽略任何不以#。; .avro'结尾的输入文件。在1.7.6中,他们添加了属性avro.mapred.ignore.inputs.without.extension