Donc, j'ai regardé Hadoop avec un vif intérêt, et pour être honnête, je suis fasciné, les choses ne se refroidissent pas beaucoup.
Mon seul problème mineur est que je suis un développeur C # et qu'il est en Java.
Ce n'est pas que je ne comprends pas le Java autant que je cherche le Hadoop.net ou NHadoop ou le projet .NET qui embrasse le Google MapReduce Quelqu'un en connaît-il un?
Avez-vous envisagé d'utiliser le streaming de 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 les autres fassent de même.
Si vous regardez des projets comme les tampons de protocole ou l'épargne 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 choix.
Récemment, MySpace a publié son framework .NET MapReduce, Qizmt , en tant qu'Open Source, il s'agit donc également d'un concurrent potentiel dans cet espace.
J'ai répondu à votre question dans ma question ici
Pour le dire ici dans la source:
Microsoft abandonné son alternative ( Dryad ) en faveur 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 n ° 1 BigData et sera prise en charge par des sources open source et propriétaires (Java, .Net, Python, ...) même Oracle l'adopte.
Si vous développiez quelque chose, vous devriez attendre si vous êtes sur la plate-forme .Net.
Plus d'informations sur ce qui est possible seront disponibles ici
Je dirais que DryadLinq est la chose la plus proche que nous, les gens .NET, avons de Hadoop. Mais cela dépend de ce que vous voulez utiliser hadoop. Si vous recherchez le système de fichiers distribués (DFS) optimisé auto-entretenu, alors DryadLINQ n'est pas ce que vous recherchez. Il a un analogue au DFS mais vous devez créer 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 très facile de démarrer avec DryadLINQ.
Le code que vous écrivez est vraiment du code LINQ simple, sauf au lieu d'exécuter LINQ sur IEnumerable<T>
vous devez l'exécuter sur PartitionedTable<T>
(la structure de données distribuées auto-construite).
Ce qui a vraiment été cool avec DryadLINQ, c'est le temps d'exécution rapide (essayez, testez, ajustez, répétez) lors du développement d'algorithmes. Vous écrivez simplement du code LINQ pour faire vos calculs et DryadLINQ se chargera de toute la partie d'exécution distribuée. C'est l'analogue le plus naturel que j'ai rencontré qui fait de l'écriture de code pour le traitement distribué tout comme l'écriture de code pour le traitement de processus unique.
Vous pouvez regarder quelque chose comme RavenDb, il fournit un support très décent pour MapReduce pour une assez grande taille de données. car il est intégré dans .Net, une API client LINQ appropriée est donc disponible.
Pour commencer, vous pouvez lire mon blog entrée.
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. Il peut donc faire ce que vous attendez de lui.
Si vous avez besoin d'une solution en .NET, veuillez vérifier la mise en œuvre de Myspace @ MySpace Qizmt - MySpace's Open Source Mapreduce Framework
Microsoft est en train de déployer HDInsight , qui est présenté comme sa "distribution Hadoop 100% compatible avec Apache".
Il est disponible à la fois sur Windows Server et en tant que service Windows Azure.
Jetez un œil sur:
http://www.windowsazure.com/en-us/services/hdinsight/
Il s'agit d'une implémentation de Hadoop pour Azure et vous pouvez utiliser .NET pour y accéder.
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 . Azure Data Lake analytics est une sorte de fil 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 #.
Vous pouvez désormais utiliser Hadoop directement à partir de .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 si 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 obtiendra la même attention.
Microsoft Research a le projet Daytona http://research.Microsoft.com/en-us/projects/daytona/
Vous pouvez le télécharger. Il y a un exemple WordCount en C #.
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 utiliser conjointement avec Microsoft HPC pour une solution puissante basée sur un cluster pour interroger des données non structurées
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, d'une manière similaire à MapReduce. Le projet DryadLINQ a récemment été publié sous la licence Apache le GitHub , et la version inclut la prise en charge de l'exécution sur les clusters YARN (y compris les clusters Azure HDInsight).
Il y a une implémentation MapReduce assez mignonne pour .NET à: http://mapsharp.codeplex.com/