Phân vùng là quá trình xác định thể hiện giảm tốc nào sẽ nhận được khóa và giá trị trung gian nào. Mỗi người lập bản đồ phải xác định tất cả các cặp đầu ra (khóa, giá trị) của nó mà bộ giảm tốc sẽ nhận chúng. Điều cần thiết là đối với bất kỳ khóa nào, bất kể trường hợp bản đồ nào tạo ra nó, phân vùng đích là giống nhau Vấn đề: Hadoop làm như thế nào? Sử dụng hàm băm? chức năng mặc định là gì?Phân vùng! làm thế nào để hadoop làm cho nó? Sử dụng hàm băm? chức năng mặc định là gì?
6
A
Trả lời
16
Trình phân vùng mặc định trong Hadoop là HashPartitioner
có phương thức được gọi là getPartition
. Phải mất key.hashCode() & Integer.MAX_VALUE
và tìm mô đun bằng cách sử dụng số lượng tác vụ giảm.
Ví dụ: nếu có 10 tác vụ giảm, getPartition
sẽ trả về giá trị 0 đến 9 cho tất cả các khóa.
Đây là mã:
public class HashPartitioner<K, V> extends Partitioner<K, V> {
public int getPartition(K key, V value, int numReduceTasks) {
return (key.hashCode() & Integer.MAX_VALUE) % numReduceTasks;
}
}
Để tạo một phân vùng tùy chỉnh, bạn sẽ mở rộng Partitioner
, tạo ra một phương pháp getPartition
, sau đó thiết lập phân vùng của bạn trong mã trình điều khiển (job.setPartitionerClass(CustomPartitioner.class);
). Điều này đặc biệt hữu ích nếu thực hiện các phép toán sắp xếp thứ cấp, ví dụ.
Các vấn đề liên quan
- 1. Chức năng băm tốt là gì?
- 2. NSObject isEqual: và hàm băm mặc định là gì?
- 3. Làm cách nào để sử dụng lớp OpenFileDialog sao cho nó mở trên vùng Mạng làm mặc định?
- 4. Chức năng băm tốt cho từ tiếng Anh là gì?
- 5. Chức năng remquo làm gì và nó có thể được sử dụng để làm gì?
- 6. Làm thế nào để bạn sử dụng hàm tạo không mặc định cho một thành viên?
- 7. TypeScript Xác định bảng băm chức năng
- 8. Băm băm - nó là gì?
- 9. Tính năng băm (băm nhỏ) là gì?
- 10. Làm thế nào để băm * args ** kwargs cho bộ nhớ cache chức năng?
- 11. Làm thế nào để sử dụng Intellij IDEA với đầy đủ chức năng của nó?
- 12. Làm thế nào để sử dụng ValueResolver nếu loại trường không có hàm tạo mặc định?
- 13. Làm thế nào để xác định một chức năng variadic
- 14. chức năng tính toán một số băm, chính xác nó làm gì và tại sao?
- 15. Làm thế nào để phân vùng một gói tham số?
- 16. Làm thế nào để làm cho highcharts mặc định là 0 cho dữ liệu bị thiếu
- 17. Phân vùng MYSQL là gì?
- 18. Làm thế nào để làm cho virtualenv sử dụng phiên bản phân phối cuối cùng theo mặc định?
- 19. Giá trị mặc định cho tham số chức năng?
- 20. Làm thế nào để làm cho một C# 'grep' hơn Chức năng sử dụng LINQ?
- 21. Hàm băm cho lớp do người dùng xác định. Làm thế nào để kết bạn? :)
- 22. Làm thế nào để sử dụng (tương tác "r") chức năng trong tình huống này?
- 23. Hàm băm SHA1 trong SQLite: làm thế nào?
- 24. Làm thế nào để sử dụng biến thành viên làm đối số mặc định trong C++?
- 25. Làm thế nào để mã hóa dữ liệu bằng RSA, với SHA-256 là hàm băm và MGF1 làm chức năng tạo mặt nạ?
- 26. Một vùng tên là gì và nó được thực hiện như thế nào trong PHP?
- 27. Tạo vùng chứa 'điều' trong C++ để giữ các chức năng tĩnh. 'Điều' nên là gì?
- 28. Thực hiện kiểm tra.QuickCheck.Batch sử dụng loại mặc định cho chức năng danh sách kiểm tra
- 29. Mặc định __hash__ trong python là gì?
- 30. Chức năng gọi lại là gì và cách sử dụng chức năng này với OOP
tải xuống! cảm ơn bạn! –
@tommy_o Phương thức getPartition (..) được gọi là gì? Cái gì gọi phương thức này? nơi để gọi phương pháp này? –
@BurakKarasoy khi bạn tạo đối tượng Công việc để định cấu hình các thuộc tính công việc của MR, nó sẽ cung cấp cho bạn một phương thức để khai báo CustomPartitioner nếu có theo quy định của tác giả ở trên. Trình phân hoạch tùy chỉnh này được gọi nội bộ vào khung MR sau khi tác vụ Bản đồ đã hoàn thành và dữ liệu đang bị tràn vào đĩa –