Po uruchomieniu pliku .jar Hadoop z wiersza polecenia, generuje wyjątek mówiąc, że nie ma metody StockKey.Brak takiego wyjątku dla metody Hadoop <init>
StockKey to moja niestandardowa klasa zdefiniowana dla mojego własnego typu klucza.
Oto wyjątek:
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)
It ** does not ** say * "brak takiej metody Metoda StockKey" *. Wytnij i wklej wiadomość ** real ** exception i pełną historię stosu do pytania. –
Edytowane tutaj. Dzięki. Czy możesz na to spojrzeć? –
Dla przyszłego czytelnika, takiego jak ja, który zostanie tutaj skierowany, ostrzegłbym cię, aby twoja wersja WritableComparable była wewnętrzną klasą (w moim przypadku była to wewnętrzna klasa mojego programu odwzorowującego). Mam te same wyjątki jak powyżej.Kiedy przeniosłem go do klasy własnej, działało dobrze –