2009-07-27 2 views
13

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

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

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

Альтернатива, предложенная Amazon часто задаваемые вопросы «Использование другого программного обеспечения, необходимое для вашего Jar» (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), чтобы сделать первый шаг Карта/Уменьшить задание - установить Mono в локальном экземпляре. Это звучит неэффективно, но, может быть, это может сработать?

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

ответ

0

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

+1

Там же C# версия тоже (http://developer.amazonwebservices.com/connect/entry.jspa? ExternalId = 2307). Тем не менее, ни один из них не выглядит так, как они позволяют писать .NET mappers/reducers; вместо этого их совместная цель, по-видимому, предоставляет альтернативу API для ручного управления с помощью локальной панели управления Elastic MapReduce от Amazon, основной целью которой является запуск/остановка/настройка заданий MapReduce. Я не думаю, что это поможет вам на самом деле реализовать карту или редуктор в VB/C#, хотя, возможно, я чего-то не хватает. – Chris

5

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

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

2

Elastic MapReduce теперь имеет «самонастройки действия» особенность, которая Amazon в настоящее время объясняется следующим образом:

бутстраповской действие механизм, который позволяет запускать скрипт на случаях Elastic MapReduce до Hadoop запуска , Сценарии действий Bootstrap хранятся в Amazon S3 и передаются Amazon Elastic MapReduce при создании нового потока работ. Сценарии действий Bootstrap загружаются с 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.

Смежные вопросы