當我從命令提示符運行Hadoop .jar文件時,它會拋出一個異常說沒有這樣的方法StockKey方法。沒有這樣的方法異常Hadoop <init>
StockKey是我爲自己類型的鍵定義的自定義類。
這裏是個例外:
12/07/12 00:18:47 INFO mapred.JobClient: Task Id :
attempt_201207082224_0007_m_000000_1, Status : FAILED
java.lang.RuntimeException: java.lang.NoSuchMethodException: SecondarySort$StockKey.
<init>()
at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:115)
at org.apache.hadoop.io.WritableComparator.newKey(WritableComparator.java:109)
at org.apache.hadoop.io.WritableComparator.<init>(WritableComparator.java:95)
at org.apache.hadoop.io.WritableComparator.get(WritableComparator.java:51)
at org.apache.hadoop.mapred.JobConf.getOutputKeyComparator(JobConf.java:795)
at org.apache.hadoop.mapred.MapTask$MapOutputBuffer.<init>(MapTask.java:817)
at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:383)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:325)
at org.apache.hadoop.mapred.Child$4.run(Child.java:270)
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:1127)
at org.apache.hadoop.mapred.Child.main(Child.java:264)
它**不**說*「沒有這樣的方法StockKey方法」*。剪切並粘貼** real **異常消息和完整的堆棧跟蹤到問題中。 – 2012-07-12 07:30:05
在此處編輯。謝謝。你可以看看嗎? – 2012-07-12 07:32:09
對於像我這樣的未來讀者來說,我也會提醒你將WritableComparable實現變成一個內部類(在我的例子中,它是我的映射器的內部類)。我得到了和上面一樣的例外。當我將它移動到它自己的類時,它運行良好 – 2015-04-23 01:04:50