Чи існує .NET, еквівалентний Apache Hadoop? [зачинено]


98

Отже, я дивлюся на Hadoop з великим інтересом, і, чесно кажучи, я зачарований, все не стає набагато крутішим.

Моя єдина незначна проблема - я розробник C #, і це на Java.

Це не те, що я не так розумію Java, як шукаю Hadoop.net чи NHadoop чи проект .NET, який охоплює підхід Google MapReduce . Хтось про одного знає?

Відповіді:


57

Ви розглядали використання потокової передачі Hadoop?

Я весь час використовую його в python :-).

Я починаю бачити, що різнорідний підхід часто є найкращим, і схоже, що інші люди роблять те саме.

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


2
Це не технічне рішення для Hadoop в C #, потокове роз'єднання процесів, а дані передаються у вигляді рядків, що не може бути настільки ефективним.
Феліче Поллано

13

7
Microsoft скасувала Дріаду і вирішила дотримуватися Hadoop
Arnon Rotem-Gal-Oz

@ ArnonRotem-Gal-Oz: чи є у вас посилання на це твердження від Microsoft?
Абель

4
побачити blogs.technet.com/b/windowshpc/archive/2011/11/11/… - "В рамках цього випуску ми також оновили попередню версію LINQ до 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 - це платформа No1 BigData, яка буде підтримуватися відкритим джерелом та власницьким джерелом (Java, .Net, Python, ...), навіть Oracle приймає його.

Якщо ви щось розробляли, вам слід почекати, якщо ви перебуваєте на платформі .Net.

Більше інформації про те, що можливо, можна отримати тут


5

Я б сказав, що DryadLinq - це найближче до 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/

Для початку ви можете прочитати мій блог entery.


2

Можливо, краще використовувати Apache Hadoop та потокове передавання, оскільки Apache Hadoop активно розробляється та підтримується такими великими гігантами в галузі, як Yahoo та Facebook. Тож він може робити те, що ви очікуєте.

Якщо вам потрібне рішення в .NET, перевірте реалізацію Myspace @ MySpace Qizmt - MySpace Open Source Mapreduce Framework


2

Microsoft перебуває в процесі випуску HDInsight , який оплачується як "100% сумісний з Apache розподіл Hadoop".

Він доступний як на 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 є різновидом пряжі як послуги, а Azure Data Lake Store WebHDFS як послуги. Перша версія 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 для потужного кластерного рішення для запиту неструктурованих даних


/ скоро вийде / не буде, див. відповіді вище
ом-ном-ном

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.