El valor de la gestión de datos

Python: frameworks para Hadoop y estrategias de implementación

Posted on Thu, Aug 7, 2014

Hablar de los frameworks para hadoop de Phyton es hacerlo de los objetivos que plantea. Las metas del marco de trabajo que Phyton propone para Hadoop son:

  •  Simplicidad: minimizando las exigencias de los códigos y su aparición, para un trabajo más sencillo.

  •  Flexibilidad: para convertirse en una herramienta con vocación generalista.

  •  Facilidad de uso: especialmente en todo lo relativo al proceso de instalación.

  •  Rendimiento: el máximo posible, para garantizar buenos resultados.

Sin embargo, a la hora de lograr sus objetivos en relación con Hadoop, Phyton se encuentra con un problema, a primera vista difícil de resolver: agregar el n-grama de datos de Google. Un n-grama es una secuencia contigua de n elementos a partir de una secuencia dada de texto o de voz. Los artículos pueden ser fonemas, sílabas, letras, palabras o pares de bases de acuerdo con la aplicación. Los n-gramas generalmente se recogen de un texto o corpus de voz. (Quienes quieran hacer su propio experimento pueden llevarlo a cabo accediendo al siguiente enlace).

La respuesta llegó, tras estudiar ecuaciones diferenciales parciales y su aplicación a  la resolución del problema con el n - grama. El código fuente obtenido está disponible en GiTHub.

 

hadoop python

 

Descárgate nuestra Guía sobre Big Data

 

Las estrategias de implementación para Hadoop de Phyton

Las distintas estrategias de implementación Hadoop de Phyton ascienden a un elevado número, aunque las que mejores resultados ofrecen podrían clasificarse en dos grupos:

1. Hadoop streaming

  •  mrjob: trabaja en una interfaz de MapReduce abstracta, puede manejar objetos Phyton de carácter complejo, disponible para flujos de trabajo MapReduce de pasos múltiples, buenos resultados en integración AWS y solidez documental, que apoyan esta alternativa que, además cuenta con un excelente nivel de desarrollo. Todo lo que necesitas saber sobre mrjob aquí.

  •  dumbo: trata de asimilarse a mrjob (en capacidad de abstracción, nivel de complejidad y simultaneidad de ejecución disponible) pero su nivel de desarrollo no puede compararse, lo mismo que sucede con la documentación relacionada, que carece de completitud y solidez. Si se elige esta opción, es importante tener en cuenta que cada nodo requiere de instalación manual.

  •  hadoopy: una de sus características más significativas es que permite lanzar trabajos de Phyton incluso en nodos que no cuentan con él, aunque su HBase de integración es aún experimental. Su principak punto débil es que no cuenta con comando de utilidad de línea, por lo que se hace necesario lanzar mrjob dentro de un programa Python para proceder. Accede a más información técnica sobre hadoopy en este enlace.

2. Hadoop Pipes

  •  luigi: idóneo para la gestión de flujos de trabajo, programación de actividades. Además se puede personalizar aunque se hace patente en muchos momentos la carencia de documentación. Descubre todos los detalles de la forma de trabajar de luigi en este link.

 

Hadoop Phyton: ¿qué estrategia de implementación me conviene más?

Según las recomendaciones de Uri Laserson, Hadoop streaming es la mejor opción de todas. Esta alternativa garantiza una menor sobrecarga y además su implementación es sencilla, dos aspectos a tener muy en cuenta a la hora de elegir.

Dentro de las diferentes posibilidades de implementación Hadoop que Phyton propone en modalidad streaming, mrjob parece la idónea. Sus puntos fuertes son:

  •  Cuenta con el respaldo de un buen desarrollo.

  •  Existe un nutrido volumen de documentación al respecto.

  •  Su riqueza de características la pone por delante de otras opciones con menos posibilidades, como hadoopy o dumbo.

  •  Presenta una buena integración con AWS.

Sin embargo, pese a que mrjob es la alternativa más recomendable para trabajos que requieran una mayor abstracción, para flujos de trabajo complicados es preferible optar por luigi, que de mejores resultados en este sentido y además cuenta con un buen nivel de desarrollo y tiene la ventaja de que es más generalista que el original Hadoop.

Para conocer más a fondo cada uno de los frameworks de Hadoop Python puede accederse a este enlace.

 

Post relacionados:

 

hadoop y el bigdata

Topics: Big Data