2013-02-22 31 views
6

Tôi có một số dữ liệu đầu vào đến bộ giảm tốc với Iterator loại giá trị. Làm cách nào để sắp xếp danh sách các giá trị này thành thứ tự tăng dần?Sắp xếp giá trị bộ lặp đầu vào giảm tốc trước khi xử lý trong Hadoop

Tôi cần sắp xếp chúng theo thứ tự vì chúng là giá trị thời gian, trước khi xử lý tất cả trong bộ giảm tốc.

+0

Không chắc tôi hoàn toàn hiểu được động lực của bạn vì muốn sắp xếp trước khi giảm. – mohit6up

Trả lời

4

Để đạt sắp xếp các giá trị đầu vào giảm sử dụng các tính năng built-in hadoop, bạn có thể làm điều này:

1.Modify trọng lượng bản đồ - Nối bản đồ chủ chốt đầu ra với value.Emit tương ứng chính tổng hợp này và giá trị từ map.Since hadoop sử dụng toàn bộ khóa theo mặc định để sắp xếp, bản ghi đầu ra bản đồ sẽ được sắp xếp theo (khóa + giá trị cũ của bạn).

2. Mặc dù sắp xếp được thực hiện ở bước 1, bạn đã thao tác khóa đầu ra bản đồ trong tiến trình.Hadoop phân vùng và nhóm dựa trên khóa theo mặc định.

3.Sau khi bạn đã sửa đổi khóa gốc, bạn cần phải quan tâm đến việc sửa đổi Partitioner và GroupingComparator để làm việc dựa trên khóa cũ tức là chỉ phần đầu của khóa tổng hợp của bạn. Partitioner - quyết định cặp khóa-giá trị nào nằm trong cùng một thể hiện Reducer
GroupComparator - quyết định cặp khóa-giá trị nào trong số những cặp được chuyển vào Reducer đi cùng một lệnh gọi phương thức reduce.

4. Cuối cùng (và rõ ràng) bạn cần trích xuất phần đầu tiên của khóa đầu vào trong bộ giảm tốc để lấy khóa cũ.

Nếu bạn cần thêm (và tốt hơn) câu trả lời, chuyển sang Hadoop Definitive Guide 3rd Edition -> chương 8 -> sắp xếp -> loại thứ

+0

Chính xác, David Gruzman đã tham chiếu một ví dụ điển hình về http://pkghosh.wordpress.com/2011/04/13/map-reduce-secondary-sort-does-it-all/ –

6

gì bạn yêu cầu được gọi là Secondary Sắp xếp. Tóm lại - bạn mở rộng khóa để thêm "khóa phân loại giá trị" vào nó và biến hadoop thành nhóm chỉ bằng "khóa thực" nhưng sắp xếp theo cả hai.
Dưới đây là một lời giải thích rất tốt về loại thứ:
http://pkghosh.wordpress.com/2011/04/13/map-reduce-secondary-sort-does-it-all/

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