KeyFieldBasedPartitioner

KeyFieldBasedPartitioner

  Exception in thread "main" java.lang.RuntimeException: class org.apache.hadoop.mapreduce.lib.partition.KeyFieldBasedPartitioner not org.apache.hadoop.mapred.Partitioner

at org.apache.hadoop.conf.Configuration.setClass(Configuration.java:2273)

at org.apache.hadoop.mapred.JobConf.setPartitionerClass(JobConf.java:1165)

at org.apache.hadoop.streaming.StreamJob.setJobConf(StreamJob.java:944)

at org.apache.hadoop.streaming.StreamJob.run(StreamJob.java:128)

at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)

at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:84)

at org.apache.hadoop.streaming.HadoopStreaming.main(HadoopStreaming.java:50)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at org.apache.hadoop.util.RunJar.run(RunJar.java:221)

at org.apache.hadoop.util.RunJar.main(RunJar.java:136)

尝试从日志中获取计数器...

无法获取历史记录日志;缺少工作ID

找不到计数器

正在扫描日志以查找可能的故障原因...

无法获取历史记录日志;缺少工作ID

无法获取任务日志;缺少应用程序ID

当我尝试使用基于keyfieldbasedpartitioner的partitioner类时遇到此错误。我的输入和输出格式是rawvalueprotocol,输出是制表符分隔的。
有没有人见过这个?请帮忙。

最佳答案

这是我使用时固定的
--partitioner", "org.apache.hadoop.mapred.lib.KeyFieldBasedPartitioner",

08-28 04:41