Czy istnieje odpowiednik platformy .NET dla Apache Hadoop? [Zamknięte]

98

Tak więc patrzyłem na Hadoopa z żywym zainteresowaniem i szczerze mówiąc jestem zafascynowany, nie robi się dużo fajniej.

Moim jedynym drobnym problemem jest to, że jestem programistą C # i jest w Javie.

Nie chodzi o to, że nie rozumiem języka Java tak bardzo, jak szukam projektu Hadoop.net, NHadoop lub .NET, który obejmuje podejście Google MapReduce . Czy ktoś o jednym wie?

danswain
źródło

Odpowiedzi:

57

Czy spojrzałeś na strumieniowanie Hadoop?

Używam go cały czas w Pythonie :-).

Zaczynam widzieć, że podejście heterogeniczne jest często najlepsze i wygląda na to, że inni robią to samo.

Jeśli spojrzysz na projekty takie jak bufory protokołów lub oszczędność na Facebooku, zobaczysz, że czasami najlepiej jest użyć aplikacji napisanej w innym języku i zbudować klej w języku, który preferujesz.

żuje
źródło
2
To nie jest technicznie trudne, gdy Hadoop jest w C #, przesyłanie strumieniowe oddziela procesy, a dane są przekazywane jako ciągi, co nie może być tak wydajne.
Felice Pollano
13

Zobacz http://research.microsoft.com/en-us/projects/dryadlinq/default.aspx lub http://msdn.microsoft.com/en-us/library/dd179423.aspx


źródło
7
Microsoft odwołał Driadę i postanowił pozostać przy Hadoop
Arnon Rotem-Gal-Oz,
@ ArnonRotem-Gal-Oz: czy masz odniesienie do tego oświadczenia od firmy Microsoft?
Abel,
4
zobacz blogs.technet.com/b/windowshpc/archive/2011/11/11/… - „W ramach tego wydania zaktualizowaliśmy również wersję zapoznawczą LINQ do HPC, jednak będzie to ostateczna wersja zapoznawcza nie planujcie posuwać się naprzód z wydaniem produkcyjnym. Zgodnie z naszą zapowiedzią z października na konferencji PASS, skupimy się na wprowadzeniu Apache Hadoop zarówno na Windows Server, jak i Windows Azure… ”
Arnon Rotem-Gal-Oz
13

Niedawno MySpace wydało swój framework .NET MapReduce, Qizmt , jako Open Source, więc jest to również potencjalny rywal w tej przestrzeni.

foxxtrot
źródło
2
Ich licencja to GPL; (Byłoby wspaniale, gdyby wybrali coś mniej restrykcyjnego ...
IgorK
3
W tym przypadku jest naprawdę mało prawdopodobne, że GPL stanie Ci na drodze. Dopóki nie rozpowszechniasz swoich modyfikacji w źródle (jeśli jakieś wprowadziłeś) poza swoją organizacją, nie będziesz musiał publikować żadnego kodu.
foxxtrot
Dystrybuujemy nasz produkt z zamkniętego źródła (jako firma produktowa). A jeśli próbowaliśmy polegać na komponencie oprogramowania na licencji GPL, to automatycznie musimy dystrybuować również nasze źródła, to nie LGPL, gdzie włączenie biblioteki do projektu o zamkniętym źródle jest w porządku :(
IgorK
Całkowicie uczciwe. Po prostu myślę, że użycie frameworka Map-Reduce przez większość ludzi nie będzie miało tego ograniczenia. To powiedziawszy, nie rozumiem uzasadnienia biznesowego MySpace dla wydania tego na GPL, o ile wiem, że nie licencjonują go osobno.
foxxtrot
Ja też nie rozumiem! Jeśli ktoś chciałby stworzyć „zabójcę MySpace”, prawdopodobnie będzie usatysfakcjonowany korzystaniem z niego na miejscu (bez redystrybucji plików binarnych lub źródłowych). Wydaje mi się, że użycie AGPL (Affero GPL) byłoby bardziej odpowiednie do naprawienia luki w publicznych usługach internetowych korzystających z niej i nie rozpowszechniających żadnego źródła ... Smutne i dziwne: /
IgorK
10

Odpowiedziałem na twoje pytanie w moim pytaniu tutaj

Aby powiedzieć to tutaj w źródle:

Microsoft zrezygnował ze swojej alternatywy ( Driada ) na rzecz Hadoopa. W przyszłym roku wypuszczą MS SQL Server 2012 z integracją z Hadoop. Wsparcie dla Azure i Windows Server jest rozwijane już teraz.

Będzie dostępny w pierwszej połowie 2012 roku.

Hadoop jest platformą BigData nr 1 i będzie obsługiwany przez otwarte i zastrzeżone źródła (Java, .Net, Python, ...), nawet Oracle wdraża je.

Jeśli coś tworzyłeś, powinieneś poczekać, jeśli jesteś na platformie .Net.

Więcej informacji o tym, co jest możliwe, będzie dostępnych tutaj

NicoJuicy
źródło
5

Powiedziałbym, że DryadLinq jest najbliższą Hadoopowi rzeczą, jaką my, ludzie .NET, mamy. Ale to zależy do czego chcesz używać hadoopa. Jeśli szukasz zoptymalizowanego samoobsługowego systemu plików rozproszonych (DFS), to DryadLINQ nie jest tym, czego szukasz. Ma odpowiednik DFS, ale musisz ręcznie zbudować partycje i rozprowadzić każdą partycję.

Biorąc to pod uwagę, jeśli jego aspekt wykonania rozproszonego Hadoop, którego szukasz, niż DryadLINQ jest naprawdę wspaniały (i nie, nie jestem powiązany z MS). Tak długo, jak masz konfigurację klastra Microsoft HPC, rozpoczęcie pracy z DryadLINQ jest naprawdę łatwe.

Kod, który piszesz, jest w rzeczywistości po prostu prostym kodem LINQ, z wyjątkiem tego, że zamiast wykonywania LINQ IEnumerable<T>musisz go wykonać PartitionedTable<T>(własna kompilacja rozproszonej struktury danych).

To, co naprawdę było fajne w DryadLINQ, to szybki czas zmiany (spróbuj, przetestuj, dostosuj, powtórz) podczas opracowywania algorytmów. Po prostu piszesz kod LINQ, aby wykonać obliczenia, a DryadLINQ zajmie się całą częścią rozproszonego wykonania. Jest to najbardziej naturalny analog, z jakim się spotkałem, który sprawia, że ​​pisanie kodu do przetwarzania rozproszonego jest takie samo, jak pisanie kodu do przetwarzania pojedynczego procesu.

Turbo
źródło
4

Możesz zajrzeć do czegoś takiego jak RavenDb, które zapewnia bardzo przyzwoitą obsługę MapReduce dla dość dużego rozmiaru danych. ponieważ jest wbudowany w .Net, więc dostępny jest odpowiedni interfejs API klienta LINQ.

http://ravendb.net/

Na dobry początek możesz przeczytać wpis na moim blogu .

Ovais
źródło
2

Być może lepiej będzie korzystać z Apache Hadoop i przesyłania strumieniowego, ponieważ Apache Hadoop jest aktywnie rozwijany i utrzymywany przez wielkich gigantów w branży, takich jak Yahoo i Facebook. Więc może zrobić to, czego od niego oczekujesz.

Jeśli potrzebujesz rozwiązania w .NET, sprawdź implementację Myspace @ MySpace Qizmt - Open Source Mapreduce Framework MySpace

Dileep Stanley
źródło
2

Firma Microsoft jest w trakcie wdrażania usługi HDInsight , która jest rozliczana jako „dystrybucja Hadoop w 100% zgodna z Apache”.

Jest dostępny zarówno w systemie Windows Server, jak i jako usługa Windows Azure.

Buggieboy
źródło
1
HDInsight to dystrybucja Hortonworks. Inni główni dostawcy również współpracują z firmą Microsoft, aby oferować swoje dystrybucje na platformie Azure. Odnosząc się do pytania: istnieją interfejsy .NET do HDInsight, ale samo HDInsight nie jest .NET
ashtonium
1

Możesz teraz używać Hadoop bezpośrednio z .NET Microsoft wydał do tego zestaw SDK.

https://hadoopsdk.codeplex.com/

Oczywiście oznacza to korzystanie z sieci Hadoop opartej na Javie. Ale czy ma znaczenie, czy serwer działa w Javie? Jestem pewien, że ktoś może próbować go przenieść, ale nie sądzę, że byłby to dobry pomysł, ponieważ korporacje już wspierają wersję java i nie sądzę, aby port .NET przyciągnął taką samą uwagę.

Lunatyk
źródło
1

Firma Microsoft korzysta wewnętrznie z rozwiązania Cosmos. Zostało to udostępnione poza Microsoft za pośrednictwem platformy Azure. Nazywa się Azure Data Lake Analytics i Azure Data Lake Store . Usługa Azure Data Lake Analytics to rodzaj przędzy jako usługi, a usługa Azure Data Lake Store WebHDFS jako usługa. Pierwsza wersja Azure Data Lake Analytics obsługuje tylko język U-SQL oparty na języku Transact-SQL + C #.

benjguin
źródło
0

Driada / linq jest produkowana i zostanie wkrótce wydana: http://blogs.technet.com/b/windowshpc/archive/2011/07/07/announcing-linq-to-hpc-beta-2.aspx używać w połączeniu z Microsoft HPC dla wydajnego, opartego na klastrach rozwiązania do przeszukiwania nieustrukturyzowanych danych

Jan
źródło
/ zostanie wkrótce wydany / nie będzie, zobacz odpowiedzi powyżej
om-nom-nom
1
Podejrzana Driada i HDInsight są ze sobą w sprzeczności. Słuchaj, Microsoft wypuści Driadę dla HDInsight
Swab.
0

Jak wspominali inni, DryadLINQ to platforma programistyczna, która umożliwia programistom pisanie zapytań LINQ i wykonywanie ich w klastrze, w podobny sposób jak MapReduce. Projekt DryadLINQ został niedawno wydany na licencji Apache na GitHub , a wydanie obejmuje obsługę działania w klastrach YARN (w tym klastrach Azure HDInsight).

mrry
źródło