Está en la página 1de 61

Tecnologas Hadoop

Una introduccin al ecosistema Hadoop


Quien soy

Angel Llosa Guillen

Architecture Manager in Capgemini

https://es.linkedin.com/in/anllogui

https://twitter.com/anllogui
Esta charla

Introduccin al ecosistema Hadoop


Visin de conjunto de las principales tecnologas
Orientada a desarrolladores y analistas de datos
Agenda

Qu es BigData
Ecosistema Hadoop
Distribuciones Hadoop
Arquitecturas de referencia
Recomendaciones y consideraciones
Qu es BigData?

(Volumen)
DW vs BigData

Fuentes datos actuales (estructuradas)


Las capacidades analticas te las dan los orgenes de datos
La velocidad y el volumen tienen costes altos

Fuentes datos actuales (estructuradas) Nuevas fuentes datos (estructuradas


Las capacidades analticas te las dan y no)
los orgenes de datos Nuevas capacidades analticas
La velocidad y el volumen tienen Nuevas opciones de disponer de
costes altos velocidad y volumen a costes
reducidos
Tecnologas Big Data 2016
ndice

Qu es BigData
Ecosistema Hadoop
Distribuciones Hadoop
Arquitecturas de referencia
Recomendaciones y consideraciones
Hadoop ecosystem

Qu es Hadoop?
Principales productos del ecosistema Hadoop
Stack tecnolgico
Qu es Hadoop?
Hadoop es un framework que permite el proceso distribuido de grandes volmenes
de datos entre clusters de computacin.
Est diseado para escalar desde un solo servidor a miles de mquinas, cada una
ofreciendo capacidad de clculo y de almacenamiento.
Tolerante a fallos
Incluye:
Hadoop Commons
Hadoop Distributed File System (HDFS)
Hadoop YARN (yet another resource negotiator)
Hadoop MapReduce
Yahoo: 4500 nodos (2*4cpu boxes w 4*1TB disk & 16GB RAM)
Stack Tecnolgico

MapReduce 2

YARN

HDFS

General Purpose
Execution Engines

Storage managers
HDFS

Almacenamiento de datos distribuido, tolerante a fallos.


Analoga con un sistema de ficheros, no una BD.
HDFS ha demostrado que es escalable hasta 200 PB de almacenamiento
en un cluster de 4500 nodos

hdfs dfs -ls /user/hadoop/file1


hdfs dfs -mkdir /user/hadoop/dir1 /user/hadoop/dir2
hdfs dfs -rm hdfs://nn.example.com/file /user/hadoop/emptydir
YARN / Mapreduce

Procesamiento de bajo nivel.


Distribuido, tolerante a fallos y orientado a batch
MapReduce:
Fwk con servicios para distribuir trabajos y recolectar resultados, ordenar,
filtrar, etc.
YARN:
Gestiona el acceso a los recursos de la aplicacin (memoria, CPU)
Monitoriza los nodos.
Planifica los trabajos.
Soporta distintos tipos de aplicacin (no solo MR).
Stack Tecnolgico

Cascading

Mahout
Giraph

Sqoop
Hive

Pig

MapReduce 2

YARN
HBase
HDFS

General Purpose Graph processing


Abstraction Engines
Execution Engines Engines

Storage managers SQL Engines Machine Learning


HBase

Base de datos distribuida, columnar y no relacional, basada en Bigtable de


Google
Almacenamiento distribuido en un cluster de mquinas
Modelo de datos sin esquemas predefinidos (NoSQL)
Particiones de datos autogestionadas.
HBase

Qu no es:
No es una BBDD SQL
No es relacional
No soporta Joins
Sin un motor de consultas sofisticado
No es transaccional por defecto
No es un sustituto a una RDBMS
Entonces, para qu sirve? e.g.: para almacenar y procesar logs
HBase
Hive

SQL-Like HiveSQL
Reduce el tiempo de desarrollo.
Se ejecuta sobre Mapreduce, Spark o Tez.
Orientado a batch. En progreso modo interactivo Stinger Initiative

SELECT customers.cust_id, SUM(cost) AS total


FROM customers
JOIN orders
ON customers.cust_id = orders.cust_id
GROUP BY customers.cust_id
ORDER BY total DESC;
PIG

Lenguaje de alto nivel para procesado de datos


Procedural data flow:
Joining and transforming data.
Se pueden utilizar funciones programadas en Java dentro de PIG

people = LOAD /user/training/customers AS (cust_id, name);


orders = LOAD /user/training/orders AS (ord_id, cust_id, cost);
groups = GROUP orders BY cust_id;
totals = FOREACH groups GENERATE group, SUM(orders.cost) AS t;
result = JOIN totals BY group, people BY cust_id;
DUMP result;
Sqoop

Herramienta para realizar transferencias de datos masivas entre RDBMs y


Hadoop (HDFS, HIVE, HBase).
Bases de datos soportadas:
MySQL
PostgreSQL
Oracle
HSQLDB
Paralelizado (MR), incremental, etc.
Sqoop

[root@quickstart.cloudera ~] sqoop import-all-tables \


-- num-mappers 1 \
--connect jdbc:mysql://quickstart.cloudera:3306/retail_db \
--username=retail_dba \
--password=cloudera \
--compression-codec=snappy \
--as-avrodatafile \
--warehouse-dir=/user/hive/warehouse/userXX

[root@quickstart.cloudera ~] sqoop import \


--query 'SELECT a.*, b.* FROM a JOIN b on (a.id == b.id) WHERE
$CONDITIONS' \
Otros

Cascading: ETL basado en Java/Scala


Giraph: Proceso de grafos
Mahout: Libreras para machine learning
Stack Tecnolgico

Spark Streaming
Spark SQL
Cascading

BlinkDB
Mahout

GraphX
Giraph

Sqoop

MLib
Hive

Pig

MapReduce 2 Spark

YARN
HBase
HDFS / MapR-FS / HBase

General Purpose Graph processing


Abstraction Engines
Execution Engines Engines

Storage managers SQL Engines Machine Learning Streaming


Spark
Diferencias con Mapreduce:

Es ms rpido: Optimizado para trabajar en memoria


Menos costoso mover datos durante el procesado
Una API ms potente que MR Ms fcil para desarrollar
APIs en Scala, Python y Java.

Spark se puede ejecutar en modo standalone o sobre clusters:

Amazon EC2

Standalone Deploy Mode

Apache Mesos

Hadoop YARN

Escalable desde la fase de desarrollo


Spark

Daytona GraySort contest:


Spark SQL

Integrado con Spark: Se pueden lanzar consultas desde cdigo.


Acceso a distintas fuentes de datos: JSON, tablas Hive
Compatibilidad con Hive: HiveQL, datos y user defined functions.
Trabaja con dataframes
Spark Streaming

Fcil de usar, tolerante a fallos, integrado con Spark...


Se puede usar con Mlib.
Microbatches (input & output)
Stack Tecnolgico

Spark Streaming
Spark SQL

Cascading
Cascading

BlinkDB
Mahout

GraphX
Giraph

Sqoop

MLib

Hive
Hive

Pig
Pig

MapReduce 2 Spark

YARN
HBase
HDFS / MapR-FS / HBase

General Purpose Graph processing


Abstraction Engines
Execution Engines Engines

Storage managers SQL Engines Machine Learning Streaming


Stack Tecnolgico

Spark Streaming
Spark SQL

Cascading
Cascading

BlinkDB
Mahout

GraphX
Giraph

Sqoop

MLib

Hive
Hive

Pig
Pig

MapReduce 2 Spark

Impala

Storm

Flume

Hawq
Kafka
YARN
HBase
HDFS / MapR-FS / HBase

General Purpose Graph processing


Abstraction Engines Pub / Sub
Execution Engines Engines

Storage managers SQL Engines Machine Learning Streaming


Impala

Creado por Cloudera


Open Source - Apache (incubating)
Orientado a consultas interactivas:
Consultas ad-hoc
Para herramientas BI (Pentaho, Microstrategy)
10 ms rpido que Hive o Pig (sobre MR)
Motor de ejecucin propio (no MapReduce)
Hawq

Creado por Pivotal


100% ANSI SQL compatible
Benchmark (hecho por Pivotal):
mejores resultados que Impala
21x ms rpido que Stinger (Hive).
Diseado para gestionar PB
Kafka

Sistema de mensajera de publicacin-suscripcin


Rpido, escalable, durable y tolerante a fallos
Posible sustituto a JMS y AMQP por su rendimiento, fiabilidad y
replicacin
Casos de uso:
Stream Processing
Seguimiento de actividad web
Recoleccin de mtricas y monitorizacin
Recopilacin de logs
Flume

Sistema distribuido y seguro para recolectar, agregar y


mover grandes volmenes de datos
Flume

Sources: Channels: Sinks:


Avro Source Memory Channel HDFS Sink
Thrift Source JDBC Channel Logger Sink
JMS Source File Channel Avro Sink
Converter Kafka Channel Thrift Sink
Spooling Directory Source Spillable Memory IRC Sink
BlobDeserializer Channel File Roll Sink
NetCat Source Pseudo Transaction Null Sink
Sequence Generator Channel HBaseSink
Syslog Sources Custom Channel MorphlineSolr Sink
HTTP Source ElasticSearch Sink
... ...
Flume vs. Kafka

Kafka es multipropsito, con algunas fuentes y sumideros.


Flume fu creado para recopilacin de logs y escritura en HDFS, an as,
soporta ms fuentes y sumideros por defecto que Kafka.
Los dos son zero data loss, pero Kafka es high-available
Kafka y Flume pueden ser utilizados juntos: Por ejemplo, para hacer
streaming a HDFS es recomendable utilizar Kafka como fuente y Flume
como sumidero.
Storm

Open Source y adquirido por Twitter


Capacidades:
Rpido - un milln de mensajes procesados por segundo por nodo
Escalable Procesamiento en paralelo en distintos nodos
Tolerante a fallos
Seguro Cada mensaje se procesa slo una vez.
Stack Tecnolgico

Spark Streaming
Spark SQL

Cascading
Cascading

BlinkDB
Mahout

GraphX
Giraph

Sqoop

MLib

Hive
Hive

Pig
Pig

MapReduce 2 Spark

Impala

Storm

Flume

Hawq
Kafka
YARN
HBase
HDFS / MapR-FS / HBase

General Purpose Graph processing


Abstraction Engines
Execution Engines Engines

Storage managers SQL Engines Machine Learning Streaming


ndice

Qu es BigData
Ecosistema Hadoop
Distribuciones Hadoop
Arquitecturas de referencia
Recomendaciones y consideraciones
Distribuciones Hadoop

Distribucin: empaquetado de tecnologas del ecosistema Hadoop con


una capa de gestin aadida y soporte empresarial.
Las tres principales:
Cloudera
Hortonworks
MapR
Cloudera

Distribuye Cloudera Enterprise


Contribuyente principal del proyecto Impala.
Incluye, entre otros, los siguientes servicios:
Seguridad
Gobierno de dato
Gobierno operacional
Cloudera Manager y Cloudera Navigator no son OS.
Cloudera
HortonWorks

Distribuye la Hortonworks Data Platform (HDP)


Contribuyente principal del proyecto Hive.
HDP incluye los siguientes servicios:
Seguridad
Gobierno de dato
Gobierno operacional
Propulsor de la "Stinger Initiative:
Mejorar Hive para tratar consultas interactivas (no batch)
Consultas a escala de petabyte
Todo Opensource
HortonWorks
MapR

Mapr-FS en vez de HDFS:


Mejor rendimiento, confiabilidad, eficiencia, mantenibilidad y
facilidad de uso.
Se puede montar va NFS.
Posix-compliant
Soporta Impala
MapR

Mapr-DB en vez de HBase:


MapR
Bonus track: Stratio
ndice

Qu es BigData
Ecosistema Hadoop
Distribuciones Hadoop
Arquitecturas de referencia
Recomendaciones y consideraciones
Conceptual Architecture
Data Lake

Un data lake es un repositorio donde se almacenan TODOS los datos de la


compaa, estructurados y sin estructurar, sin ningn tipo de
preprocesamiento (raw data) y sin ningn tipo de esquema, para ser
analizados posteriormente.

Los datos son vertidos en l y recuperados cuando es necesario. Solo en


ese instante se les da un orden y una estructura que permita su posterior
anlisis.
Ejemplo Data Lake con Cloudera
Arquitectura Lambda

Equilibrar la latencia, rendimiento y tolerancia a fallos mediante el uso de


procesamiento por lotes para proporcionar puntos de vista pre-computados
completos y exactos, mientras que al mismo tiempo utilizando el procesamiento de
flujo en tiempo real para proporcionar vistas dinmicas.
ndice

Qu es BigData
Ecosistema Hadoop
Distribuciones Hadoop
Arquitecturas de referencia
Recomendaciones y consideraciones
Recomendaciones

Para los proyectos de Big Data, no hay que "obsesionarse" con la tecnologa.

Las tecnologas Big Data son un facilitador


permiten hacer a un coste razonable lo que antes era sencillamente
imposible o estaba solo al alcance de unos pocos.

La arquitectura tcnica, Hadoop s o no, la distribucin a elegir, etc son


decisiones estratgicas basadas en qu queremos hacer y por tanto, cmo
vamos a usar la tecnologa para conseguir esos fines. Y no al revs.
Pequea gua

Si se tienen consultas ad-hoc, las consultas y necesidades analticas se conocen de


antemano y los datos son de menos de 600TB, la recomendacin sera un Data
warehouse.

Si el volumen de datos a gestionar es mayor de 600TB, la recomendacin sera ir


hacia un modelo basado en Hadoop pero teniendo en cuenta la complejidad de las
consultas requeridas.

Si los volmenes de datos son pequeos, no se requiere analtica, pero se requiere


alta velocidad la recomendacin podra ser NoSQL
Consideraciones

Tecnologa emergente. En continua evolucin (cada menos de 6 meses


cambia)

El % de implantacin en el mercado Espaol es muy escaso por lo que no


hay experiencias y referencias maduras (Telcos en su mayora)
Gartner Magic Quadrant DW

Cloudera y MapR
consideradas plataformas
de DW

http://www.gartner.com/technology/reprints.do?id=1-2A7BNGD&ct=150219&st=sb
Forrester Wave Big Data Hadoop Solutions
2014 2016

https://www.cloudera.com/content/dam/www/static/documents/analyst-reports/forrester-wave-big-data-hadoop-distributions.pdf
Q&A
Sesin Prctica

CCP: Data Scientist Challenge One Solution Kit:

http://certification.cloudera.com/prep/dsc1sk/intro.html
www.capgemini.com

También podría gustarte