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

98

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

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

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

Danswain
источник

Ответы:

57

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

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

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

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

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

См. Http://research.microsoft.com/en-us/projects/dryadlinq/default.aspx или http://msdn.microsoft.com/en-us/library/dd179423.aspx


источник
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.

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

NicoJuicy
источник
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/

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

Ovais
источник
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 #.

Benjguin
источник
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).

мрри
источник