Tutorial de Hadoop Pig: ¿Qué es Apache Pig? Architectura, ejemplo
Comenzaremos con la introducción a Pig.
¿Qué es el cerdo apache?
Pig es un lenguaje de programación de alto nivel útil para analizar grandes conjuntos de datos. Pig fue el resultado del esfuerzo de desarrollo de Yahoo!
En un marco MapReduce, los programas deben traducirse en una serie de etapas Map y Reduce. Sin embargo, este no es un modelo de programación con el que los analistas de datos estén familiarizados. Entonces, para cerrar esta brecha, se construyó una abstracción llamada Pig sobre Hadoop.
Apache Pig permite a las personas centrarse más en analizar conjuntos de datos masivos y dedicar menos tiempo a escribir programas Map-Reduce. Similar a los cerdos, que comen cualquier cosa, el cerdo apache lenguaje de programación está diseñado para trabajar con cualquier tipo de datos. ¡Por eso el nombre, Cerdo!

En este tutorial de Apache Pig para principiantes, aprenderá:
- ¿Qué es PIG?
- Cerdo Architectura
- Requisitos previos
- Cómo descargar e instalar Pig
- Ejemplo de script de cerdo
Cerdo Architectura
El ArchiLa tecnología de Pig consta de dos componentes:
-
Jerga, que es un idioma
-
Un entorno de ejecución, para ejecutar programas PigLatin.
Un programa Pig Latin consiste en una serie de operaciones o transformaciones que se aplican a los datos de entrada para producir una salida. Estas operaciones describen un flujo de datos que se traduce en una representación ejecutable mediante el entorno de ejecución Pig de Hadoop. Debajo, los resultados de estas transformaciones son una serie de trabajos de MapReduce que un programador desconoce. Por lo tanto, en cierto modo, Pig en Hadoop permite al programador centrarse en los datos en lugar de en la naturaleza de la ejecución.
PigLatin es un lenguaje relativamente rígido que utiliza palabras clave familiares del procesamiento de datos, por ejemplo, unirse, agrupar y filtrar.
Modos de ejecución:
Pig en Hadoop tiene dos modos de ejecución:
-
Modo local: en este modo, el lenguaje Hadoop Pig se ejecuta en un solo JVM y hace uso del sistema de archivos local. Este modo es adecuado sólo para el análisis de pequeños conjuntos de datos utilizando Pig en Hadoop.
-
Modo de reducción de mapas: en este modo, las consultas escritas en Pig Latin se traducen a MapReduce Los trabajos se ejecutan en un clúster Hadoop (el clúster puede ser pseudodistribuido o totalmente distribuido). El modo MapReduce con el clúster totalmente distribuido es útil para ejecutar Pig en grandes conjuntos de datos.
Cómo descargar e instalar Pig
Ahora, en este tutorial de Apache Pig, aprenderemos cómo descargar e instalar Pig:
Antes de comenzar con el proceso real, asegúrese de tener Hadoop instalado. Cambie el usuario a 'hduser' (id utilizado durante la configuración de Hadoop, puede cambiar al ID de usuario utilizado durante la configuración de Hadoop)
Paso 1) Descargue la última versión estable de Pig Hadoop desde cualquiera de los sitios espejo disponibles en
http://pig.apache.org/releases.html
Seleccionar tar.gz (y no src.tar.gz) archivo para descargar.
Paso 2) Una vez que se complete la descarga, navegue hasta el directorio que contiene el archivo tar descargado y mueva el archivo tar a la ubicación donde desea configurar Pig Hadoop. En este caso, nos moveremos a /usr/local
Mover a un directorio que contenga archivos Pig Hadoop
cd /usr/local
Extraiga el contenido del archivo tar como se muestra a continuación
sudo tar -xvf pig-0.12.1.tar.gz
Paso 3). modificar ~ / .bashrc para agregar variables de entorno relacionadas con Pig
Abierto ~ / .bashrc archivo en cualquier editor de texto de su elección y realice las siguientes modificaciones:
export PIG_HOME=<Installation directory of Pig> export PATH=$PIG_HOME/bin:$HADOOP_HOME/bin:$PATH
Paso 4) Ahora, obtenga la configuración de este entorno usando el siguiente comando
. ~/.bashrc
Paso 5) Necesitamos recompilar CERDO para apoyar Hadoop 2.2.0
Estos son los pasos para hacer esto.
Ir al directorio de inicio de PIG
cd $PIG_HOME
Instalar hormiga
sudo apt-get install ant
Nota: La descarga comenzará y consumirá tiempo según su velocidad de Internet.
Recompilar cerdo
sudo ant clean jar-all -Dhadoopversion=23
Tenga en cuenta que en este proceso de recompilación se descargan varios componentes. Entonces, un sistema debe estar conectado a Internet.
Además, en caso de que este proceso se atasque en algún lugar y no vea ningún movimiento en el símbolo del sistema durante más de 20 minutos, presione Ctrl + c y vuelva a ejecutar el mismo comando.
En nuestro caso, son 20 minutos.
Paso 6) Prueba el Cerdo instalación usando el comando
pig -help
Ejemplo de script de cerdo
Usaremos Pig Scripts para encontrar la cantidad de productos vendidos en cada país.
Entrada: Nuestro conjunto de datos de entrada es un archivo CSV, VentasEne2009.csv
Paso 1) Iniciar Hadoop
$HADOOP_HOME/sbin/start-dfs.sh
$HADOOP_HOME/sbin/start-yarn.sh
Paso 2) Pig en Big Data toma un archivo de HDFS en modo MapReduce y almacena los resultados en HDFS.
Copiar archivo VentasEne2009.csv (almacenado en el sistema de archivos local, ~/input/SalesJan2009.csv) al directorio principal de HDFS (sistema de archivos distribuido Hadoop)
Aquí, en este ejemplo de Apache Pig, el archivo está en la entrada de Carpeta. Si el archivo está almacenado en alguna otra ubicación, proporcione ese nombre.
$HADOOP_HOME/bin/hdfs dfs -copyFromLocal ~/input/SalesJan2009.csv /
Verifique si un archivo realmente se copia o no.
$HADOOP_HOME/bin/hdfs dfs -ls /
Paso 3) Configuración de cerdo
Primero, navega hasta $PIG_HOME/conf
cd $PIG_HOME/conf
sudo cp pig.properties pig.properties.original
Abierto propiedades.de.cerdo usando un editor de texto de su elección y especifique la ruta del archivo de registro usando cerdo.archivo de registro
sudo gedit pig.properties
Loger utilizará este archivo para registrar errores.
Paso 4) Ejecute el comando "pig" que iniciará el símbolo del sistema de Pig, que es un shell interactivo de consultas de Pig.
pig
Paso 5)En el símbolo del sistema Grunt para Pig, ejecute los siguientes comandos de Pig en orden.
— A. Cargue el archivo que contiene los datos.
salesTable = LOAD '/SalesJan2009.csv' USING PigStorage(',') AS (Transaction_date:chararray,Product:chararray,Price:chararray,Payment_Type:chararray,Name:chararray,City:chararray,State:chararray,Country:chararray,Account_Created:chararray,Last_Login:chararray,Latitude:chararray,Longitude:chararray);
Presione Enter después de este comando.
— B. Agrupar datos por campo País
GroupByCountry = GROUP salesTable BY Country;
— C. Para cada tupla en 'GrupoPorPaís', genera la cadena resultante del formulario-> Nombre del País: No. de productos vendidos
CountByCountry = FOREACH GroupByCountry GENERATE CONCAT((chararray)$0,CONCAT(':',(chararray)COUNT($1)));
Presione Enter después de este comando.
— D. Almacenar los resultados de Data Flow en el directorio 'ventas_salida_cerdo' en HDFS
STORE CountByCountry INTO 'pig_output_sales' USING PigStorage('\t');
Este comando tardará un tiempo en ejecutarse. Una vez hecho, deberías ver la siguiente pantalla
Paso 6) El resultado se puede ver a través de la interfaz de comando como,
$HADOOP_HOME/bin/hdfs dfs -cat pig_output_sales/part-r-00000
Los resultados también se pueden ver a través de una interfaz web como:
Resultados a través de una interfaz web-
Abierto http://localhost:50070/
en un navegador web
Ahora selecciona 'Explorar el sistema de archivos' y navegar hasta /usuario/hduser/pig_output_sales
Abierto parte-r-00000