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.
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.
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
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
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
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/
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
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
Puede cargar datos en Apache Pig desde el sistema de archivos (HDFS / Local) usando CARGA operador Pig Latin…
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).
Como ejemplo, carguemos los datos en student_data.txt en Pig en un esquema llamado Alumno usando CARGA equipo.
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>
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.
|
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.
🚫