2009-10-26 34 views

Trả lời

1

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.

+0

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? –

+0

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

1

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: -/

7

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.

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