Cerdo apache


Apache Pig [1] es una plataforma de alto nivel para crear programas que se ejecutan en Apache Hadoop . El idioma de esta plataforma se llama Pig Latin . [1] Pig puede ejecutar sus trabajos de Hadoop en MapReduce , Apache Tez o Apache Spark . [2] Pig Latin abstrae la programación del idioma Java MapReduce en una notación que hace que la programación MapReduce sea de alto nivel, similar a la de SQL para sistemas de administración de bases de datos relacionales . Pig Latin se puede ampliar utilizando funciones definidas por el usuario (UDF) que el usuario puede escribir en Java, Python ,JavaScript , Ruby o Groovy [3] y luego llamar directamente desde el idioma.

Apache Pig se desarrolló originalmente [4] en Yahoo Research alrededor de 2006 para que los investigadores tuvieran una forma ad hoc de crear y ejecutar trabajos de MapReduce en conjuntos de datos muy grandes. En 2007, [5] se trasladó a Apache Software Foundation .

En cuanto al nombre del lenguaje de programación Pig, el nombre se eligió de manera arbitraria y se mantuvo porque era memorable, fácil de deletrear y por novedad. [7] [8] [9]

La historia cuenta que los investigadores que trabajaron en el proyecto inicialmente se refirieron a él simplemente como "el lenguaje". Eventualmente necesitaron llamarlo de alguna manera. En la parte superior de su cabeza, un investigador sugirió Pig, y el nombre se quedó. Es peculiar pero memorable y fácil de deletrear. Si bien algunos han insinuado que el nombre suena tímido o tonto, nos ha proporcionado una nomenclatura entretenida, como Pig Latin para el idioma, Grunt para el shell y PiggyBank para el repositorio compartido similar a CPAN.

El programa anterior generará tareas ejecutables en paralelo que se pueden distribuir en varias máquinas en un clúster de Hadoop para contar la cantidad de palabras en un conjunto de datos, como todas las páginas web en Internet.

Por otro lado, se ha argumentado que los DBMS son sustancialmente más rápidos que el sistema MapReduce una vez que se cargan los datos, pero que cargar los datos lleva mucho más tiempo en los sistemas de bases de datos. También se ha argumentado que los RDBMS ofrecen soporte listo para usar para el almacenamiento de columnas, trabajo con datos comprimidos, índices para un acceso eficiente a los datos aleatorios y tolerancia a fallas a nivel de transacción. [10]