Also habe ich Hadoop mit großem Interesse angesehen, und um ehrlich zu sein, ich bin fasziniert, die Dinge werden nicht viel cooler.
Mein einziges kleines Problem ist, dass ich ein C # -Entwickler bin und es in Java ist.
Es ist nicht so, dass ich Java nicht so gut verstehe, wie ich nach Hadoop.net oder NHadoop oder dem .NET-Projekt suche, das den Google MapReduce- Ansatz unterstützt. Kennt jemand einen?
Siehe http://research.microsoft.com/en-us/projects/dryadlinq/default.aspx oder http://msdn.microsoft.com/en-us/library/dd179423.aspx
quelle
Vor kurzem hat MySpace das .NET MapReduce-Framework Qizmt als Open Source veröffentlicht, sodass dies auch ein potenzieller Konkurrent in diesem Bereich ist.
quelle
Ich habe Ihre Frage in meiner Frage hier beantwortet
Um es hier in der Quelle zu sagen:
Microsoft ließ seine Alternative ( Dryade ) zugunsten von Hadoop. Nächstes Jahr werden sie MS SQL Server 2012 mit Hadoop-Integration veröffentlichen. Die Unterstützung für Azure und Windows Server wird gerade entwickelt.
Es wird im ersten Halbjahr 2012 verfügbar sein.
Hadoop ist die führende BigData- Plattform und wird von Open Source und proprietären Quellen (Java, .Net, Python, ...) unterstützt, selbst wenn Oracle sie übernimmt.
Wenn Sie etwas entwickelt haben, sollten Sie warten, wenn Sie sich auf der .Net-Plattform befinden.
Weitere Informationen darüber, was möglich ist, finden Sie hier
quelle
Ich würde sagen, dass DryadLinq das ist, was wir .NET-Leute Hadoop am nächsten kommen. Aber es kommt darauf an, wofür Sie Hadoop verwenden möchten. Wenn Sie nach einem optimierten DFS-System ( Self Maintenance Distributed File) suchen, ist DryadLINQ nicht das, wonach Sie suchen. Es hat eine Analogie zur DFS, aber Sie müssen die Partitionen manuell erstellen und jede Partition verteilen.
Davon abgesehen ist DryadLINQ wirklich wunderbar, wenn es sich um den verteilten Ausführungsaspekt von Hadoop handelt, den Sie suchen (und nein, ich bin nicht mit MS verbunden). Solange Sie ein Microsoft HPC- Cluster-Setup haben, ist es wirklich einfach, mit DryadLINQ loszulegen.
Der Code, den Sie schreiben, ist wirklich nur reiner LINQ-Code, außer dass
IEnumerable<T>
Sie den LINQ nicht ausführen müssen, sondern ihn ausführen müssenPartitionedTable<T>
(die selbst erstellte verteilte Datenstruktur).Was an DryadLINQ wirklich cool war, ist die schnelle Bearbeitungszeit (versuchen, testen, anpassen, wiederholen) bei der Entwicklung von Algorithmen. Sie schreiben einfach LINQ-Code, um Ihre Berechnungen durchzuführen, und DryadLINQ kümmert sich um den gesamten verteilten Ausführungsteil. Es ist das natürlichste Analogon, auf das ich gestoßen bin, das das Schreiben von Code für die verteilte Verarbeitung genauso macht wie das Schreiben von Code für die Verarbeitung einzelner Prozesse.
quelle
Sie können sich etwas wie RavenDb ansehen, das MapReduce für eine relativ große Datenmenge sehr gut unterstützt. Da es in .Net integriert ist, ist eine ordnungsgemäße LINQ-Client-API verfügbar.
http://ravendb.net/
Um Ihnen den Einstieg zu erleichtern, können Sie meinen Blog entery lesen .
quelle
Es ist möglicherweise besser, Apache Hadoop und Streaming zu verwenden, da Apache Hadoop von großen Branchenriesen wie Yahoo und Facebook aktiv entwickelt und gewartet wird. So kann es tun, was Sie erwarten.
Wenn Sie eine Lösung in .NET benötigen, überprüfen Sie bitte die Myspace-Implementierung @ MySpace Qizmt - das Open Source Mapreduce Framework von MySpace
quelle
Microsoft ist dabei, HDInsight einzuführen , das als "100% Apache-kompatible Hadoop-Distribution" in Rechnung gestellt wird.
Es ist sowohl unter Windows Server als auch als Windows Azure-Dienst verfügbar.
quelle
Microsoft Research hat das Projekt Daytona http://research.microsoft.com/en-us/projects/daytona/
Sie können es herunterladen. Es gibt ein WordCount-Beispiel in C #.
quelle
Sie können Hadoop jetzt direkt in .NET verwenden. Microsoft hat hierfür ein SDK veröffentlicht.
https://hadoopsdk.codeplex.com/
Dies bedeutet natürlich die Verwendung des Java-basierten Hadoop-Netzwerks. Aber spielt es eine Rolle, ob der Server in Java ausgeführt wird? Ich bin sicher, dass jemand versuchen könnte, es zu portieren, aber ich denke nicht, dass es eine gute Idee wäre, da Unternehmen bereits die Java-Version unterstützen und ich denke nicht, dass der .NET-Port die gleiche Aufmerksamkeit erhalten wird.
quelle
Schauen Sie sich an:
http://www.windowsazure.com/en-us/services/hdinsight/
Es ist eine Implementierung von Hadoop für Azure und Sie können .NET für den Zugriff darauf verwenden.
quelle
Intern hat Microsoft Cosmos verwendet. Dies wurde außerhalb von Microsoft über Azure verfügbar gemacht. Es heißt Azure Data Lake Analytics und Azure Data Lake Store . Azure Data Lake Analytics ist eine Art Garn als Dienst und Azure Data Lake Store WebHDFS als Dienst. Die erste Version von Azure Data Lake Analytics hostet nur U-SQL, eine Sprache, die auf Transact-SQL + C # basiert.
quelle
Es gibt eine ziemlich nette MapReduce-Implementierung für .NET unter: http://mapsharp.codeplex.com/
quelle
dryad / linq wird produziert und in Kürze veröffentlicht: http://blogs.technet.com/b/windowshpc/archive/2011/07/07/announcing-linq-to-hpc-beta-2.aspx Verwendung in Verbindung mit Microsoft HPC für eine leistungsstarke, clusterbasierte Lösung zum Abfragen unstrukturierter Daten
quelle
Wie bereits erwähnt, ist DryadLINQ ein Programmierframework, mit dem Entwickler LINQ-Abfragen schreiben und in einem Cluster ausführen können, ähnlich wie bei MapReduce. Das DryadLINQ-Projekt wurde kürzlich unter der Apache-Lizenz auf GitHub veröffentlicht. Die Version enthält Unterstützung für die Ausführung auf YARN-Clustern (einschließlich Azure HDInsight-Clustern).
quelle