Existe-t-il un équivalent .NET à Apache Hadoop? [fermé]

98

Donc, j'ai regardé Hadoop avec un vif intérêt, et pour être honnête, je suis fasciné, les choses ne deviennent pas beaucoup plus cool.

Mon seul problème mineur est que je suis un développeur C # et que c'est en Java.

Ce n'est pas que je ne comprends pas autant Java que je recherche le Hadoop.net ou NHadoop ou le projet .NET qui embrasse l' approche Google MapReduce . Quelqu'un en connaît-il un?

danswain
la source

Réponses:

57

Avez-vous envisagé d'utiliser le streaming Hadoop?

Je l'utilise en python tout le temps :-).

Je commence à voir que l'approche hétérogène est souvent la meilleure et il semble que d'autres font de même.

Si vous regardez des projets comme les tampons de protocole ou l'économie de Facebook, vous voyez qu'il est parfois préférable d'utiliser une application écrite dans une autre langue et de créer la colle dans la langue de votre préférence.

mâche
la source
2
Ce n'est pas technicalling avoir Hadoop en C #, le streaming découplent les processus et les données sont passées sous forme de chaînes, ce qui ne pourrait pas être aussi efficace.
Felice Pollano
13

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


la source
7
Microsoft a annulé Dryad et a décidé de rester avec Hadoop
Arnon Rotem-Gal-Oz
@ ArnonRotem-Gal-Oz: avez-vous une référence de cette déclaration de Microsoft?
Abel
4
voir blogs.technet.com/b/windowshpc/archive/2011/11/11/… - "Dans le cadre de cette version, nous avons également mis à jour la version préliminaire de LINQ to HPC, cependant, ce sera l'aperçu final et nous ne prévoyez pas d'aller de l'avant avec une version de production. Conformément à notre annonce en octobre lors de la conférence PASS, nous concentrerons nos efforts sur l'intégration d'Apache Hadoop à la fois sur Windows Server et Windows Azure ... "
Arnon Rotem-Gal-Oz
13

Récemment, MySpace a publié son framework .NET MapReduce, Qizmt , comme Open Source, donc c'est aussi un concurrent potentiel dans cet espace.

Foxxtrot
la source
2
Leur licence est GPL; (Ce serait génial s'ils ont choisi quelque chose de moins restrictif ...
IgorK
3
Il est très peu probable que la GPL vous gêne dans ce cas. Tant que vous ne distribuez pas vos modifications à la source (le cas échéant) en dehors de votre organisation, vous ne serez pas obligé de publier votre code.
foxxtrot
Nous distribuons notre produit de source fermée (en tant que société de produits). Et si nous essayons de nous appuyer sur un composant logiciel sous GPL, nous devons également distribuer automatiquement nos sources, ce n'est pas LGPL où l'inclusion d'une bibliothèque dans un projet à source fermée est OK :(
IgorK
Complètement juste. Je pense juste que l' utilisation par la plupart des gens d'un framework Map-Reduce n'aura pas cette limitation. Cela dit, je ne comprends pas l'analyse de rentabilité de MySpace en faveur de sa sortie sous GPL, pour autant que je sache, ils ne le concèdent pas séparément.
foxxtrot
Je ne comprends pas non plus! Si quelqu'un voulait créer un «MySpace killer», il sera probablement satisfait en l'utilisant en interne (sans redistribution du binaire ou de la source). Je suppose que l'utilisation d'AGPL (Affero GPL) serait plus appropriée pour corriger une faille avec les services Web publics qui l'utilisent et ne distribuent aucune source ... Triste et étrange: /
IgorK
10

J'ai répondu à votre question dans ma question ici

Pour le dire ici dans la source:

Microsoft a abandonné son alternative ( Dryad ) au profit de Hadoop. L'année prochaine, ils publieront MS SQL Server 2012 avec intégration Hadoop. La prise en charge d'Azure et de Windows Sever est en cours de développement au moment même où nous parlons.

Il sera disponible au premier semestre 2012.

Hadoop est la plate-forme BigData n ° 1 et sera prise en charge par des sources open source et propriétaires (Java, .Net, Python, ...) même Oracle l'adoptera.

Si vous développez quelque chose, vous devriez attendre si vous êtes sur la plate-forme .Net.

Plus d'informations sur ce qui est possible seront disponibles ici

NicoJuicy
la source
5

Je dirais que DryadLinq est la chose la plus proche que nous, les gens de .NET, avons à Hadoop. Mais cela dépend de l'utilisation que vous faites de hadoop. Si vous recherchez le système de fichiers distribués (DFS) auto-entretenu optimisé, DryadLINQ n'est pas ce que vous recherchez. Il a un analogue au DFS mais vous devez construire manuellement les partitions et distribuer chaque partition.

Cela étant dit, si c'est l'aspect d'exécution distribuée de Hadoop que vous recherchez, DryadLINQ est vraiment merveilleux (et non, je ne suis pas affilié à MS). Tant que vous avez une configuration de cluster Microsoft HPC, il est vraiment facile de commencer avec DryadLINQ.

Le code que vous écrivez n'est en réalité que du code LINQ simple, sauf qu'au lieu d'exécuter le LINQ sur IEnumerable<T>vous devez l'exécuter sur PartitionedTable<T>(la structure de données distribuée auto-construite).

Ce qui a vraiment été cool avec DryadLINQ, c'est le temps de rotation rapide (essayer, tester, ajuster, répéter) lors du développement d'algorithmes. Il vous suffit d'écrire du code LINQ pour faire vos calculs et DryadLINQ s'occupera de toute la partie d'exécution distribuée. C'est l'analogue le plus naturel que j'ai rencontré qui transforme l'écriture de code pour un traitement distribué comme l'écriture de code pour un traitement à processus unique.

Turbo
la source
4

Vous pouvez regarder quelque chose comme RavenDb, il fournit un support très décent pour MapReduce pour une taille de données assez grande. comme il est intégré dans .Net, une API client LINQ appropriée est disponible.

http://ravendb.net/

Pour commencer, vous pouvez lire l' entrée de mon blog .

Ovais
la source
2

Il peut être préférable d'utiliser Apache Hadoop et le streaming car Apache Hadoop est activement développé et maintenu par de grands géants de l'industrie comme Yahoo et Facebook. Ainsi, il peut faire ce que vous attendez de lui.

Si vous avez besoin d'une solution en .NET, veuillez vérifier l'implémentation de Myspace @ MySpace Qizmt - MySpace's Open Source Mapreduce Framework

Dileep Stanley
la source
2

Microsoft est en train de déployer HDInsight , qui est présenté comme sa «distribution Hadoop 100% compatible Apache».

Il est disponible à la fois sur Windows Server et en tant que service Windows Azure.

Buggieboy
la source
1
HDInsight est la distribution Hortonworks. D'autres grands fournisseurs travaillent également avec Microsoft pour proposer leurs distributions sur Azure. Concernant la question: il existe des interfaces .NET vers HDInsight, mais HDInsight lui-même n'est pas .NET
ashtonium
1

Vous pouvez désormais utiliser Hadoop directement depuis .NET. Microsoft a publié un SDK pour ce faire.

https://hadoopsdk.codeplex.com/

Bien sûr, cela signifie utiliser le réseau Hadoop basé sur Java. Mais est-ce important que le serveur fonctionne en java? Je suis sûr que quelqu'un peut essayer de le porter, mais je ne pense pas que ce serait une bonne idée car les entreprises soutiennent déjà la version java et je ne pense pas que le port .NET attirera la même attention.

Marcheur des rêves
la source
1

En interne, Microsoft utilise Cosmos. Cela a été rendu disponible en dehors de Microsoft via Azure. Il s'appelle Azure Data Lake Analytics et Azure Data Lake Store . L'analyse Azure Data Lake est une sorte de Yarn en tant que service et Azure Data Lake Store WebHDFS en tant que service. La première version d'Azure Data Lake Analytics héberge uniquement U-SQL, un langage basé sur Transact-SQL + C #.

benjguin
la source
0

dryad / linq est en cours de production et sera bientôt publié: http://blogs.technet.com/b/windowshpc/archive/2011/07/07/announcing-linq-to-hpc-beta-2.aspx utilisation en conjonction avec Microsoft HPC pour une solution puissante basée sur des clusters pour interroger des données non structurées

John
la source
/ sera bientôt publié / il ne le sera pas, voir les réponses ci
om-nom-nom
1
Suspect Dryad et HDInsight sont en désaccord. Continuez à entendre que Microsoft abandonnera Dryad pour HDInsight
Écouvillon.Jat
0

Comme d'autres l'ont mentionné, DryadLINQ est un cadre de programmation qui permet aux développeurs d'écrire des requêtes LINQ et de les exécuter sur un cluster, de la même manière que MapReduce. Le projet DryadLINQ a récemment été publié sous la licence Apache sur GitHub , et la version inclut la prise en charge de l'exécution sur des clusters YARN (y compris des clusters Azure HDInsight).

mrry
la source