5
我正在爲我的集羣設置使用「hadoop-0.20.203.0rc1.tar.gz」。 每當我設置job.setMapOutputKeyClass(ByteBuffer.class);
Hadoop針對java.nio.ByteBuffer的鍵類型拋出ClassCastException
和運行工作,我得到以下異常:
12/01/13 15:09:00 INFO mapred.JobClient: Task Id : attempt_201201131428_0005_m_000001_2, Status : FAILED
java.lang.ClassCastException: class java.nio.ByteBuffer
at java.lang.Class.asSubclass(Class.java:3018)
at org.apache.hadoop.mapred.JobConf.getOutputKeyComparator(JobConf.java:776)
at org.apache.hadoop.mapred.MapTask$MapOutputBuffer.<init>(MapTask.java:958)
at org.apache.hadoop.mapred.MapTask$NewOutputCollector.<init>(MapTask.java:673)
at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:755)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:369)
at org.apache.hadoop.mapred.Child$4.run(Child.java:259)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:396)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1059)
at org.apache.hadoop.mapred.Child.main(Child.java:253)
而且我注意到,ByteBuffer的可比和不可寫的是,做任何diffrence? 讓我知道是否需要任何其他信息。
如果您可以詳細說明如何爲ByteBuffer設置此參數將會很有幫助.... – samarth 2012-01-14 15:02:22
@samarth您可以將org.apache.hadoop.io.BytesWritable中的字節數組 – 2015-12-28 11:03:10