2008-12-04 3 views
95

Итак, я смотрел на Hadoop с большим интересом, и, честно говоря, я очарован, вещи не становятся намного круче.Есть ли эквивалент .NET для Apache Hadoop?

Моя единственная второстепенная проблема - я разработчик C#, и она находится на Java.

Это не то, что я не понимаю Java столько, сколько я ищу Hadoop.net или NHadoop или .NET проект, который охватывает подход Google MapReduce. Кто-нибудь знает об одном?

ответ

57

Вы смотрели на использование Hadoop's streaming?

Я использую его в питон все время :-).

Я начинаю видеть, что гетерогенный подход часто является лучшим, и похоже, что другие люди делают то же самое.

Если вы посмотрите на проекты, такие как протокольные буферы или денежные средства facebook, вы увидите, что иногда лучше всего использовать приложение, написанное на другом языке, и создать клей на языке ваших предпочтений.

+1

Это не технически с Hadoop в C#, потоковое разделение процессов и данных передаются как строки, которые не могут быть настолько эффективными. – 2016-03-03 07:53:54

13
+6

Microsoft отменила Дриаду и решила придерживаться Hadoop – 2011-12-01 05:21:06

+0

@ ArnonRotem-Gal-Oz: есть ли у вас ссылка на это заявление от Microsoft? – Abel 2012-02-07 23:20:44

+4

см. Http://blogs.technet.com/b/windowshpc/archive/2011/11/11/hpc-pack-2008-r2-sp3-and-windows-azure-hpc-scheduler-released.aspx - «Как часть этого выпуска мы также обновили предварительную версию LINQ до HPC, однако это будет окончательный предварительный просмотр, и мы не планируем продвигаться вперед с производственным выпуском. В соответствии с нашим заявлением в октябре на конференции PASS мы сосредоточит наши усилия на том, чтобы принести Apache Hadoop как на Windows Server, так и на Windows Azure ... » – 2012-02-07 23:54:52

13

Недавно, MySpace выпустила свои рамки .NET MapReduce, Qizmt как Open Source, так что это также является потенциальным соперника в этом пространстве.

+2

Их лицензия - GPL; (Было бы здорово, если бы они выбрали что-то менее ограничительное ... – IgorK 2010-04-14 09:43:37

5

Я бы сказал, что DryadLinq - это самое близкое, что мы, люди .NET, должны к Hadoop. Но это зависит от того, для чего вы хотите использовать hadoop. Если вы ищете оптимизированную систему поддержки распределенных файлов (DFS), то DryadLINQ не то, что вы ищете. Он имеет аналог с DFS, но вы должны вручную создавать разделы и распределять каждый раздел.

Это, если сказать, что его распределенный аспект исполнения Hadoop, который вы ищете, чем DryadLINQ, действительно замечателен (и нет, я не связан с MS). Пока у вас есть кластерная установка Microsoft HPC, чем приступить к работе с DryadLINQ, очень просто.

Код, который вы пишете, на самом деле является просто прямым кодом LINQ, за исключением того, что вместо выполнения LINQ на IEnumerable<T> вам необходимо выполнить его на PartitionedTable<T> (структура распределенных данных самосоздания).

Что действительно было круто в DryadLINQ - это быстрый поворот вокруг (попытка, тестирование, настройка, повторение) при разработке алгоритмов. Вы просто пишете код LINQ для выполнения своих расчетов, а DryadLINQ позаботится о всей распределенной части выполнения. Это самый естественный аналог, с которым я столкнулся, что позволяет писать код для распределенной обработки так же, как писать код для обработки одного процесса.

2

Возможно, лучше использовать Apache Hadoop и потоковое, поскольку Apache Hadoop активно разрабатывается и поддерживается крупными гигантами в отрасли, такими как Yahoo и Facebook. Таким образом, он может делать то, что вы ожидаете от этого.

Если вам нужно решение.NET, пожалуйста, проверьте выполнение Myspace @MySpace Qizmt - MySpace’s Open Source Mapreduce Framework

10

Я ответил на ваш вопрос в моем вопросе here

Чтобы сказать здесь, в источнике:

Microsoft dropped его альтернатива (Dryad) я в пользу Hadoop. В следующем году они выпустят MS SQL Server 2012 с интеграцией Hadoop. Поддержка Azure и Windows Sever развивается, даже когда мы говорим.

Он будет доступен в первой половине 2012 года в

Hadoop является # 1 BigData платформы и будет поддерживаться открытым исходным кодом и проприетарного источника (Java, .Net, Python, ...) даже Oracle принимает его.

Если вы что-то развиваете, вам стоит подождать, если вы находитесь на платформе .Net.

Более подробная информация о том, что возможно будет доступна here

4

Вы можете посмотреть что-то вроде RavenDb, оно обеспечивает очень приличную поддержку MapReduce для довольно большого размера данных. поскольку он встроен в .Net, поэтому имеется подходящий API-интерфейс LINQ.

http://ravendb.net/

Для начала вы можете прочитать мой blog entery.

1

Теперь вы можете использовать Hadoop прямо из .NET. Для этого Microsoft выпустила SDK.

https://hadoopsdk.codeplex.com/

Конечно, это означает, что с помощью Java на основе Hadoop сети. Но имеет ли значение, работает ли сервер в java? Я уверен, что кто-то попытается его портировать, но я не думаю, что это было бы хорошей идеей, поскольку корпорации уже поддерживают java-версию, и я не думаю, что порт .NET получит такое же внимание.

2

Microsoft находится в процессе развертывания HDInsight, который объявлен как «100% совместимое с Apache распределение Hadoop».

Он доступен как на Windows Server, так и в качестве службы Windows Azure.

0

Как уже упоминалось, DryadLINQ - это структура программирования, которая позволяет разработчикам писать запросы LINQ и выполнять их в кластере, аналогично MapReduce. Проект DryadLINQ недавно был выпущен под лицензией Apache по адресу GitHub, а релиз включает поддержку для работы в кластерах YARN (включая кластеры Azure HDInsight).

1

Внутренне Microsoft использует Космос. Это было доступно за пределами Microsoft через Azure. Он называется Azure Data Lake Analytics и Azure Data Lake Store. Аналитика Azure Data Lake - это своего рода пряжа как услуга, а услуга Azure Data Lake Store WebHDFS - это услуга. Первая версия Azure Data Lake Analytics содержит только U-SQL язык, основанный на Transact-SQL + C#.