¿Existe un .NET equivalente a Apache Hadoop? [cerrado]

98

Entonces, he estado mirando a Hadoop con gran interés y, para ser honesto, estoy fascinado, las cosas no se ponen mucho más geniales.

Mi único problema menor es que soy un desarrollador de C # y está en Java.

No es que no entienda Java tanto como busco el proyecto Hadoop.net o NHadoop o .NET que adopta el enfoque de Google MapReduce . ¿Alguien sabe de uno?

contramaestre
fuente

Respuestas:

57

¿Ha pensado en utilizar la transmisión de Hadoop?

Lo uso en Python todo el tiempo :-).

Estoy empezando a ver que el enfoque heterogéneo es a menudo el mejor y parece que otras personas están haciendo lo mismo.

Si observa proyectos como búfer de protocolo o ahorro de Facebook, verá que a veces es mejor usar una aplicación escrita en otro idioma y crear el pegamento en el idioma de su preferencia.

mastica
fuente
2
Esto no es técnicamente tener Hadoop en C #, el streaming desacopla los procesos y los datos se pasan como cadenas, que no podrían ser tan eficientes.
Felice Pollano
13

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


fuente
7
Microsoft canceló Dryad y decidió quedarse con Hadoop
Arnon Rotem-Gal-Oz
@ ArnonRotem-Gal-Oz: ¿tiene una referencia de esa declaración de Microsoft?
Abel
4
consulte blogs.technet.com/b/windowshpc/archive/2011/11/11/… - "Como parte de esta versión, también hemos actualizado la versión preliminar de LINQ to HPC, sin embargo, esta será la vista previa final y no planeamos seguir adelante con un lanzamiento de producción. De acuerdo con nuestro anuncio en octubre en la conferencia PASS, centraremos nuestro esfuerzo en llevar Apache Hadoop tanto a Windows Server como a Windows Azure ... "
Arnon Rotem-Gal-Oz
13

Recientemente, MySpace lanzó su marco .NET MapReduce, Qizmt , como código abierto, por lo que también es un competidor potencial en este espacio.

foxxtrot
fuente
2
Su licencia es GPL; (Sería genial si eligieran algo menos restrictivo ...
IgorK
3
Es muy poco probable que la GPL se interponga en su camino en este caso. Siempre que no distribuya sus modificaciones a la fuente (si ha realizado alguna) fuera de su organización, no se le pedirá que libere su código.
foxxtrot
Distribuimos nuestro producto de código cerrado (como empresa de productos). Y si tratamos de confiar en el componente de software GPL, entonces automáticamente necesitamos distribuir nuestras fuentes también, no es LGPL donde incluir una biblioteca en un proyecto de código cerrado está bien :(
IgorK
Completamente justo. Solo creo que el uso de la mayoría de las personas de un marco Map-Reduce no tendrá esta limitación. Dicho esto, no entiendo el caso comercial de MySpace para publicar esto como GPL, por lo que puedo decir, no lo están licenciando por separado.
foxxtrot
¡Yo tampoco lo entiendo! Si alguien quisiera crear un 'asesino de MySpace', es probable que se sienta satisfecho usándolo internamente (sin redistribución de código binario o fuente). Supongo que usar AGPL (Affero GPL) sería más apropiado para arreglar una laguna con los servicios web públicos que lo usan y no distribuyen ninguna fuente ... Triste y extraño: /
IgorK
10

Respondí tu pregunta en mi pregunta aquí.

Para decirlo aquí en la fuente:

Microsoft abandonó su alternativa ( Dryad ) a favor de Hadoop. El próximo año lanzarán MS SQL Server 2012 con integración de Hadoop. La compatibilidad con Azure y Windows Sever se está desarrollando incluso mientras hablamos.

Estará disponible en el primer semestre de 2012.

Hadoop es la plataforma # 1 de BigData y será compatible con código abierto y fuente patentada (Java, .Net, Python, ...) incluso Oracle la está adoptando.

Si estaba desarrollando algo, debería esperar si está en la plataforma .Net.

Más información sobre lo que es posible estará disponible aquí.

NicoJuicy
fuente
5

Diría que DryadLinq es lo más parecido que tenemos los .NET a Hadoop. Pero depende de para qué quieras usar hadoop. Si está buscando el sistema optimizado de archivos distribuidos de mantenimiento automático (DFS), DryadLINQ no es lo que está buscando. Tiene un análogo al DFS pero tienes que construir manualmente las particiones y distribuir cada partición.

Dicho esto, si es el aspecto de ejecución distribuida de Hadoop lo que está buscando, DryadLINQ es realmente maravilloso (y no, no estoy afiliado a MS). Siempre que tenga una configuración de clúster de HPC de Microsoft, comenzar con DryadLINQ es realmente fácil.

El código que escribe es realmente código LINQ directo, excepto que en lugar de ejecutar el LINQ en el IEnumerable<T>que tiene que ejecutarlo PartitionedTable<T>(la estructura de datos distribuida autoconstruida).

Lo que ha sido realmente genial de DryadLINQ es el tiempo de respuesta rápido (probar, probar, ajustar, repetir) al desarrollar algoritmos. Simplemente escriba el código LINQ para hacer sus cálculos y DryadLINQ se encargará de toda la parte de ejecución distribuida. Es el análogo más natural que he encontrado que hace que la escritura de código para el procesamiento distribuido sea igual que la escritura de código para el procesamiento de un solo proceso.

Turbo
fuente
4

Puede buscar algo como RavenDb, proporciona un soporte muy decente para MapReduce para un tamaño de datos bastante grande. ya que está integrado en .Net, por lo que una API de cliente LINQ adecuada está disponible.

http://ravendb.net/

Para empezar, puede leer el artículo de mi blog .

Ovais
fuente
2

Puede ser mejor usar Apache Hadoop y la transmisión porque Apache Hadoop está siendo desarrollado y mantenido activamente por grandes gigantes de la industria como Yahoo y Facebook. Para que pueda hacer lo que esperas que haga.

Si necesita una solución en .NET, consulte la implementación de Myspace @ MySpace Qizmt - Mapreduce Framework de código abierto de MySpace

Dileep Stanley
fuente
2

Microsoft está en el proceso de implementar HDInsight , que se factura como su "distribución Hadoop 100% compatible con Apache".

Está disponible tanto en Windows Server como como servicio de Windows Azure.

Buggieboy
fuente
1
HDInsight es la distribución de Hortonworks. Otros proveedores importantes también están trabajando con Microsoft para ofrecer sus distribuciones en Azure. En relación con la pregunta: hay interfaces .NET para HDInsight, pero HDInsight en sí no es .NET
ashtonium
1

Ahora puede usar Hadoop directamente desde .NET Microsoft ha lanzado un SDK para hacerlo.

https://hadoopsdk.codeplex.com/

Por supuesto, esto significa usar la red Hadoop basada en Java. Pero, ¿importa si el servidor se ejecuta en Java? Estoy seguro de que alguien puede intentar portarlo, pero no creo que sea una buena idea ya que las corporaciones ya están respaldando la versión java y no creo que el puerto .NET reciba la misma atención.

Dreamwalker
fuente
1

Internamente, Microsoft ha estado usando Cosmos. Esto está disponible fuera de Microsoft a través de Azure. Se llama Azure Data Lake Analytics y Azure Data Lake Store . El análisis de Azure Data Lake es una especie de Yarn como servicio y Azure Data Lake Store WebHDFS como servicio. La primera versión de Azure Data Lake Analytics solo hospeda U-SQL, un lenguaje basado en Transact-SQL + C #.

benjguin
fuente
0

Como han mencionado otros, DryadLINQ es un marco de programación que permite a los desarrolladores escribir consultas LINQ y ejecutarlas en un clúster, de manera similar a MapReduce. El proyecto DryadLINQ se lanzó recientemente bajo la licencia Apache en GitHub , y la versión incluye soporte para ejecutarse en clústeres YARN (incluidos los clústeres Azure HDInsight).

señor
fuente