Xin lưu ý rằng phương thức trên trong lớp Công việc được gọi trong trình điều khiển. Bạn trình điều khiển được gọi là một khách hàng, thường là máy tính để bàn của bạn hoặc một máy cạnh mà không phải là một phần của cụm và các lớp học của bạn (trong các tệp jar) sẽ được ngồi trên máy đó. Để mapreduce của bạn chạy trên cluster, bạn cần gửi Mapper, reducer và các lớp cần thiết khác đến cluster từ máy khách của bạn. Lớp trình điều khiển của bạn sẽ quan tâm đến việc gửi tệp jar chứa các lớp cần thiết cho cụm. Những cái bình để gửi cho bạn cần phải xác định như là trình điều khiển không biết cái nào nên được gửi đi giữa đống tệp jar bạn có trên đường dẫn lớp của trình điều khiển của bạn. Điều này được thực hiện bằng cách sử dụng phương thức setJarByClass hoặc setJar hoặc bất kỳ biến thể nào khác của phương thức tương tự trong lớp Job.
Rõ ràng nếu bạn không chỉ định điều này, có nghĩa là không gọi phương thức này hoặc nhận xét nó ra sẽ dẫn đến ngoại lệ ClassNotFound trên các nút nô lệ.
Hy vọng điều này sẽ làm rõ!
Dấu giải thích tuyệt vời. Tôi có một nghi ngờ ở đây, nếu Mapper và Reducer có mặt trong tệp jar khác nhau thì sao? – Nageswaran