2012-06-08 18 views
9

Bất cứ ai có thể giải thích cách RecordReader thực sự hoạt động? Các phương pháp nextkeyvalue(), getCurrentkey()getprogress() hoạt động sau khi chương trình bắt đầu thực hiện như thế nào?Làm việc của RecordReader trong Hadoop

Trả lời

13

(API mới): Lớp Mapper mặc định có một phương pháp chạy mà trông như thế này:

public void run(Context context) throws IOException, InterruptedException { 
    setup(context); 
    while (context.nextKeyValue()) { 
     map(context.getCurrentKey(), context.getCurrentValue(), context); 
    } 
    cleanup(context); 
} 

Các Context.nextKeyValue(), Context.getCurrentKey()Context.getCurrentValue() phương pháp hàm bao cho RecordReader phương pháp. Xem tập tin nguồn src/mapred/org/apache/hadoop/mapreduce/MapContext.java.

Vì vậy, vòng lặp này thực hiện và gọi phương thức map(K, V, Context) của Trình ánh xạ của bạn.

Cụ thể, bạn muốn biết điều gì khác?

+0

@ Chris..Thts rất hữu ích .. ... và bạn có thể giải thích về phân chia và hồ sơ được đưa vào ảnh trong trình ghi âm không? Tôi bị nhầm lẫn ... – Amnesiac

+0

Tách được tạo bởi InputFormat và được lấy từ tệp đầu vào bạn chuyển vào, cho dù tệp đầu vào có thể chia nhỏ hay không và các tùy chọn khác mà bạn vượt qua như kích thước chia nhỏ nhất/tối thiểu –

+0

Mỗi lần chia tách xử lý để sản xuất các hồ sơ được thông qua để các phương pháp bản đồ –

0

org.apache.hadoop.mapred.MapTask - runNewMapper()

Imp bước sau:

  1. tạo mapper mới

  2. được chia đầu vào cho các mapper

  3. nhận bản ghi âm cho việc chia tách

  4. khởi đọc kỷ lục

  5. sử dụng đầu đọc ghi lại lặp qua getNextKeyVal() và vượt qua trọng điểm, val phương pháp bản đồ vẽ bản đồ

  6. dọn dẹp

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