我正在尝试使用Hadoop的StreamInputFormat处理xml文件。我为此使用了较新的API(Hadoop-0.20.205.0)。但是,似乎Job不支持StreamInputFormat,因为当我尝试通过“job.setInputFormatClass(StreamInputFormat.class)”设置属性时,它显示-
"The method setInputFormatClass(Class<? extends InputFormat>) in the type Job is not pplicable for the arguments (Class<StreamInputFormat>)"
我什至已经明确下载了“hadoop-streaming-0.20.205.0.jar”并导入了“org.apache.hadoop.streaming”包,仍然没有运气。有什么建议吗?
最佳答案
您正在尝试将旧API InputFormat(mapred)与新的API客户端Job(mapreduce)结合使用。Job.setInputFormat()
期待一个扩展o.a.h.mapreduce.InputFormat
(新的“mapreduce” API)的类,其中流式API都是用旧API(“mapred”包)编写的,而StreamInputFormat
扩展了o.a.h.mapred.KeyValueTextInputFormat
,后者又扩展了o.a.h.mapred.FileInputFormat
(两者都是旧的API):
关于xml - Hadoop Job API支持StreamInputFormat吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11101456/