Apache Pig - Ejecución
En el capítulo anterior, explicamos cómo instalar Apache Pig. En este capítulo, discutiremos cómo ejecutar Apache Pig.
Modos de ejecución de Apache Pig
Puede ejecutar Apache Pig en dos modos, a saber, Local Mode y HDFS mode.
Modo local
En este modo, todos los archivos se instalan y ejecutan desde su host local y sistema de archivos local. No es necesario Hadoop o HDFS. Este modo se utiliza generalmente con fines de prueba.
Modo MapReduce
El modo MapReduce es donde cargamos o procesamos los datos que existen en el sistema de archivos Hadoop (HDFS) usando Apache Pig. En este modo, siempre que ejecutamos las declaraciones Pig Latin para procesar los datos, se invoca un trabajo MapReduce en el back-end para realizar una operación particular en los datos que existen en el HDFS.
Mecanismos de ejecución de Apache Pig
Los scripts de Apache Pig se pueden ejecutar de tres formas, a saber, modo interactivo, modo por lotes y modo incrustado.
Interactive Mode(Grunt shell): puede ejecutar Apache Pig en modo interactivo utilizando el Grunt shell. En este shell, puede ingresar las declaraciones Pig Latin y obtener el resultado (usando el operador Dump).
Batch Mode (Script): puede ejecutar Apache Pig en modo Batch escribiendo el script Pig Latin en un solo archivo con .pig extensión.
Embedded Mode (UDF): Apache Pig proporciona la disposición de definir nuestras propias funciones (User Dafinado Ffunciones) en lenguajes de programación como Java, y usándolos en nuestro script.
Invocación del Grunt Shell
Puede invocar el shell Grunt en el modo deseado (local / MapReduce) usando el −x opción como se muestra a continuación.
Modo local | Modo MapReduce |
---|---|
Command − $ ./pig –x local |
Command − $ ./pig -x mapreduce |
Output - |
Output - |
Cualquiera de estos comandos le brinda el indicador de shell Grunt como se muestra a continuación.
grunt>
Puede salir del shell Grunt usando ‘ctrl + d’.
Después de invocar el shell Grunt, puede ejecutar un script de Pig ingresando directamente las declaraciones de Pig Latin en él.
grunt> customers = LOAD 'customers.txt' USING PigStorage(',');
Ejecutar Apache Pig en modo por lotes
Puede escribir un script de Pig Latin completo en un archivo y ejecutarlo usando el –x command. Supongamos que tenemos un script de Pig en un archivo llamadosample_script.pig Como se muestra abajo.
Sample_script.pig
student = LOAD 'hdfs://localhost:9000/pig_data/student.txt' USING
PigStorage(',') as (id:int,name:chararray,city:chararray);
Dump student;
Ahora, puede ejecutar el script en el archivo anterior como se muestra a continuación.
Modo local | Modo MapReduce |
---|---|
$ cerdo -x local Sample_script.pig | $ cerdo -x mapreduce Sample_script.pig |
Note - Discutiremos en detalle cómo ejecutar un script de Pig en Bach mode y en embedded mode en los capítulos siguientes.