Apache Pig – Arquitectura

El lenguaje utilizado para analizar datos en Hadoop con Pig se conoce como Pig Latin… Es un lenguaje de procesamiento de datos de alto nivel que proporciona un amplio conjunto de tipos de datos y operadores para realizar diversas operaciones con los datos.

Para lograr una tarea específica, los programadores de Pig, los programadores deben escribir scripts de Pig usando Pig Latin y ejecutarlos usando cualquiera de los mecanismos de ejecución (Grunt Shell, UDFs, Embedded). Una vez ejecutados, estos scripts pasarán por una serie de transformaciones aplicadas por Pig Framework para lograr el resultado deseado.

Internamente, Apache Pig traduce estos scripts en una serie de trabajos MapReduce y así simplifica el trabajo del programador. La arquitectura de Apache Pig se muestra a continuación.

Arquitectura Apache Pig

Componentes de Apache Pig

Como se muestra en la figura, hay varios componentes en el marco de Apache Pig. Echemos un vistazo a los componentes principales.

Analizador

Los scripts Pig son analizados inicialmente por un analizador. Comprueba la sintaxis del script, realiza la comprobación de tipos y otras comprobaciones diversas. El resultado del análisis será un DAG (Gráfico acíclico dirigido) que representa los operadores Pig Latin y Boolean.

En el DAG, las instrucciones lógicas del script se representan como nodos y los flujos de datos se representan como bordes.

Optimizador

El plan lógico (DAG) se pasa al optimizador lógico, que realiza optimizaciones lógicas como la proyección y el empuje.

Compilador

El compilador compila el plan lógico optimizado en una serie de trabajos MapReduce.

Mecanismo de ejecución

Finalmente, los trabajos de MapReduce se envían a Hadoop en orden ordenado. Finalmente, estos trabajos de MapReduce se ejecutan en Hadoop, lo que da los resultados deseados.

Modelo de datos de Pig Latin

El modelo de datos Pig Latin está completamente anidado y permite tipos de datos complejos no atómicos, como mapa y cortejo… A continuación se muestra una representación esquemática del modelo de datos Pig Latin.

Modelo de datos

Átomo

Cualquier valor individual en Pig Latin, independientemente del tipo de datos, se llama Átomo… Se almacena como una cadena y se puede usar tanto como una cadena como como un número. int, long, float, double, chararray y bytearray son los valores atómicos de Pig. Un dato o valor atómico simple se conoce como campo

Ejemplo – «raja» o «30»

Tupla

Un registro que consta de un conjunto ordenado de campos se denomina tupla; los campos pueden ser de cualquier tipo. Una tupla es como una fila en una tabla DBMS.

Ejemplo Р(Raja, 30 a̱os)

Bolsa

Una bolsa es una colección desordenada de tuplas. En otras palabras, una colección de tuplas (no únicas) se denomina bolsa. Cada tupla puede tener cualquier número de campos (esquema flexible). La bolsa se indica con el símbolo ‘{}’. Es similar a una tabla en un RDBMS, pero a diferencia de una tabla en un RDBMS, no es necesario que cada tupla contenga el mismo número de campos o que los campos en la misma posición (columna) tengan el mismo tipo.

Ejemplo – {(Raja, 30), (Mohammad, 45)}

La bolsa puede ser una caja en relación; en este contexto se conoce como bolsa interior

Ejemplo – {Raja, 30 años, {9848022338, [email protected],}}

mapa

Un mapa (o mapa de datos) es una colección de pares clave-valor. EN llave debe ser de tipo chararray y único. EN agradecer puede ser de cualquier tipo. Se presenta ‘[]’

Ejemplo – [name#Raja, age#30]

Comunicación

Una relación es una colección de tuplas. Las relaciones en Pig Latin no están ordenadas (no hay garantía de que las tuplas se procesen en ningún orden en particular).

🚫