Primeros pasos con apache-pig

Instalación o configuración

linux

Requisitos (r0.16.0)

Obligatorio

Según la documentación actual de Apache-Pig, solo es compatible con los sistemas operativos Unix y Windows.

  • Hadoop 0.23.X, 1.X o 2.X
  • Java 1.6 o versiones posteriores instaladas y la variable de entorno JAVA_HOME establecida en el directorio de instalación de Java

Opcional

  • Python 2.7 o más (UDF de Python)
  • Ant 1.8 (para compilaciones)

Descargue la última versión de Pig

Descargue la última versión de pig desde http://pig.apache.org/releases.html#Download

Instalación

mkdir Pig
cd Downloads/ 
tar zxvf pig-(latest-version).tar.gz 
tar zxvf pig-(latest-version).tar.gz 
mv pig-(latest-version).tar.gz/* /home/Pig/

Configuración

Después de instalar Apache Pig, tenemos que configurarlo.

Abra el archivo .bashrc

vim ~/.bashrc

En el archivo .bashrc, configure las siguientes variables:

export PIG_HOME = /home/Pig
export PATH  = PATH:/home/Pig/bin

guarde el archivo y vuelva a cargar bashrc en el entorno usando

. ~/.bashrc

Verificando la versión Pig

pig –version 

Si la instalación es exitosa, el comando anterior muestra el número de versión de Pig instalado.

Instalación de cerdo de prueba

pig -h

Esto debería mostrar todos los comandos posibles asociados con pig.

Su cerdo ahora está instalado localmente y puede ejecutarlo usando parámetros locales como

pig -x local

Conectando a Hadoop

Si Hadoop1.x o 2.x está instalado en el clúster y la variable de entorno HADOOP_HOME está configurada.

puede conectar pig a Hadoop agregando la línea en .bashrc como antes

export PIG_CLASSPATH = $HADOOP_HOME/conf

Cerdo corriendo

Modos de ejecución

Puede ejecutar Pig usando el comando pig (bin/pig) o ejecutando el archivo jar (java -cp pig.jar)

Los scripts PIG se pueden ejecutar en 3 modos diferentes:

  • Modo local

      pig -x local ...
    
  • Modo Mappreduce (modo predeterminado)

      pig -x mapreduce ...
           (or)
      pig ...
    
  • Modo local Tez

      pig -x tez ...
    

Modo interactivo

Pig se puede ejecutar en modo interactivo usando el shell Grunt. Las declaraciones y comandos de Pig Latin se pueden ingresar de forma interactiva en este shell.

Ejemplo

$ pig -x <mode> <enter>
grunt>

Mode puede ser uno de los modos de ejecución como se explica en la sección anterior.

Por lotes

Pig también se puede ejecutar en modo por lotes. Aquí se proporciona un archivo .pig que contiene una lista de sentencias y comandos de pig.

Ejemplo

$ pig -x <mode> <script.pig>
grunt>

Del mismo modo, Mode puede ser uno de los modos de ejecución, como se explicó en la sección anterior.

Ejemplo de conteo de palabras en Pig

Fichero de entrada

Mary had a little lamb
its fleece was white as snow
and everywhere that Mary went
the lamb was sure to go.

Código de conteo de palabras de cerdo

-- Load input from the file named Mary, and call the single
-- field in the record 'line'.
input = load 'mary' as (line);

-- TOKENIZE splits the line into a field for each word.
-- flatten will take the collection of records returned by
-- TOKENIZE and produce a separate record for each one, calling the single
-- field in the record word.
words = foreach input generate flatten(TOKENIZE(line)) as word;

-- Now group them together by each word.
grpd = group words by word;

-- Count them.
cntd = foreach grpd generate group, COUNT(words);

-- Print out the results.
dump cntd;

Producción

Mary,2
had,1
a,1
little,1
lamb,2
its,1
fleece,1
was,2
white,1
as,1
snow,1
and,1
everywhere,1
that,1
went,1
the,1
sure,1
to,1
go,1

¿Qué es el cerdo?

Pig proporciona un motor para ejecutar flujos de datos en paralelo en Hadoop. Incluye un lenguaje, Pig Latin, para expresar estos flujos de datos. Pig Latin incluye operadores para muchas de las operaciones de datos tradicionales (unir, clasificar, filtrar, etc.), así como la capacidad de usuarios para desarrollar sus propias funciones de lectura, procesamiento y escritura de datos. Pig es un proyecto de código abierto de Apache. Esto significa que los usuarios pueden descargarlo como fuente. o binario, usarlo para sí mismos, contribuir a él y, según los términos de Apache Licencia: utilícela en sus productos y cámbiela como mejor le parezca.