Apache Pig – Lectura de datos

En general, Apache Pig se ejecuta sobre Hadoop. Es una herramienta analítica que analiza grandes conjuntos de datos que existen en HORAAdoop File Ssistema. Para analizar datos usando Apache Pig, primero debemos cargar los datos en Apache Pig. Este capítulo explica cómo cargar datos en Apache Pig desde HDFS.

Preparando HDFS

En el modo MapReduce Pig, lee (carga) datos de HDFS y guarda los resultados en HDFS. Por lo tanto, iniciemos HDFS y creemos los siguientes datos de muestra en HDFS.

Identificación del Estudiante Nombre Apellido Teléfono Pueblo
001 Rajiv Reddy 9848022337 Hyderabad
002 Siddarth Battacharya 9848022338 Calcuta
003 Rajesh Hannah 9848022339 Delhi
004 Preethi Agarwal 9848022330 Pune
005 Trupthi Mohanty 9848022336 Bhuvaneswar
006 Archana Mishra 9848022335 Chennai

El conjunto de datos anterior contiene datos personales como identificación, nombre, apellido, número de teléfono y ciudad, seis estudiantes.

Paso 1. Prueba de Hadoop

En primer lugar, pruebe la instalación con el comando de versión de Hadoop como se muestra a continuación.

$ hadoop version

Si su sistema contiene Hadoop, y si establece la variable PATH, obtendrá el siguiente resultado:

Hadoop 2.6.0 
Subversion https://git-wip-us.apache.org/repos/asf/hadoop.git -r 
e3496499ecb8d220fba99dc5ed4c99c8f9e33bb1 
Compiled by jenkins on 2014-11-13T21:10Z 
Compiled with protoc 2.5.0 
From source with checksum 18e43357c8f927c0695f1e9522859d6a 
This command was run using /home/Hadoop/hadoop/share/hadoop/common/hadoop
common-2.6.0.jar

Paso 2: inicie HDFS

Revisar sbin Directorio de Hadoop e inicio hilo y Hadoop dfs (sistema de archivos distribuido) como se muestra a continuación.

cd /$Hadoop_Home/sbin/ 
$ start-dfs.sh 
localhost: starting namenode, logging to /home/Hadoop/hadoop/logs/hadoopHadoop-namenode-localhost.localdomain.out 
localhost: starting datanode, logging to /home/Hadoop/hadoop/logs/hadoopHadoop-datanode-localhost.localdomain.out 
Starting secondary namenodes [0.0.0.0] 
starting secondarynamenode, logging to /home/Hadoop/hadoop/logs/hadoop-Hadoopsecondarynamenode-localhost.localdomain.out
 
$ start-yarn.sh 
starting yarn daemons 
starting resourcemanager, logging to /home/Hadoop/hadoop/logs/yarn-Hadoopresourcemanager-localhost.localdomain.out 
localhost: starting nodemanager, logging to /home/Hadoop/hadoop/logs/yarnHadoop-nodemanager-localhost.localdomain.out

Paso 3. Cree un directorio en HDFS

En Hadoop DFS, puede crear directorios usando el comando mkdir… Cree un nuevo directorio en HDFS llamado Pig_Data en la ruta deseada como se muestra a continuación.

$cd /$Hadoop_Home/bin/ 
$ hdfs dfs -mkdir hdfs://localhost:9000/Pig_Data 

Paso 4: colocar datos en HDFS

El archivo de entrada Pig contiene cada tupla / entrada en líneas separadas. Y las entidades de registro están separadas por un separador (en nuestro ejemplo, usamos «,»).

En el sistema de archivos local, cree un archivo de entrada student_data.txt que contiene datos como se muestra a continuación.

001,Rajiv,Reddy,9848022337,Hyderabad
002,siddarth,Battacharya,9848022338,Kolkata
003,Rajesh,Khanna,9848022339,Delhi
004,Preethi,Agarwal,9848022330,Pune
005,Trupthi,Mohanthy,9848022336,Bhuwaneshwar
006,Archana,Mishra,9848022335,Chennai.

Ahora mueva el archivo del sistema de archivos local a HDFS usando poner Como se muestra abajo. (Puedes usar copyFromLocal equipo también.)

$ cd $HADOOP_HOME/bin 
$ hdfs dfs -put /home/Hadoop/Pig/Pig_Data/student_data.txt dfs://localhost:9000/pig_data/

Chequeo de archivo

puedes usar Gato para comprobar si el archivo se ha movido a HDFS como se muestra a continuación.

$ cd $HADOOP_HOME/bin
$ hdfs dfs -cat hdfs://localhost:9000/pig_data/student_data.txt

Salida

Puede ver el contenido del archivo como se muestra a continuación.

15/10/01 12:16:55 WARN util.NativeCodeLoader: Unable to load native-hadoop
library for your platform... using builtin-java classes where applicable
  
001,Rajiv,Reddy,9848022337,Hyderabad
002,siddarth,Battacharya,9848022338,Kolkata
003,Rajesh,Khanna,9848022339,Delhi
004,Preethi,Agarwal,9848022330,Pune
005,Trupthi,Mohanthy,9848022336,Bhuwaneshwar
006,Archana,Mishra,9848022335,Chennai

Operador de carga

Puede cargar datos en Apache Pig desde el sistema de archivos (HDFS / Local) usando CARGA operador Pig Latin

Sintaxis

El operador de carga consta de dos partes, separadas por el operador «=». En el lado izquierdo, debe especificar el nombre de la relación. dónde queremos almacenar datos y en el lado derecho tenemos que definir como almacenamos datos. A continuación se muestra la sintaxis Carga operador.

Relation_name = LOAD 'Input file path' USING function as schema;

Dónde:

  • nombre_relación – Tenemos que indicar la relación en la que queremos almacenar los datos.

  • Ruta del archivo de entrada – Tenemos que mencionar el directorio HDFS donde se almacena el archivo. (En modo MapReduce)

  • función – Tenemos que elegir una función del conjunto de funciones de descarga que proporciona Apache Pig (BinStorage, JsonLoader, PigStorage, TextLoader).

  • Esquema – Tenemos que definir el esquema de datos. Podemos definir el esquema requerido de la siguiente manera:

(column1 : data type, column2 : data type, column3 : data type);

Nota – Cargamos datos sin especificar esquema. En este caso, las columnas se direccionarán como $ 01, $ 02, etc. (Verificar).

Ejemplo

Como ejemplo, carguemos los datos en student_data.txt en Pig en un esquema llamado Alumno usando CARGA equipo.

Ejecutar caparazón de cerdo

En primer lugar, abra una terminal de Linux. Ejecute el contenedor Pig Grunt en modo MapReduce como se muestra a continuación.

$ Pig –x mapreduce

Lanzará el caparazón Pig Grunt como se muestra a continuación.

15/10/01 12:33:37 INFO pig.ExecTypeProvider: Trying ExecType : LOCAL
15/10/01 12:33:37 INFO pig.ExecTypeProvider: Trying ExecType : MAPREDUCE
15/10/01 12:33:37 INFO pig.ExecTypeProvider: Picked MAPREDUCE as the ExecType

2015-10-01 12:33:38,080 [main] INFO  org.apache.pig.Main - Apache Pig version 0.15.0 (r1682971) compiled Jun 01 2015, 11:44:35
2015-10-01 12:33:38,080 [main] INFO  org.apache.pig.Main - Logging error messages to: /home/Hadoop/pig_1443683018078.log
2015-10-01 12:33:38,242 [main] INFO  org.apache.pig.impl.util.Utils - Default bootup file /home/Hadoop/.pigbootup not found
  
2015-10-01 12:33:39,630 [main]
INFO org.apache.pig.backend.hadoop.executionengine.HExecutionEngine - Connecting to hadoop file system at: hdfs://localhost:9000
 
grunt>

Ejecute la declaración de carga

Ahora cargue los datos del archivo student_data.txt en Pig ejecutando la siguiente instrucción Pig Latin en el shell Grunt.

grunt> student = LOAD 'hdfs://localhost:9000/pig_data/student_data.txt' 
   USING PigStorage(',')
   as ( id:int, firstname:chararray, lastname:chararray, phone:chararray, 
   city:chararray );

La siguiente es una descripción de la declaración anterior.

Nombre de la relación Guardamos los datos en el esquema. aprendiz
Ruta del archivo de entrada Leer datos de un archivo student_data.txt, que se encuentra en el directorio / pig_data / HDFS.
Función de almacenamiento Nosotros usamos PigStorage () función. Carga y almacena datos en forma de archivos de texto estructurados. Se requiere un delimitador como parámetro, con el que se separa cada entidad de la tupla. El valor predeterminado es ‘ t’.
esquema

Guardamos los datos usando el siguiente esquema.

columna Identificación nombre apellido Teléfono pueblo
tipo de datos En t matriz de caracteres matriz de caracteres matriz de caracteres matriz de caracteres

Nota – Simplemente cargará los datos en la relación especificada en Pig. Para comprobar la ejecución que debes usar se tratan en los capítulos siguientes.

🚫