Есть ли .NET-эквивалент Apache Hadoop? [закрыто]


98

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

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

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

Ответы:


57

Вы смотрели на использование потоковой передачи Hadoop?

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

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

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


2
Это не технически сложно, имея Hadoop в C #, потоковая передача разделяет процессы, и данные передаются в виде строк, что не могло быть настолько эффективным.
Феличе Поллано, 03

13

7
Microsoft отменила Dryad и решила придерживаться Hadoop
Арнон Ротем-Гал-Оз

@ ArnonRotem-Gal-Oz: у вас есть ссылка на это заявление от Microsoft?
Abel

4
см. blogs.technet.com/b/windowshpc/archive/2011/11/11/… - «В рамках этого выпуска мы также обновили предварительную версию LINQ to HPC, однако это будет последняя предварительная версия, и мы мы не планируем продвигать производственный выпуск. В соответствии с нашим объявлением в октябре на конференции PASS мы сосредоточим наши усилия на внедрении Apache Hadoop как на Windows Server, так и на Windows Azure ... »
Арнон Ротем-Гал-Оз,

13

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


2
Их лицензия - GPL; (Было бы здорово, если бы они выбрали что-то менее ограничительное ...
IgorK

3
Вряд ли в этом случае GPL помешает вам. Пока вы не распространяете свои модификации в исходный код (если вы их внесли) за пределы своей организации, вам не потребуется выпускать какой-либо код.
foxxtrot

Мы распространяем наш продукт с закрытым исходным кодом (как продуктовая компания). И если мы пытались полагаться на программный компонент под GPL, тогда нам автоматически нужно распространять и наши исходные коды, это не LGPL, где включение библиотеки в проект с закрытым исходным кодом нормально :(
IgorK

Совершенно справедливо. Я просто думаю, что большинство людей, использующих фреймворк Map-Reduce, не имеют этого ограничения. Тем не менее, я не понимаю, почему MySpace выпускает это под GPL, насколько я могу судить, они не лицензируют его отдельно.
foxxtrot

Я тоже не понимаю! Если кто-то захочет создать «убийцу MySpace», он, скорее всего, будет удовлетворен, если будет использовать его внутри компании (без распространения двоичного кода или исходного кода). Я предполагаю, что использование AGPL (Affero GPL) было бы более подходящим, чтобы исправить лазейку с общедоступными веб-сервисами, использующими его и не распространяющими какой-либо источник ... Печально и странно: /
IgorK

10

Я ответил на ваш вопрос в своем вопросе здесь

Сказать это здесь, в источнике:

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

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

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

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

Более подробная информация о возможностях будет доступна здесь.


5

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

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

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

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


4

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

http://ravendb.net/

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


2

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

Если вам нужно решение в .NET, проверьте реализацию Myspace @ MySpace Qizmt - MySpace с открытым исходным кодом Mapreduce Framework


2

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

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


1
HDInsight - это дистрибутив Hortonworks. Другие крупные поставщики также работают с Microsoft, чтобы предложить свои дистрибутивы в Azure. Относительно вопроса: существуют интерфейсы .NET для HDInsight, но сам HDInsight не является .NET
ashtonium


1

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

https://hadoopsdk.codeplex.com/

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



1

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



0

Dryad / linq разрабатывается и скоро будет выпущен: http://blogs.technet.com/b/windowshpc/archive/2011/07/07/announcing-linq-to-hpc-beta-2.aspx использовать вместе с Microsoft HPC для мощного кластерного решения для запросов к неструктурированным данным


/ скоро будет выпущен / не будет, см. ответы выше
om-nom-nom

1
Подозреваемая Дриада и HDInsight не в ладах друг с другом. Продолжаем слышать, что Microsoft выпустит Dryad для HDInsight
Swab.Jat

0

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.