Khi tôi đang chạy tệp .jar của Hadoop từ dấu nhắc lệnh, nó ném một ngoại lệ không có phương thức StockKey như vậy.Không có ngoại lệ cho phương thức như vậy Hadoop <init>
StockKey là lớp tùy chỉnh của tôi được xác định cho loại khóa của riêng tôi.
Đây là ngoại lệ:
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)
Nó ** không ** * không có phương pháp như vậy Phương pháp StockKey "*. Cắt và dán thông báo ngoại lệ ** thực ** và toàn bộ stacktrace vào câu hỏi. –
Đã chỉnh sửa tại đây. Cảm ơn. Bạn có thể nhìn vào nó không? –
Đối với người đọc tương lai như tôi được hướng dẫn ở đây, tôi cũng cảnh báo bạn về việc thực hiện WritableComparable của bạn một lớp bên trong (trong trường hợp của tôi, đó là một lớp bên trong của người lập bản đồ của tôi). Tôi có cùng ngoại lệ như trên.Khi tôi chuyển nó sang một lớp riêng của nó, nó hoạt động tốt –