コマンドプロンプトから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メソッド "*。 **本物の**例外メッセージと完全なスタックトレースを切り取り、貼り付けてください。 –
ここで編集しました。ありがとう。あなたはそれを見ていただけますか? –
私のような将来の読者には、WritableComparableの実装を内部クラスにすることを警告したいと思います(私の場合は、マッパーの内部クラスでした)。上記と同じ例外があります。私はそれを自分自身のクラスに移したとき、それはうまくいった –