Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Una
vez
que
se
ha
diseado
el
despliegue
de
un
cluster
el
siguiente
punto
a
considerar
es
como
se
van
a
cargar
los
datos.
Fco.
Javier
Lahoz
Sevilla
Inges5n
con
Flume
Arquitectura.
La
arquitectura
de
Flume
est
basada
en
agentes:
Agente
Source
Sink
Datos
Datos
Channel
Arquitectura.
Los
agentes
tambin
se
pueden
conectar
entre
ellos:
Fco.
Javier
Lahoz
Sevilla
Inges5n
con
Flume
Arquitectura.
Y
tambin
se
pueden
u5lizar
para
recolectar
datos
en
capas:
Fco.
Javier
Lahoz
Sevilla
Inges5n
con
Flume
avro:
des5no
para
conectar
agentes
ume
con
source
Avro
usados
en
recolectores,
por
ejemplo.
Propiedades:
type
=
avro
channels
=
canal
hostname
=
host
o
ip
donde
enviar
los
eventos
port
=
puerto
donde
enviar
los
eventos
Fco.
Javier
Lahoz
Sevilla
Inges5n
con
Flume
HBase:
para
escribir
los
eventos
en
HBase.
Propiedades:
type
=
hbase
channels
=
canal
table
=
el
nombre
de
la
tabla
a
escribir
columnFamily
=
column
family
donde
se
escribir
Funcionamiento
de
Sqoop:
U5liza
JDBC,
por
lo
tanto,
slo
necesitar
el
driver
correspondiente
para
poderse
conectar
a
la
base
de
datos,
o
conectores
de
proveedores
de
bases
de
datos
que
mejoran
el
rendimiento.
Sqoop
se
conectar
a
la
BBDD
para
analizar
la
tabla
a
importar.
Cuando
conoce
el
volumen
de
la
informacin
genera
una
clase
java
para
importar
los
datos
que
se
ejecutar
a
travs
de
jobs
map-only
(no
se
ejecutur
fase
Reduce).
Por
defecto
se
ejecutarn
cuatro
mappers
procesando
cada
uno
un
cuarto
de
los
datos
a
importar.
Todas
las
mquinas
tendrn
que
tener
permisos
para
acceder
a
la
base
de
datos.
Caracters5cas
de
Sqoop:
Sqoop
puede
importar
una
tabla
o
una
esquema
de
base
de
datos.
Tambin
se
pueden
ltrar
los
datos
de
una
tabla,
por
ejemplo,
para
cargar
incrementales
basados
en
una
fecha
de
alta
o
modicacin.
Permite
proyectar
una
tabla
recuperando
slo
los
campos
requeridos.
Sqoop
puede
importar
los
datos
en
un
chero
del
HDFS,
en
una
tabla
de
Hive
o
de
HBase.
Fco.
Javier
Lahoz
Sevilla
Carga
de
datos
con
Sqoop
Fco.
Javier
Lahoz
Sevilla
Carga
de
datos
con
Sqoop
Ms
opciones:
sqoop
import
--driver
com.ibm.db2.jcc.DB2Driver
--connect
jdbc:db2://<db2_ip>:50000/<db2_name>
--username
<db2_user>
--table
<db2_table>
--target-dir
<hdfs_path>
Fco.
Javier
Lahoz
Sevilla
Inges5n
y
Anlisis
de
datos
con
Hadoop
Fco.
Javier
Lahoz
Sevilla
Anlisis
de
datos
con
Hive
Casos
de
uso:
Almacenamiento
histrico
ges5onado
con
par5ciones,
por
ejemplo,
con
fecha
(ao,
mes,
da,
hora,)
Data
Lakes:
grandes
almacenes
de
datos
donde
no
toda
la
informacin
es
suscep5ble
de
explotar.
Se
va
almacenando
y
se
le
dar
estructura
cuando
sea
necesario
analizarla.
Para
repor5ng
tradicional
a
travs
de
herramientas
de
BI.
Para
anal5ca
avanzada
a
travs
de
paquetes
estads5cos,
como
por
ejemplo,
R.
Arquitectura de Hive:
Conguracin
de
Hive:
Similar
a
Hadoop,
Hive
5ene
varios
cheros
de
conguracin:
Fco.
Javier
Lahoz
Sevilla
Anlisis
de
datos
con
Hive
Fco.
Javier
Lahoz
Sevilla
Anlisis
de
datos
con
Hive
Sera
el
momento
de
cargar
datos:
Mediante
un
LOAD
desde
un
chero
local
o
de
HDFS:
Fco.
Javier
Lahoz
Sevilla
Anlisis
de
datos
con
Hive
Funcionalidad
avanzada:
En
Hive
se
pueden
realizar
funciones
avanzadas
mediantes
UDFs
(User
Deni5on
Func5ons).
Las
UDFs
son
libreras
que
se
pueden
registrar
en
Hive
para
implementar,
a
travs
de
Java,
funciones
avanzadas,
como
por
ejemplo,
clculos
aritm5cos
complejos
o
tratamiento
avanzada
de
texto.
Fco.
Javier
Lahoz
Sevilla
Anlisis
de
datos
con
Hive
Fco.
Javier
Lahoz
Sevilla
Inges5n
y
Anlisis
de
datos
con
Hadoop
Arquitectura de Pig:
Pig
Pig
es
una
capa
que
est
Scrip5ng
por
encima
de
Hadoop.
Los
ujos
de
datos
se
procesarn
con
MapReduce
MapReduce
leyendo
y
escribiendo
en
HDFS
u
otras
fuentes
(MongoDB,
Cassandra,
HBase)
HDFS
Fco.
Javier
Lahoz
Sevilla
Procesamiento
de
datos
con
Pig
Conguracin
de
Pig:
Al
igual
que
vimos
para
Hive
en
Pig
tambin
se
pueden
congurar
dis5ntas
propiedades
en
el
chero,
pig.proper5es,
como
por
ejemplo:
Ges5n
de
la
memoria
Nivel
de
Log
Perl
para
UDFs
Tipo
de
ejecucin
por
defecto
Librerias
adicionales
Directorio
temporal
para
cachear
Opciones
de
ejecucin
Ejecucin
de
Pig:
Pig
se
puede
ejecutar
de
las
siguientes
formas:
Molo
local,
ejecucin
en
una
instancia
local.
>
pig
-x
local
Modo
MapReduce
(congurado
por
defecto)
usar
los
recursos
de
hadoop
para
el
procesamiento
de
las
tareas.
>
pig
(pig
-x
mapreduce)
Modo
Tez,
para
ejecucin
de
jobs
con
menor
latencia.
>
pig
-x
tez
Tambin
existen
diversas
modos
de
ejecucin:
Interac5vo
Batch:
pig
<script>.pig
Fco.
Javier
Lahoz
Sevilla
Procesamiento
de
datos
con
Pig
Load
Transform
Store
Datos
Datos
Data
Data
Data
Load
Transform
Store
Datos
Datos
Data
Data
Data
Load
Transform
Store
Datos
Datos
Data
Data
Data
Load
Transform
Store
Datos
Datos
Data
Data
Data
Tipos
de
datos:
Tipos
simples:
int
Long
oat
double
chararray
bytearray
boolean
date5me
Tipo
Complejos:
map
(<String,long>)
tuple
(<campo1,campo2,
>)
bag
(<tupla1,
tupla2,>)
Fco.
Javier
Lahoz
Sevilla
Procesamiento
de
datos
con
Pig
Tipos
de
Operadores:
Funciones
de
evaluacin:
Funciones
de
Strings:
Count,
Sum
IndexOf
Avg,
Max,
Min
Lower,
Upper
Concat
Replace
isEmpty
Substring
Tokenize
Trim
ORDER
BY:
alias
=
ORDER
alias
BY
{
*
[ASC|DESC]
|
eld_alias
[ASC|DESC]
[,
eld_alias
[ASC|DESC]
]
}
[PARALLEL
n];
Ejemplo:
B
=
ORDER
A
BY
id;
DUMP
B;
Fco.
Javier
Lahoz
Sevilla
Procesamiento
de
datos
con
Pig
Fco.
Javier
Lahoz
Sevilla
Procesamiento
de
datos
con
Pig
Funcionalidad
avanzada:
En
Pig
tambien
se
pueden
realizar
funciones
avanzadas
mediantes
UDFs
(User
Deni5on
Func5ons).
Op5mizacin
de
ujos
con
Pig:
Al
igual
que
en
Hive
tambin
se
puede
obtener
el
explain
para
el
Debug
de
una
operacin
relacional
indicando
Explain
con
la
operacin
relizada
Ejemplo:
Explain
B;
Fco.
Javier
Lahoz
Sevilla
Inges5n
y
Anlisis
de
datos
con
Hadoop
En
este
primer
caso
vamos
a
importar
unas
tablas
con
Sqoop
para
posteriormente
procesarlas
con
Pig.
Fco.
Javier
Lahoz
Sevilla
Importacin
de
datos
y
explotacin
con
Pig
Empezaremos
instalando
MySql
en
nuestro
nodo
master
del
Cluster:
sudo
apt-get
install
mysql-server
sudo
apt-get
install
libmysql-java
Una
vez
instalado
conguraremos
la
IP
privada
de
la
instancia
de
EC2
en
el
chero
de
conguracin
Reiniciar
el
servidor
de
la
BBDD
En
este
caso
vamos
a
recolectar
Logs
a
travs
de
Flume
para
analizarlos
con
Hive.
Fco.
Javier
Lahoz
Sevilla
Recoleccin
de
Logs
y
Anlisis
con
Hive
Hive Cli
En
este
l5mo
caso
vamos
a
descargar
Tweets
con
Flume
para
analizarlos
con
Hive.
Fco.
Javier
Lahoz
Sevilla
Captura
de
Tweets
y
Anlisis
con
Hive
Lo
primero
ser
crear
unas
claves
para
poder
descargar
los
Tweets:
hSps://apps.twiSer.com/
ALTER
TABLE
tweets
ADD
IF
NOT
EXISTS
PARTITION
(year
=
'2015',
month
=
'03',
day
=
'07')
LOCATION
'2015/03/07';
ALTER
TABLE
tweets
ADD
IF
NOT
EXISTS
PARTITION
(year
=
'2015',
month
=
'03',
day
=
'08')
LOCATION
'2015/03/08';