perldoop

Execución eficiente de scripts Perl en clústeres Hadoop

De que trata Perldoop?

Perldoop é unha nova ferramenta desenvolvida por investigadores da Universidade de Santiago de Compostela (España) no marco do proxecto "High Performance Computing for Natural Language Processing -- HPCNLP". Esta ferramenta traduce automaticamente scripts Perl preparados para Hadoop aos seus equivalentes en Java, que se poden executar directamente nun clúster de Hadoop e melloran significativamente o seu rendemento.

Hadoop ofrece unha utilidade para executar aplicacións escritas en linguaxes distintas de Java, coñecida como Hadoop Streaming. O único requisito para utilizar esta ferramenta é que as aplicacións lean de stdin e escriban en stdout. Aínda que Hadoop Streaming é unha ferramenta moi útil, detectáronse importantes degradacións do rendemento ao utilizalo, en comparación co código Java para Hadoop. Só no caso de tarefas con gran intensidade computacional e un tamaño reducido de entrada/saída, o rendemento de Hadoop Streaming é ás veces mellor, debido ao uso dunha linguaxe de programación máis eficiente.

Polo tanto, a mellor opción en termos de rendemento é desenvolver aplicacións para Hadoop en Java. Non obstante, traducir código Perl a Java é unha tarefa longa e tediosa, especialmente cando as aplicacións conteñen moitas expresións regulares. Por este motivo, desenvolvemos a ferramenta Perldoop, que permite automatizar o proceso de tradución e aumentar o rendemento, a eficiencia e a produtividade.

O caso xeral de traducir automaticamente código Perl arbitrario ao seu equivalente en Java é un problema moi difícil, debido ás características de ambas as linguaxes. Cómpre sinalar que o noso obxectivo neste traballo non era desenvolver unha ferramenta potente que permitise traducir automaticamente a Java calquera código Perl existente, senón unha ferramenta sinxela e fácil de usar que recibise como entrada código Perl escrito para Hadoop Streaming e producise 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.