I was running $HADOOP_HOME/bin/hadoop jar $HADOOP_HOME/hadoop-streaming.jar \
-D stream.map.output.field.separator=. \
-D stream.num.map.output.key.fields=4 \
-input myInputDirs \
-output myOutputDir \
-mapper org.apache.hadoop.mapred.lib.IdentityMapper \
-reducer org.apache.hadoop.mapred.lib.IdentityReducer
What hould be the input file when IdentityMapper is the mapper?我希望它可以对某些选定的关键字进行排序,而不是整个关键字。我的输入文件是简单的"aa bb“。"cc“不确定我错过了什么?我总是收到这样的错误: java.lang.Exception: java.io.IOException:在map的键中类型不匹配:预期的org.apache.hadoop.io.Text,在org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:371)收到org.apache.hadoop.io.LongWritable,原因: java.io.IOException:来自map的键的类型不匹配:预期的org.apache.hadoop.io.Text,收到的org.apache.hadoop.io.LongWritable
发布于 2011-09-28 10:35:24
这是一个已知的bug,这里是JIRA。该bug已经在Hadoop 0.21.0中被发现,但我不认为它在Hadoop的任何发布版本中都存在。如果你真的有兴趣解决这个问题,你可以
下载Hadoop的源代码(对于发行版,您将从JIRA working)
应用它并对其进行测试
下面是关于如何应用补丁的instructions。
或者,不使用IdentityMapper和IdentityReducder,而是使用python/perl脚本,它将从STDIN读取k/v对,然后将相同的k/v对写入STDOUT,而不进行任何处理。这就像创建自己的IdentityMapper和不使用Java的IdentityReducder一样。
发布于 2012-06-08 16:26:10
我尝试使用我自己的示例来使用Hadoop,但得到了相同的错误。我使用KeyValueTextInputFormat解决了这个问题。你可以看看下面的博客。
http://sanketraut.blogspot.in/2012/06/hadoop-example-setting-up-hadoop-on.html
希望能对你有所帮助。
和平。Sanket Raut
https://stackoverflow.com/questions/7576985
复制相似问题