2013-02-19 29 views
7

Xin chào Tôi mới sử dụng Hadoop và đó là FileSystem. Tôi đã thấy hai ví dụ khác nhau của WordCount sử dụng JobConfConfiguration. Sự khác biệt trong chúng là gì.Cấu hình JobConf v/s cho Hadoop 1.0.4

Tôi đã nghiên cứu rằng JobConf là một phần của gói cũ org.apache.hadoop.mapred (không được chấp nhận trong 0,20.x) nhưng Cấu hình là một phần của gói mới org.apache.hadoop.mapreduce. Nhưng bây giờ trong v1.0.4 nó không được chấp nhận.

Hiện tại chúng tôi có hai cách để chạy bản đồ giảm công việc trong java, một là bằng cách sử dụng (mở rộng) các lớp học trong gói org.apache.hadoop.mapreduce và khác là bằng cách triển khai các lớp học trong gói org.apache.hadoop.mapred.

Tôi muốn biết:

  1. chênh lệch giữa mapredmapreduce cấu trúc gói và tại sao mapred được un-bị phản đối là gì?

  2. Cách tiếp cận nào tốt hơn để sử dụng v1.0.4 và tại sao? JobConf hoặc Configuration?

  3. Điều nào tốt hơn cho v1.0.4? mapred hoặc mapreduce?

+0

bản sao có thể có của [Tốt hơn là sử dụng gói bản đồ hoặc gói bản đồ để tạo một công việc Hadoop?] (Http://stackoverflow.com/questions/7598422/is-it-better-to-use-the- mapred-or-the-mapreduce-package-to-create-a-hadoop-job) –

+0

Tôi đã đọc câu trả lời đó. Cách tiếp cận đó là cho v0.20 và v0.21/22. Nhưng ở đây tôi hỏi về v1.0.4. Xin đừng kết nối nó với điều đó. Và không đưa ra quyết định nào trước khi hiểu hoàn toàn. –

+0

1.0 không có gì khác với phiên bản từ 0,20 đến 0,22. Xem nó như là một phiên bản 20.x đánh bóng. Bạn nên tìm kiếm câu trả lời hiện có trước khi thêm câu hỏi mới, chưa kể đến nghiên cứu về đánh số phiên bản. –

Trả lời

6

Nếu bạn nhìn vào the releases page, bạn có thể thấy rằng 1.0.4 tương ứng với một cái gì đó xung quanh 0.20.20x

Để cung cấp cho một số bối cảnh, đây là những gì đang được thảo luận on the mailing list:

The "old" MapReduce API in org.apache.hadoop.mapred was deprecated in the 0.20 
release series when the "new" (Context Objects) MapReduce API was added in 
org.apache.hadoop.mapreduce. Unfortunately, the new API was not complete in 0.20 
and most users stayed with the old API. This has led to the confusing situation 
where the old API is generally recommended, even though it is deprecated. 

Vì vậy, như bạn có thể thấy, nó chủ yếu là vấn đề tương thích với retro.

Vì vậy, mấu chốt là, nếu bạn đang bắt đầu ứng dụng của bạn bây giờ với 1.0.4 bạn nên sử dụng mapreduce và không mapred vì nó là cách ưa thích bây giờ, nhưng bạn có thể vẫn sử dụng cũ mapred nếu bạn có Ứng dụng kế thừa. Điều này ngụ ý bạn nên sử dụng Configuration.

Đối với chênh lệch giữa mapredmapreduce, như được giải thích trong dịch chiết ở trên nó chủ yếu xuất phát từ sự ra đời của Context đối tượng, nhưng có một loạt các thay đổi khác và các lớp học mới mà không có sẵn trong cái cũ mapred.

Các vấn đề liên quan