2009-07-27 7 views
13

Có thể viết bản đồ/giảm việc làm cho Amazon Elastic MapReduce (http://aws.amazon.com/elasticmapreduce/) bằng ngôn ngữ .NET không? Đặc biệt tôi muốn sử dụng C#.Có thể viết bản đồ/giảm việc làm cho Amazon Elastic MapReduce bằng .NET không?

Nghiên cứu sơ bộ cho thấy không. Văn bản tiếp thị của URL trên cho thấy bạn có một "sự lựa chọn của Java, Ruby, Perl, Python, PHP, R, hoặc C++", mà không đề cập đến các ngôn ngữ .NET. Chủ đề Amazon này (http://developer.amazonwebservices.com/connect/thread.jspa?messageID=136051 - "Hỗ trợ cho C#/F # bản đồ/bộ giảm tốc") rõ ràng nói rằng "hiện tại Amazon Elastic MapReduce không hỗ trợ nền tảng Mono hoặc các ngôn ngữ như C# hoặc F #."

Ở trên cho thấy không thể thực hiện được. Tôi tự hỏi nếu có bất kỳ cách giải quyết, mặc dù. Ví dụ: tôi có thể sửa đổi hình ảnh máy Elastic MapReduce cho tài khoản của mình và cài đặt Mono trên đó không?

Một giải pháp thay thế, được đề xuất bởi Câu hỏi thường gặp về Amazon "Sử dụng phần mềm khác theo yêu cầu của bạn" (http://docs.amazonwebservices.com/ElasticMapReduce/latest/DeveloperGuide/index.html?CHAP_AdvancedTopics.html) và "Cách sử dụng các tệp và thư viện bổ sung với bản đồ hoặc giảm tốc" (http://docs.amazonwebservices.com/ElasticMapReduce/latest/DeveloperGuide/index.html?addl_files.html), là thực hiện bước đầu tiên của Bản đồ/Giảm công việc là cài đặt Mono trên phiên bản cục bộ. Nghe có vẻ không hiệu quả, nhưng có lẽ nó có thể hoạt động?

Có thể một giải pháp thay thế saner sẽ là cố gắng từ bỏ sự tiện lợi của Elastic MapReduce và tự thiết lập cụm Hadoop của riêng tôi trên EC2. Sau đó, tôi cho rằng tôi có thể cài đặt Mono mà không gặp khó khăn gì.

Trả lời

0

Bạn sẽ có thể sử dụng VB.NET library từ bất kỳ ngôn ngữ .NET nào, bao gồm C#.

+1

Ngoài ra còn có một phiên bản C# quá (http://developer.amazonwebservices.com/connect/entry.jspa? externalID = 2307). Tuy nhiên, không ai trong số này nhìn vào tôi như họ cho phép bạn viết NET mappers/reducers; thay vào đó, mục đích (được chia sẻ) của họ dường như cung cấp một giải pháp thay thế API để sử dụng bảng điều khiển Elastic MapReduce dựa trên web của Amazon, mục đích chính của nó là bắt đầu/dừng/cấu hình các công việc MapReduce của bạn. Tôi không nghĩ rằng sẽ giúp bạn thực sự thực hiện một mapper hoặc giảm trong VB/C#, mặc dù có lẽ tôi đang thiếu một cái gì đó. – Chris

5

Có thể có thể có xung quanh việc sử dụng Hadoop và biên dịch mã C# của bạn bằng trình biên dịch phía trước thành mã gốc (kiểm tra: http://www.mono-project.com/AOT). Các nhị phân có thể được chạy từ S3 như một chương trình C + + có thể, tôi đoán.

Câu trả lời của Reed Copsey là không chính xác. Thư viện VB.NET dành cho việc tạo các công việc, bắt đầu từ việc & ngăn chặn chúng, nhưng không phải về mã thực sự đang chạy trong các công việc Hadoop.

2

đàn hồi MapReduce bây giờ có một "bootstrap hành động" tính năng, mà Amazon đang giải thích như sau:

Một hành động bootstrap là một cơ chế cho phép bạn chạy một kịch bản về trường hợp đàn hồi MapReduce trước Hadoop khởi đầu . Kịch bản hành động Bootstrap được lưu trữ trong Amazon S3 và được chuyển tới Amazon Bản đồ đàn hồiBắt đầu khi tạo luồng công việc mới. Kịch bản hành động Bootstrap được tải xuống từ Amazon S3 và được thực hiện trên mỗi cá thể trước khi luồng công việc được thực thi.

Tập lệnh hành động khởi động có thể được viết bằng bất kỳ ngôn ngữ nào đã được cài đặt trên luồng công việc phiên bản, bao gồm Ruby, Python, Perl và bash.

(Xem http://docs.amazonwebservices.com/ElasticMapReduce/latest/DeveloperGuide/index.html?introduction.html)

Một gợi ý sử dụng của việc này là để cài đặt phần mềm trên máy cluster của bạn. Bạn có khả năng có thể sử dụng nó để cài đặt một môi trường runtime .NET (có thể là Mono chứ không phải của Microsoft, bởi vì vì tôi tưởng tượng tất cả các máy Elastic MapReduce đang chạy Linux) trên các máy cluster của bạn. Sau khi thực hiện xong, bạn có thể gọi ra các trình ánh xạ/bộ giảm tốc .NET của bạn bằng cách sử dụng luồng Hadoop, mà Elastic MapReduce dường như hỗ trợ.