0% encontró este documento útil (0 votos)
28 vistas62 páginas

Agenda: Objetivos Motivación PIG Ejercicio Hive Ejercicio Conclusiones y Recomendaciones

Cargado por

Byron Paul Huera
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
28 vistas62 páginas

Agenda: Objetivos Motivación PIG Ejercicio Hive Ejercicio Conclusiones y Recomendaciones

Cargado por

Byron Paul Huera
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd

Agenda

• Objetivos
• Motivación
• PIG
• Ejercicio
• HIVE
• Ejercicio
• Conclusiones y recomendaciones
Agenda
• Objetivos
• Motivación
• PIG
• Ejercicio
• HIVE
• Ejercicio
• Conclusiones y recomendaciones
Objetivos webinar
• Entender el funcionamiento de PIG y HIVE
• Realizar un ejercicio ilustrativo
Agenda
• Objetivos
• Motivación
• PIG
• Ejercicio
• HIVE
• Ejercicio
• Conclusiones y recomendaciones
Agenda
• Objetivos
• Motivación
• PIG
• Ejercicio
• HIVE
• Ejercicio
• Conclusiones y recomendaciones
Pig
• Apache Pig es una plataforma para analizar grandes conjuntos de datos que
consta de un lenguaje de alto nivel para expresar programas de análisis de datos,
junto con una infraestructura para evaluar estos programas.
• La propiedad más destacada de los programas Pig es que su estructura es
susceptible de una paralelización sustancial, lo que a su vez les permite manejar
conjuntos de datos muy grandes.
• En la actualidad, la capa de infraestructura de Pig consiste en un compilador que
produce secuencias de programas Map-Reduce, para los cuales ya existen
implementaciones paralelas a gran escala (por ejemplo, el subproyecto Hadoop).
• La capa de lenguaje de Pig actualmente consiste en un lenguaje textual llamado Pig
Latin
Pig - Características
• Hadoop Pig no es más que una abstracción sobre MapReduce. Si
bien se trata de analizar grandes conjuntos de datos, así como de
representarlos como flujos de datos, utilizamos Apache Pig.
Generalmente, lo usamos con Hadoop. Al usar Pig, podemos realizar
todas las operaciones de manipulación de datos en Hadoop.
• Pig ofrece un lenguaje de alto nivel para escribir programas de
análisis de datos que llamamos Pig Latin. Una de las principales
ventajas de este lenguaje es que ofrece varios operadores. A través
de ellos, los programadores pueden desarrollar sus propias
funciones para leer, escribir y procesar datos.
Pig Latin
• El lenguaje de la plataforma Pig se conoce como Pig Latin y tiene las
siguientes características:
• Facilidad de programación. Se logra la ejecución paralela de tareas de
análisis de datos simples. Las tareas complejas compuestas por múltiples
transformaciones se codifican explícitamente como secuencias de flujo de
datos, lo que las hace fáciles de escribir, comprender y mantener.
• Oportunidades de optimización. La forma en que se codifican las tareas
permite al sistema optimizar su ejecución automáticamente, permitiendo al
usuario centrarse en la semántica en lugar de la eficiencia.
• Extensibilidad. Los usuarios pueden crear sus propias funciones para
realizar un procesamiento con fines especiales.
Historia de Pig
• Apache Pig se desarrolló como un proyecto de investigación, en 2006,
en Yahoo.
• Básicamente, para crear y ejecutar trabajos de MapReduce en cada
conjunto de datos que fue creado. Pig inició como proyecto de código
abierto, en 2007.
• La primera versión de Apache Pig salió en 2008.
• Es considerado un proyecto de nivel superior de Apache, en 2010.
• Lamentablemente su uso es muy limitado hoy en día, existen pocas
organizaciones que lo usan por ejemplo el mismo Yahoo
Para que se necesita PIG
• Sin tener que escribir códigos complejos en Java, utilizando Pig Latin,
los programadores pueden realizar tareas de MapReduce fácilmente.
• También ayuda a reducir la longitud de los códigos, ya que Pig utiliza
un enfoque de consultas múltiples. Entendamos con un ejemplo. Aquí,
una operación que nos obligaría a escribir 200 líneas de código (LoC) en
Java se puede realizar fácilmente escribiendo tan solo 10 LoC en Apache
Pig. Por lo tanto, muestra que Pig reduce el tiempo de desarrollo en casi
16 veces.
• Cuando está familiarizado con SQL, es fácil aprender Pig. Porque Pig
Latin es un lenguaje similar a SQL.
Instalación de PIG
• Para proceder a la instalación de PIG, hay que acceder a sus repositorios
de descargas, sin embargo en la máquina virtual tenemos el instalador.
https://pig.apache.org/releases.html#Download
• Para realizar la descarga desde la consola de Linux usaremos el
siguiente comando: wget
http://apache.rediris.es/pig/pig-0.16.0/pig-0.16.0.tar.gz
• Tras descargarlo, se debe descomprimir y mover al directorio de trabajo:
• sudo tar -xvf pig-0.16.0.tar.gz
• sudo mv pig-0.16.0 /home/bigdata/pig
• sudo rm pig-0.16.0.tar.gz
Acceso a pig shell
• Grunt es el shell de comandos de PIG.
• El acceso al shell se realiza escribiendo pig -x local , si se arranca en modo
local
• En modo Local: todos los scripts se ejecutarán en una máquina sin emplear
HDFS ni Map Reduce.
• El acceso al shell se realiza escribiendo pig -x mapreduce , si se arranca en
modo distribuido
• En modo distribuido: funciona en modo clúster con las ventajas de Hadoop.
• Como resultado muestra el prompt grunt.
• Para salir, hay que escribir quit o ejecutar Ctrl + D.
Agenda
• Objetivos
• Motivación
• PIG
• Ejercicio
• HIVE
• Ejercicio
• Conclusiones y recomendaciones
Ejercicio con PIG
• Una vez instalado y configurado Pig, vamos a realizar la práctica, para
lo cual creamos el ejercicio de ejemplo, asignamos permisos y
definimos el archivo a procesar. Se muestra un ejemplo de creación
de ficheros con los álbumes de la discografía de Pink Floyd y el puesto
que alcanzaron en las listas británicas y estadounidenses separados
por coma (,). Para ello, se deben ejecutar los siguientes comandos:
• sudo mkdir /home/bigdata/pig/ejemplos
• sudo chmod -R 777 /home/bigdata/pig/ejemplos
• sudo nano /home/bigdata/pig/ejemplos/discografia
Esto es lo que se ubica en el achivo
de discografía
1967,The Piper at the Gates of Dawn,131,6
1968,A Saucerful of Secrets,999,9
1969,Music from the Film More,153,9
1969,Ummagumma,74,5
1970,Atom Heart Mother,55,1
1972,Obscured by Clouds,46,6
1973,The Dark Side of the Moon,1,1
1975,Wish you Were Here,1,1
1977,Animals,3,2
1979,The Wall,1,3
1983,The Final Cut,6,1
1987,A Momentary Lapse of Reason,3,3
1994,The Division Bell,1,1
2014,The Endless River,3,1
• Debemos subir el archivo de discografía a HDFS
• Se debe ejecutar los siguientes comandos
Crea el directorio en hdfs
• hdfs dfs -mkdir /ejemplo
Copia el archivo discografía al directorio ejemplo en HDFS
• hdfs dfs -put /home/bigdata/pig/ejemplos/discografia /ejemplo
Lista el contenido del directorio ejemplo en HDFS
• hdfs dfs -ls /ejemplo
• Arrancamos pig en modo local con la siguiente sentencia
• pig -x local

Se está ejecutando pig y podemos comprobar el contenido del archivo con:


ls /home/bigdata/pig/ejemplos
cat /home/bigdata/pig/ejemplos/discografia
Cargamos el fichero discografía al alias discos mediante el comando:
• discos = load '/home/bigdata/pig/ejemplos/discografia' using PigStorage(',') as (anio, disco,
eeuu, uk);
• Mejor este comando: discos = load '/home/bigdata/pig/ejemplos/discografia' using
PigStorage(',') as (anio:int, disco:chararray, eeuu:int, uk:int);
Describimos la estructura
• describe discos
• illustrate discos (muestra un ejemplo)

Para los siguientes ejemplos cambiar el nivel de log a fatal (hay que salir
de grunt con el comando quit)
sudo nano conf/nolog.conf
Ubicamos en el archivo nolog.conf la configuración:
log4j.rootLogger=fatal
Se modifica el arranque de pig para indicarle qué fichero
de log debe utilizar.
pig -4 conf/nolog.conf -x local
Ejemplos usando comandos de pig
latin
• pig – x local
• Creamos un esquema llamado discos_sesenta donde aplicamos filtros
discos_sesenta = filter discos by anio >= 1960 and anio < 1970;
• El comando dump permite mostrar el esquema de los discos filtrados
• dump discos_sesenta

• Podemos aplicar otros sentencias por ejemplo group


• anio = group discos by anio;
• dump anio
• Si tenemos un grupo como el anio podemos realizar el siguiente
comando:
• ej_foreach = FOREACH anio GENERATE group,
COUNT(discos);
• dump ej_foreach;

• ej_foreach2 = FOREACH anio GENERATE $0, $1.disco;


• Si quiero mirar los discos del año 1969
• discos_1969 = filter discos by anio == 1969;
• Dump discos_1969

• COMANDO MAX
• A = GROUP discos ALL;
• Dump A;
• B = FOREACH A Generate MAX(discos.anio) AS max_val;

• Dump B;

Se puede revisar los distintos comandos en:


https://pig.apache.org/docs/r0.17.0/basic.html
EJEMPLO CON OTRO DATA SET
pig -4 conf/nolog.conf -x local
sudo nano ejemplos/group.txt
estudiantes= load 'ejemplos/group.txt' using PigStorage (',') as (nombre: chararray, edad:int);
describe estudiantes;
dump estudiantes;
edad= group estudiantes by edad;
describe edad;
dump edad;
illustrate edad;
ej_foreach = FOREACH edad GENERATE group, COUNT(estudiantes);
dump ej_foreach;
ej_foreach2 = FOREACH edad GENERATE $0, $1.nombre;
dump ej_foreach2;
Agenda
• Objetivos
• Motivación
• PIG
• Ejercicio
• HIVE
• Ejercicio
• Conclusiones y recomendaciones
HIVE
• Apache Hive es un sistema de almacenamiento de datos (data warehouse) construido sobre
Hadoop y se utiliza para analizar datos estructurados y semiestructurados.
• Hive abstrae la complejidad de Hadoop MapReduce.
• Proporciona un mecanismo para proyectar la estructura en los datos y realizar consultas
escritas en HQL (Hive Query Language) que son similares a las declaraciones SQL.
• Internamente, el compilador de Hive convierte estas consultas o HQL para asignar trabajos
de reducción.
• Por lo tanto, no necesita preocuparse por escribir programas complejos de MapReduce
para procesar sus datos usando Hadoop.
• Está dirigido a usuarios que se sienten cómodos con SQL. Apache Hive admite lenguaje de
definición de datos (DDL), lenguaje de manipulación de datos (DML) y funciones definidas
por el usuario (UDF).
• SQL + Hadoop MapReduce = HiveQL
Desafíos en Facebook: crecimiento
exponencial de datos
• Antes de 2008, toda la infraestructura de procesamiento de datos en Facebook se
construía alrededor de un data warehouse basado en un RDBMS comercial.
• Estas infraestructuras fueron lo suficientemente capaces para satisfacer las
necesidades de Facebook en ese momento.
• Pero, a medida que los datos comenzaron a crecer muy rápido, se convirtió en un
gran desafío administrar y procesar este enorme conjunto de datos.
• Según un artículo de Facebook, los datos pasaron de un conjunto de datos de 15 TB
en 2007 a datos de 2 PB en 2009.
• Además, muchos productos de Facebook implican el análisis de datos como
Audience Insights, Facebook Lexicon, Facebook Ads, etc. necesitaba una solución
escalable y económica para hacer frente a este mismo problema y, por lo tanto,
comenzó a utilizar el marco de trabajo de Hadoop.
Al principio usaban map-reduce
pero…
• A medida que aumentaban los datos, la complejidad de los códigos Map-Reduce crecía
proporcionalmente.
• Entonces, capacitar a personas sin experiencia en programación para escribir programas
MapReduce se volvió difícil.
• Además, para realizar un análisis simple, hay que escribir cientos de líneas de código en
MapReduce.
• Dado que SQL fue ampliamente utilizado por ingenieros y analistas de Facebook, poner SQL en la
parte superior de Hadoop parecía una forma lógica de hacer que Hadoop fuera accesible para los
usuarios con experiencia en SQL.
• Por lo tanto, la capacidad de SQL para ser suficiente para la mayoría de los requisitos analíticos y
la escalabilidad de Hadoop dieron origen a Apache Hive.
• Permite realizar consultas similares a SQL sobre los datos presentes en HDFS.
• En 2008, el proyecto Hive se convirtió en un proyecto código abierto y está disponible
gratuitamente como Apache Hive hoy.
Ventajas de Hive
• Útil para personas que no tienen experiencia en programación, ya que
elimina la necesidad de escribir un programa complejo MapReduce.
• Extensible y escalable para hacer frente al creciente volumen y variedad de
datos, sin afectar el rendimiento del sistema.
• Es una herramienta eficiente de ETL (Extraer, Transformar, Cargar).
• Hive admite cualquier aplicación cliente escrita en Java, PHP, Python, C ++ o
Ruby al exponer su servidor Thrift. (Puede utilizar estos lenguajes del lado del
cliente integrados con SQL para acceder a una base de datos como DB2, etc.).
• Como la información de metadatos de Hive se almacena en un RDBMS,
reduce significativamente el tiempo para realizar comprobaciones semánticas
durante la ejecución de la consulta.
Donde usar Hive
Apache Hive aprovecha ambos mundos, es decir, el sistema de base de datos SQL y el marco
Hadoop - MapReduce.
Es utilizado por varias empresas. Se utiliza principalmente para el almacenamiento de datos y
para análisis y minería de datos que no requieren procesamiento en tiempo real. Algunos de los
campos en los que puede usar Apache Hive son los siguientes:
• Data warehousing
• Análisis ad-hoc
Hive se puede integrar con otras herramientas.
Por ejemplo, Tableau junto con Apache Hive se puede utilizar para la visualización de datos, la
integración de Apache Tez con Hive le proporcionará capacidades de procesamiento en tiempo
real, etc.
Se puede revisar un caso de estudio de la Nasa en el siguiente link
http://www.bigintellects.com/2018/08/hive-tutorial-hive-architecture-and.html
Diferencias
entre Pig y
Hive
Otra
comparativ
a
Agenda
• Objetivos
• Motivación
• PIG
• Ejercicio
• HIVE
• Ejercicio
• Conclusiones y recomendaciones
Instalación de HIVE
Para proceder a la instalación de HIVE, hay que acceder a sus repositorios de descargas, sin embargo en la
máquina virtual tenemos el instalador. http://hive.apache.org/
https://dlcdn.apache.org/hive/
Para realizar la descarga desde la consola de Linux usaremos el siguiente comando: wget
https://archive.apache.org/dist/hive/hive-2.2.0/apache-hive-2.2.0-bin.tar.gz
Tras descargarlo, se debe descomprimir y mover al directorio de trabajo:
• tar -xvf apache-hive-2.2.0-bin.tar.gz
• mv apache-hive-2.2.0-bin /home/bigdata/hive
• sudo nano ~/.bashrc
Y añadiremos al final del archivo las siguientes líneas:
• # HIVE VARIABLES START
• export HIVE_HOME=/home/bigdata/hive
• export PATH=$PATH:$HIVE_HOME/bin
• # HIVE VARIABLES END
source ~/.bashrc
Instalación de HIVE
Antes de arrancar HIVE, deberemos crear los directorios necesarios en HDFS para el correcto
funcionamiento de HIVE:
hdfs dfs -mkdir /tmp
hdfs dfs -mkdir /user/hive/
hdfs dfs -mkdir /user/hive/warehouse
hdfs dfs -chmod g+w /tmp
hdfs dfs -chmod g+w /user/hive/warehouse
Una vez creados estos directorios y modificada su seguridad, solo nos queda iniciar el
schema de derby para poder empezar a utilizar HIVE.
• schematool -dbType derby –initSchema
• Ejemplos en:
https://docs.cloudera.com/HDPDocuments/HDP2/HDP-2.6.0/bk_data-access/
content/ch_using-hive.html
Algunos comandos importantes
• Acceder a la consola con el comando
• hive
• Listar directorios
• dfs -ls /;
• CREATE DATABASE IF NOT EXISTS banca;
• SHOW DATABASES;
• CREATE DATABASE banca COMMENT “Almacena todas
las tablas de banca” mv metastore_db metastore_db.tmp

• USE banca; schematool -initSchema -dbType derby


Algunos comandos importantes
(Create table)
CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name -- (Note: TEMPORARY available
in Hive 0.14.0 and later)
[(col_name data_type [COMMENT col_comment], ...)]
[COMMENT table_comment]
[PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)]
[CLUSTERED BY (col_name, col_name, ...) [SORTED BY (col_name [ASC|DESC], ...)] INTO num_buckets
BUCKETS]
[SKEWED BY (col_name, col_name, ...) ON ([(col_value, col_value, ...), ...|col_value, col_value, ...])
[STORED AS DIRECTORIES] -- (Note: Available in Hive 0.10.0 and later)]
[
[ROW FORMAT row_format]
[STORED AS file_format]
| STORED BY 'storage.handler.class.name' [WITH SERDEPROPERTIES (...)] -- (Note: Available in Hive
0.6.0 and later)
]
[LOCATION hdfs_path]
[TBLPROPERTIES (property_name=property_value, ...)] -- (Note: Available in Hive 0.6.0 and later)
[AS select_statement]; -- (Note: Available in Hive 0.5.0 and later; not supported for external tables)
DML in Hive
• INSERT ... VALUES, UPDATE, DELETE y MERGE SQL sentencias son compatibles con Apache
Hive 0.14 y versiones posteriores.
• La instrucción INSERT ... VALUES permite a los usuarios escribir datos en Apache Hive a
partir de los valores proporcionados en las instrucciones SQL.
• Las declaraciones UPDATE y DELETE permiten a los usuarios modificar y eliminar valores ya
escritos en Hive.
• La instrucción MERGE agiliza las operaciones de ACTUALIZACIÓN, ELIMINACIÓN y cambio
de captura de datos basándose en tablas coexistentes.
• Las cuatro declaraciones admiten la confirmación automática, lo que significa que cada
declaración es una transacción separada que se confirma automáticamente después de
que se ejecuta la declaración SQL.
• https://docs.cloudera.com/HDPDocuments/HDP2/HDP-2.6.0/bk_data-access/content/
new-feature-insert-values-update-delete.html
Ejercicio
• Vamos a crear la tabla persona
create table persona (

nombre STRING,

salario FLOAT,

edad INT

)ROW FORMAT DELIMITED

FIELDS TERMINATED BY ','

LINES TERMINATED BY '\n'

STORED AS TEXTFILE;

• Salimos de la consola
quit;
• Creamos un archivo personas con nano
sudo nano /home/bigdata/ejemplosHive/personas.txt
• Los datos son los siguientes:
juan molina,30000,25
maria perez,25000,33
alex tinoco,20000,40
• Cargamos la información del archivo a la tabla
hive -e "LOAD DATA LOCAL INPATH
'/home/bigdata/ejemplosHive/personas.txt' INTO TABLE banca.persona";

• Consultamos la tabla para ver si se pasaron los datos


hive -e "select * from banca.persona;"
hive -e "select * from banca.persona where salario>22000 and edad<35;"
Seleccionar la persona que gana el
mayor salario
• hive -e "select nombre,max(salario) from persona GROUP BY
nombre;"
Otras tablas create table pais(
id INT,
pais STRING
)ROW FORMAT DELIMITED
create table cliente( FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
id INT, STORED AS TEXTFILE;
nombre STRING,
apellido STRING,
edad INT,
salario FLOAT,
pais INT hive -e "LOAD DATA LOCAL INPATH
'/home/bigdata/ejemplosHive/pais.csv' INTO TABLE pais";
)ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n' select c.id, c.nombre, c.apellido, c.edad, c.salario, p.pais FROM cliente c JOIN
pais p ON (c.pais = p.id);
STORED AS TEXTFILE;

hive -e "LOAD DATA LOCAL INPATH


'/home/bigdata/ejemplosHive/cliente
s.csv' INTO TABLE cliente";
Sqoop
• Sqoop es una aplicación con interfaz de línea de comando para transferir
datos entre bases de datos relacionales, no relacionales y Hadoop.
• Soporta cargas desde una sola tabla o de consultas SQL así como de
trabajos almacenados que pueden ser ejecutados múltiples veces.
• Las transferencias también pueden poblar tablas en Hive o HBase.
• El nombre Sqoop viene de fusionar las palabras sql y hadoop. Sqoop se
convirtió en un proyecto Apache de nivel superior en marzo de 2012.
• Sqoop viene con una amplia documentación para usuarios y
desarrolladores
Instalar Sqoop
• Descargar Sqoop.
• wget
https://archive.apache.org/dist/sqoop/1.4.6/sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz
• cd /home/bigdata
• tar -xvf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz
• mv sqoop-1.4.6.bin__hadoop-2.0.4-alpha /home/bigdata/sqoop
• rm sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz
• sudo nano ~/.bashrc
• Y añadimos al final:
#Sqoop START
export SQOOP_HOME=/home/bigdata/sqoop
export PATH=$PATH:$SQOOP_HOME/bin
#Sqoop END
Instalar Sqoop
• source ~/.bashrc
• cd sqoop/conf
• ls –lrt
• cp sqoop-env-template.sh sqoop-env.sh
• sudo nano sqoop-env.sh
• Cambiar el contenido por
#Set path to where bin/hadoop is available
export HADOOP_COMMON_HOME=$HADOOP_HOME
#Set path to where hadoop-*-core.jar is available
export HADOOP_MAPRED_HOME=$HADOOP_HOME
#set the path to where bin/hbase is available
export HBASE_HOME=$HBASE_HOME
Instalar Sqoop
• sudo nano ~/.bashrc
#HCAT START
export HCAT_HOME=$HIVE_HOME/hcatalog/
export PATH=$HCAT_HOME/bin:$PATH
#HCAT END
• source ~/.bashrc
• cd /home/bigdata/sqoop/lib
Instalar Mysql
• Descargar driver en directorio anterior

wget
https://downloads.mysql.com/archives/get/p/3/file/mysql-connecto
r-java-5.1.38.tar.gz
En el directorio raíz ubicar los siguientes comandos
sudo apt-get update
sudo apt-get install mysql-server-5.7
Ejemplo de uso en plataforma
• Migrar datos desde una tabla en MySql al sistema HDFS
• Se debe tener instalado MySql siguiendo los pasos de la
documentación
• Se debe acceder con el usuario root
• sudo mysql -u root –p
• El password configurado es 1234
• create database sqoop;
• use sqoop;
• Create table test(cadena varchar(50));
• Insert into test (cadena) values (‘Cadena1’), (-
Cadena2’);
• select * from test;
• exit;
Importar desde mysql hacia hdfs
• sqoop import --connect jdbc:mysql://localhost/sqoop --username
root --password 1234 --table test -m 1
Mostrar contenido migrado a HDFS
hdfs dfs -ls -R /user/bigdata/test
hdfs dfs -cat /user/bigdata/test/part-m-00000
Otro ejemplo
• CREATE TABLE `mi_tabla` (
`id` int(6) NOT NULL auto_increment,
`nombre` varchar(25) NOT NULL,
`email` varchar(50) NOT NULL,
`fecha` varchar(25) NOT NULL,
PRIMARY KEY (`id`)
)
• Show tables;
• hdfs dfs -ls -R /user/bigdata/mi_tabla
• hdfs dfs -cat /user/bigdata/mi_tabla/part-m-00000
Hbase
• Es una base de datos que se emplea cuando se necesita
acceso aleatorio de lecturas y escrituras en tiempo real
en Big Data.
• El objetivo del proyecto HBase es alojar grandes tablas
(miles de millones de registros por millones de
columnas) sobre servidores de bajo coste.
• Open source y proyecto de Hadoop
• HBase permite el uso de HDFS como sistema de
archivos distribuido.
Hbase
• Almacenamiento Orientado a columnas
• La información se almacena en celdas agrupadas en
columnas que a su vez se agrupan en familias de
columnas, y estas columnas pueden crearse en tiempo
de ejecución. Además, los registros se identifican
mediante una clave que relaciona una o varias
columnas, dando lugar a una representación de datos
en forma de mapas.
• HBase permite el procesamiento masivo de forma
paralela empleando Map Reduce tanto como entrada
como salida de los jobs.
Instalación
• Se debe tener hbase instalado
• Comando para arrancar:
• bin/start-hbase.sh
• Comprobar con jps que se encuentra corriendo
Operaciones DDL
• Create
Operaciones DML
Agenda
• Objetivos
• Motivación
• PIG
• Ejercicio
• HIVE
• Ejercicio
• Conclusiones y recomendaciones
Conclusiones y
Recomendaciones
• En esta sesión se ha descrito el funcionamiento de Pig y Hive del
ecosistema Hadoop.
• Los ejercicios tienen el objetivo de ejemplificar el proceso de consulta
con cada herramienta.
• En esta presentación, también se han mostrado las diferencias entre
Hive, Pig y Sql
Gracias

También podría gustarte