Chỉ sử dụng trình ánh xạ (tập lệnh Python) và không có trình giảm tốc, làm cách nào để xuất tệp riêng biệt với khóa làm tên tệp, cho mỗi dòng đầu ra, thay vì có tệp đầu ra dài ?Tạo các tệp đầu ra riêng biệt trong Hadoop Streaming
Trả lời
Bạn có thể ghi vào tệp văn bản trên hệ thống tệp cục bộ bằng chức năng tệp python hoặc nếu bạn muốn sử dụng HDFS, hãy sử dụng Thrift API.
Có thể thay thế outputFormatClass khi sử dụng phát trực tuyến không? Trong bản thực thi Java bản địa, bạn sẽ mở rộng lớp MultipleTextOutputFormat và sửa đổi phương thức đặt tên tệp đầu ra. Sau đó, xác định triển khai của bạn dưới dạng outputformat mới với phương thức setOutputFormat của JobConf là
bạn nên xác minh, nếu điều này có thể trong quá trình phát trực tuyến. Tôi donno: -/
Các lớp đầu vào và outputformat có thể được thay thế bằng cách sử dụng các tham số dòng lệnh -inputformat và -outputformat.
Một ví dụ về cách thực hiện điều này có thể được tìm thấy trong dumbo project, là một khung công tác python để viết các công việc truyền trực tuyến. Nó có một tính năng để ghi vào nhiều tệp, và nội bộ nó thay thế định dạng đầu ra bằng một lớp từ dự án chị em của nó, feathers - fm.last.feathers.output.MultipleTextFiles.
Bộ giảm tốc sau đó cần phát ra một bộ túp làm khóa, với thành phần đầu tiên của bộ là đường dẫn đến thư mục nơi các tệp có cặp khóa/giá trị phải được viết. Có thể vẫn có nhiều tệp, phụ thuộc vào số lượng bộ giảm và ứng dụng.
Tôi khuyên bạn nên xem xét dumbo, nó có nhiều tính năng giúp dễ dàng viết các chương trình Map/Reduce trên Hadoop trong python.
- 1. Hadoop MapReduce - một tệp đầu ra cho mỗi đầu vào
- 2. Chaining nhiều nhiệm vụ mapreduce trong Hadoop streaming
- 3. xsd.exe để tạo lớp học dưới dạng tệp riêng biệt?
- 4. cách đặt tên tùy chỉnh cho các tệp đầu ra hadoop
- 5. Lệnh Hadoop Streaming Thất bại (Không thành công) bằng Python
- 6. Functors trong các tệp riêng biệt trong OCaml?
- 7. Tạo ServerSocket trong một chuỗi riêng biệt?
- 8. Cách tạo tệp PATCH cho tệp đầu ra khác biệt nhị phân
- 9. chức năng gọi từ các tệp riêng biệt với Meteor
- 10. Hadoop khác biệt Distribution
- 11. GZip mỗi tệp riêng biệt
- 12. Tại sao các tệp thẻ riêng biệt trong Mercurial
- 13. Đầu ra hồ sơ Hadoop - ở đâu và cái gì?
- 14. Python Streaming: làm thế nào để giảm đến nhiều đầu ra? (Có thể với Java mặc dù)
- 15. Backbone.js các mẫu riêng biệt từ tệp html
- 16. Nhận tên tệp đầu vào trong chương trình hadoop tuyến
- 17. Bắt đầu một quá trình riêng biệt
- 18. msbuild SLN và vẫn nhận được kết quả đầu ra dự án riêng biệt?
- 19. Có LoadLibrary tạo các cá thể riêng biệt không?
- 20. Chia dữ liệu bị cắt thành đầu ra và đầu vào mới trong Hadoop
- 21. Mục đích-C thực hiện một phần các lớp trong các tệp riêng biệt
- 22. Hadoop MapReduce: Kích thước tệp đầu vào phù hợp?
- 23. Tệp thuộc tính dot các tên khóa riêng biệt
- 24. Đầu ra với nội dung "Riêng tư" trong Gói Mathematica
- 25. Chụp các lỗi Rscript trong một tệp đầu ra
- 26. Cú pháp dao cạo trong tệp js riêng biệt
- 27. Tạo các lớp học trong cùng một gói vào các lọ riêng biệt
- 28. Hadoop dfs -ls trả về danh sách các tệp trong hadoop/dir của tôi
- 29. Cách tạo tệp CSV riêng từ VBA?
- 30. Hadoop trong đổi tên tệp
Làm thế nào để nhiều người lập bản đồ viết cùng một tệp vào cùng một thời gian được xử lý, khi ghi vào hệ thống tệp cục bộ hoặc tới HDF? –
Làm điều này là xấu. Nó xung đột với các nhiệm vụ thử lại và đảm bảo bạn cần giữ lại công việc của bạn. – nkadwa