perldoop
Ejecución eficiente de scripts Perl en clústeres Hadoop
¿De qué trata Perldoop?
Perldoop es una nueva herramienta desarrollada por investigadores de la Universidad de Santiago de Compostela (España) en el marco del proyecto "High Performance Computing for Natural Language Processing -- HPCNLP". Esta herramienta traduce automáticamente scripts Perl preparados para Hadoop a sus equivalentes en Java, que se pueden ejecutar directamente en un clúster de Hadoop y mejoran significativamente su rendimiento.
Hadoop ofrece una utilidad para ejecutar aplicaciones escritas en lenguajes distintos de Java, conocida como Hadoop Streaming. El único requisito para utilizar esta herramienta es que las aplicaciones lean de stdin y escriban en stdout. Aunque Hadoop Streaming es una herramienta muy útil, se detectaron importantes degradaciones del rendimiento al utilizarlo, en comparación con el código Java para Hadoop. Solo en el caso de tareas con gran intensidad computacional y un tamaño reducido de entrada/salida, el rendimiento de Hadoop Streaming es a veces mejor debido al uso de un lenguaje de programación más eficiente.
Por lo tanto, la mejor opción en términos de rendimiento es desarrollar aplicaciones para Hadoop en Java. Sin embargo, traducir código Perl a Java es una tarea larga y tediosa, especialmente cuando las aplicaciones contienen muchas expresiones regulares. Por este motivo, desarrollamos la herramienta Perldoop, que permite automatizar el proceso de traducción y aumentar el rendimiento, la eficiencia y la productividad.
El caso general de traducir automáticamente código Perl arbitrario a su equivalente en Java es un problema muy difícil, debido a las características de ambos lenguajes. Cabe señalar que nuestro objetivo en este trabajo no era desarrollar una herramienta potente que permitiera traducir automáticamente a Java cualquier código Perl existente, sino una herramienta sencilla y fácil de usar que recibiera como entrada código Perl escrito para Hadoop Streaming y produjera código Java preparado para Hadoop.
J. M. Abuin, J. C. Pichel, T. F. Pena, P. Gamallo and M. Garcia. "Perldoop: Efficient Execution of Perl Scripts on Hadoop Clusters", IEEE International Conference on Big Data, pp. 766-771, 2014.