Возможно ли написать работу по созданию карт/сокращений для Amazon Elastic MapReduce с помощью .NET?

Можно ли написать задания для создания карт/сокращений для Amazon Elastic MapReduce (http://aws.amazon.com/elasticmapreduce/) с использованием языков .NET? В частности, я хотел бы использовать С#.

Предварительные исследования не предполагают. Вышеупомянутый URL-адрес маркетинга предполагает, что у вас есть "выбор Java, Ruby, Perl, Python, PHP, R или С++", без упоминания языков .NET. Этот поток Amazon (http://developer.amazonwebservices.com/connect/thread.jspa?messageID=136051 - "Поддержка карт/редукторов С#/F #" ) прямо говорит, что" в настоящее время Amazon Elastic MapReduce не поддерживает Mono или языки, такие как С# или F #.

Вышеизложенное предполагает, что это невозможно. Мне интересно, если есть какие-то обходные пути. Например, можно ли изменить изображение машины Elastic MapReduce для моей учетной записи и установить там Mono?

Альтернатива, предложенная Amazon Часто задаваемые вопросы "Использование другого программного обеспечения, необходимого вашей банке" (http://docs.amazonwebservices.com/ElasticMapReduce/latest/DeveloperGuide/index.html?CHAP_AdvancedTopics.html) и "Как использовать дополнительные файлы и библиотеки с помощью Mapper или Reducer" (http://docs.amazonwebservices.com/ElasticMapReduce/latest/DeveloperGuide/index.html?addl_files.html) - сделать первый шаг задания Map/Reduce для установки Mono on локальный экземпляр. Это звучит неэффективно, но, возможно, это может сработать?

Возможно, лучшей альтернативой было бы отказаться от удобства Elastic MapReduce и вручную настроить собственный кластер Hadoop на EC2. Тогда я предполагаю, что смогу установить Mono без труда.

Ответы

Ответ 2

Вероятно, будет возможная работа с использованием потоковой передачи Hadoop и компиляция кода С# с компилятором Ahead Of Time в собственный код (проверьте: http://www.mono-project.com/AOT). Я думаю, что двоичный файл может быть запущен с S3, как, например, программа на С++.

Ответ Рида Копси неверен. Библиотека VB.NET предназначена для создания заданий, запуска и остановки их, но не о том, что код действительно работает в заданиях Hadoop.

Ответ 3

У Elastic MapReduce теперь есть функция "bootstrap actions", которую Amazon в настоящее время объясняет следующим образом:

Операция начальной загрузки - это механизм, который позволяет запускать script на экземплярах Elastic MapReduce до начала Hadoop. Скрипты действия Bootstrap хранятся в Amazon S3 и передаются в Amazon Elastic MapReduce при создании нового потока работ. Скрипты сценариев загрузки загружаются из Amazon S3 и выполняется на каждом экземпляре до выполнения задания.

Скрипты действия Bootstrap могут быть записаны на любом языке, уже установленном в потоке задания экземпляр, включая Ruby, Python, Perl и bash.

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

Рекомендуется использовать программное обеспечение на ваших кластерных машинах. Вы можете использовать это для установки среды выполнения .NET(возможно, Mono, а не Microsoft, потому что, поскольку я полагаю, что все компьютеры Elastic MapReduce работают под управлением Linux) на ваших кластерных машинах. (Не уверен, насколько жесткой будет установка без установки. Любые идеи?) Сделав это, вы можете обратиться к своим .NET-сетям/редукторам, используя потоки Hadoop, которые, по-видимому, поддерживают Elastic MapReduce.

Ответ 4

Вы можете использовать VB.NET library на любом языке .NET, включая С#.