Esiste un .NET equivalente ad Apache Hadoop? [chiuso]


98

Quindi, ho guardato Hadoop con vivo interesse e, ad essere onesti, sono affascinato, le cose non diventano molto più interessanti.

Il mio unico problema minore è che sono uno sviluppatore C # ed è in Java.

Non è che non capisca Java tanto quanto cerco Hadoop.net o NHadoop o il progetto .NET che abbraccia l' approccio di Google MapReduce . Qualcuno ne conosce uno?

Risposte:


57

Hai mai visto l'utilizzo dello streaming di Hadoop?

Lo uso sempre in Python :-).

Comincio a vedere che l'approccio eterogeneo è spesso il migliore e sembra che altre persone stiano facendo lo stesso.

Se guardi a progetti come i buffer di protocollo o la parsimonia di Facebook, vedrai che a volte è meglio usare un'app scritta in un'altra lingua e costruire il collante nella lingua che preferisci.


2
Questo non significa avere Hadoop in C #, lo streaming disaccoppia i processi ei dati vengono passati come stringhe, il che non potrebbe essere così efficiente.
Felice Pollano

13

7
Microsoft ha annullato Dryad e ha deciso di restare con Hadoop
Arnon Rotem-Gal-Oz

@ ArnonRotem-Gal-Oz: hai un riferimento a quella dichiarazione da parte di Microsoft?
Abel

4
vedi blogs.technet.com/b/windowshpc/archive/2011/11/11/… - "Come parte di questa versione abbiamo anche aggiornato la versione di anteprima di LINQ to HPC, tuttavia, questa sarà l'anteprima finale e noi non abbiamo intenzione di andare avanti con una versione di produzione. In linea con il nostro annuncio di ottobre alla conferenza PASS concentreremo i nostri sforzi sul portare Apache Hadoop sia su Windows Server che su Windows Azure ... "
Arnon Rotem-Gal-Oz

13

Recentemente, MySpace ha rilasciato il loro framework .NET MapReduce, Qizmt , come Open Source, quindi anche questo è un potenziale concorrente in questo spazio.


2
La loro licenza è GPL; (Sarebbe fantastico se avessero scelto qualcosa di meno restrittivo ...
IgorK

3
È davvero improbabile che la GPL ti intralci in questo caso. Finché non distribuisci le modifiche all'origine (se ne hai apportate) al di fuori della tua organizzazione, non ti verrà richiesto di rilasciare alcun codice.
foxxtrot

Distribuiamo il nostro prodotto closed-source (come azienda prodotto). E se provassimo a fare affidamento su componenti software GPL, allora dobbiamo automaticamente distribuire anche i nostri sorgenti, non è LGPL dove includere una libreria in un progetto closed-source va bene :(
IgorK

Completamente giusto. Penso solo che l' uso da parte della maggior parte delle persone di un framework Map-Reduce non avrà questa limitazione. Detto questo, non capisco il business case di MySpace per il rilascio di questo come GPL, per quanto posso dire che non lo concedono separatamente.
foxxtrot

Non capisco neanche io! Se qualcuno volesse creare un "killer di MySpace", è probabile che si accontenti di usarlo internamente (senza ridistribuzione di codice binario o sorgente). Immagino che usare AGPL (Affero GPL) sarebbe più appropriato per riparare una scappatoia con i servizi web pubblici utilizzandolo e non distribuendo alcuna fonte ... Triste e strano: /
IgorK

10

Ho risposto alla tua domanda nella mia domanda qui

Per dirlo qui nella fonte:

Microsoft ha abbandonato la sua alternativa ( Dryad ) a favore di Hadoop. Il prossimo anno rilasceranno MS SQL Server 2012 con l'integrazione di Hadoop. Il supporto per Azure e Windows Server è in fase di sviluppo proprio mentre parliamo.

Sarà disponibile nella prima metà del 2012.

Hadoop è la piattaforma BigData numero 1 e sarà supportata da sorgenti opensource e proprietarie (Java, .Net, Python, ...) anche Oracle la sta adottando.

Se stavi sviluppando qualcosa, dovresti aspettare se sei sulla piattaforma .Net.

Maggiori informazioni su ciò che è possibile fare saranno disponibili qui


5

Direi che DryadLinq è la cosa più vicina che noi persone .NET abbiamo a Hadoop. Ma dipende per cosa vuoi usare hadoop. Se stai cercando il sistema di file distribuito (DFS) di auto mantenimento ottimizzato, DryadLINQ non è quello che stai cercando. Ha un analogo al DFS ma devi costruire manualmente le partizioni e distribuire ogni partizione.

Detto questo, se è l'aspetto di esecuzione distribuita di Hadoop che stai cercando, allora DryadLINQ è davvero meraviglioso (e no, non sono affiliato a MS). Finché hai una configurazione del cluster Microsoft HPC , iniziare a usare DryadLINQ è davvero facile.

Il codice che scrivi è in realtà solo codice LINQ diretto, tranne che invece di eseguire LINQ su IEnumerable<T>devi eseguirlo PartitionedTable<T>(la struttura dati distribuita auto-compilata).

Ciò che è stato davvero interessante di DryadLINQ è il tempo di rotazione veloce (prova, prova, regola, ripeti) durante lo sviluppo degli algoritmi. Devi solo scrivere codice LINQ per eseguire i calcoli e DryadLINQ si prenderà cura dell'intera parte di esecuzione distribuita. È l'analogo più naturale che ho incontrato che rende la scrittura di codice per l'elaborazione distribuita proprio come la scrittura di codice per l'elaborazione di un singolo processo.


4

Puoi esaminare qualcosa come RavenDb che fornisce un supporto molto decente per MapReduce per una dimensione di dati abbastanza grande. poiché è integrato in .Net, è quindi disponibile un'API client LINQ appropriata.

http://ravendb.net/

Per iniziare puoi leggere il mio blog .



2

Microsoft è in procinto di implementare HDInsight , che viene fatturato come "distribuzione Hadoop compatibile con Apache al 100%".

È disponibile sia su Windows Server che come servizio Windows Azure.


1
HDInsight è la distribuzione di Hortonworks. Anche altri importanti fornitori stanno collaborando con Microsoft per offrire le loro distribuzioni su Azure. Per quanto riguarda la domanda: esistono interfacce .NET per HDInsight, ma HDInsight stesso non è .NET
ashtonium


1

È ora possibile utilizzare Hadoop direttamente da .NET Microsoft ha rilasciato un SDK per farlo.

https://hadoopsdk.codeplex.com/

Ovviamente questo significa utilizzare la rete Hadoop basata su java. Ma importa se il server è in esecuzione in java? Sono sicuro che qualcuno potrebbe tentare di portarlo, ma non credo che sarebbe una buona idea dato che le aziende stanno già supportando la versione java e non credo che il port .NET riceverà la stessa attenzione.



1

Internamente, Microsoft ha utilizzato Cosmos. Questo è stato reso disponibile al di fuori di Microsoft tramite Azure. Si chiama Azure Data Lake Analytics e Azure Data Lake Store . L'analisi di Azure Data Lake è una specie di Yarn come servizio e di Azure Data Lake Store WebHDFS come servizio. La prima versione di Azure Data Lake Analytics ospita solo U-SQL, un linguaggio basato su Transact-SQL + C #.



0

dryad / linq è in fase di produzione e sarà presto rilasciato: http://blogs.technet.com/b/windowshpc/archive/2011/07/07/announcing-linq-to-hpc-beta-2.aspx utilizzare insieme con Microsoft HPC per una potente soluzione basata su cluster per l'interrogazione di dati non strutturati


/ sarà pubblicato presto / non lo sarà, vedi le risposte sopra
om-nom-nom

1
Suspect Dryad e HDInsight sono in conflitto tra loro. Continua a sentire che Microsoft abbandonerà Dryad per HDInsight
Swab.Jat

0

Come altri hanno già detto, DryadLINQ è un framework di programmazione che consente agli sviluppatori di scrivere query LINQ ed eseguirle su un cluster, in modo simile a MapReduce. Il progetto DryadLINQ è stato recentemente rilasciato con la licenza Apache su GitHub e la versione include il supporto per l'esecuzione su cluster YARN (inclusi i cluster Azure HDInsight).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.