+$'223 /,9( - datahack · ¢+d\ ydoru hq hvwrv gdwrv" 'lvhxr h lpsohphqwdflyq gh...

Post on 27-Jul-2020

14 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

HADOOP LIVE

12 de diciembre de 2017

Presentación

Jesús Javier Moralo García

• Bioinformático por la UAM & CSIC

• Máster Big Data & Analytics de Datahack

• Gestión, Análisis e Integración de Datos Global Biodiversity Information Facility (www.gbif.org) Proyecto de Integración de Colecciones de Historia Natural (www.synthesys.info) Plataforma Europea de Cibertaxonomía (http://cybertaxonomy.eu)

• Dirección de equipos Técnicos

• Data & IA Creative en datahack Diseño y Desarrollo de Bots Proyectos en Big Data & Analytics

https://www.linkedin.com/in/jesusjaviermoralo/

@JJavierMoralo

https://github.com/javiermoralo

https://www.linkedin.com/in/jesusjaviermoralo/ http://www.datahack.es

¿QUÉ ES BIG DATA?

https://www.linkedin.com/in/jesusjaviermoralo/ http://www.datahack.es

Cada día generamos más datos…

Transacciones financieras Redes de sensores Logs de servidores y aplicaciones Redes sociales

… y más rápido:

Automatización Acceso a Internet universal Contenido generado por los usuarios

https://www.linkedin.com/in/jesusjaviermoralo/ http://www.datahack.es

¿Hay valor en estos datos?

• Diseño e implementación de procesos para extracción de información

• Incrementar el conocimiento del cliente final

• Poder de decisión a los usuarios del negocio: medir las acciones y resultado

• Ahorrar grandes cantidades de dinero

• Abrir nuevas oportunidades de negocios

https://www.linkedin.com/in/jesusjaviermoralo/ http://www.datahack.es

PROBLEMAS – Las Tres Vs

https://www.linkedin.com/in/jesusjaviermoralo/ http://www.datahack.es

PROBLEMAS - Volumen

• Almacenamiento de los datos:

• Generamos muchos más datos que nunca

• ¿Dónde metemos toda esa información?

• El coste de almacenamiento ha ido bajando

Año Capacidad (GB) Coste por GB (USD)

1997 2 $150

2004 200 $1

2012 2000 $0.05

2015 (Cloud)

∞ $0.03 / $0.01

https://www.linkedin.com/in/jesusjaviermoralo/ http://www.datahack.es

PROBLEMAS - Velocidad

• Acceso a los datos:

• Para poder procesar un dato, primero hay que leerlo

• La velocidad de lectura ha ido aumentando, pero no al mismo ritmo que la capacidad de almacenamiento

Año Capacidad (GB)

Transferencia (MB/s)

Tiempo lectura disco

1997 2 17 120 segundos

2004 200 57 1 hora

2012 3000 200 4 horas

• Hecho que puede afectar a los negocios:

• Tiempos de respuesta a posibles compradores web

• Obtención de resultados para toma de decisiones en bolsa

https://www.linkedin.com/in/jesusjaviermoralo/ http://www.datahack.es

PROBLEMAS - Variedad• Hay muchos tipos de datos que almacenar:

https://www.linkedin.com/in/jesusjaviermoralo/ http://www.datahack.es

COMPUTACIÓN CENTRALIZADA• Tradicionalmente las cargas de trabajo han estado limitadas por la CPU

• Durante décadas, el objetivo ha sido producir máquinas más potentes:

CPUs + rápidas y + RAM

• Sin embargo, esto presenta ciertos problemas de escalabilidad (¡y coste!)

https://www.linkedin.com/in/jesusjaviermoralo/ http://www.datahack.es

COMPUTACIÓN DISTRIBUIDA• Crecer de forma horizontal, añadiendo más nodos con capacidad similar

• Arquitectura tradicional:

• Nodos con gran capacidad de proceso (CPUs, ocasionalmente GPUs)

• Almacenamiento centralizado (cabinas NAS o SAN)

• La transferencia de datos se hace a través de la red

• Redes de alta velocidad (Gigabit Ethernet, Fibre Channel, Infiniband)

I. Copiar datos del almacenamiento central al nodo de cómputo

II. Procesar los datos

III. Copiar el resultado al almacenamiento central

Bien con pequeñas cantidades de datos

https://www.linkedin.com/in/jesusjaviermoralo/ http://www.datahack.es

COMPUTACIÓN DISTRIBUIDA - PROBLEMAS• Este flujo de trabajo no escala bien cuando hay muchos datos:

• Se invierte mucho tiempo en copiar de un lado a otro

• Empeora si se añaden nodos, compiten por el ancho de banda

• Los procesadores se quedan a la espera

https://www.linkedin.com/in/jesusjaviermoralo/ http://www.datahack.es

SE NECESITAN SISTEMAS…• Orientados a los datos para afrontar las cargas actuales

• Resistentes a fallos (robustos)

• Deben escalar en horizontal y:

Los nuevos nodos debe suponer un aumento de la capacidad

No debe haber competencia por los recursos

• La ejecución de unos trabajos no deben afectar al resultado de otros

https://www.linkedin.com/in/jesusjaviermoralo/ http://www.datahack.es

HADOOP

The New Hero

https://www.linkedin.com/in/jesusjaviermoralo/ http://www.datahack.es

HISTORIA DE HADOOP• Hadoop surge en 2002 como un proyecto de Apache para mejorar Nutch, un

buscador web de código libre

• Dos publicaciones de Google tienen un importante impacto:

• Google Filesystem (2003)• MapReduce (2004)

• El proyecto Nutch se modifica radicalmente (2005) y finalmente Hadoop se constituye como un proyecto aparte dentro de Apache (2008)

• Yahoo! y Facebook son sus primeros usuarios importantes

• Hadoop genera sus propios subproyectos: Pig, Hive, HBase (2010)

• En 2013 se publica Hadoop 2.2 (versión GA de Hadoop 2.x)

https://www.linkedin.com/in/jesusjaviermoralo/ http://www.datahack.es

¿QUÉ ES HADOOP?

• Framework de procesamiento distribuido

• Tiene dos componentes principales:

• HDFS (almacenamiento)

• MapReduce (procesamiento)

• Mayoritariamente desarrollado en Java, pero también Scala y C++

• Existen numerosas herramientas para realizar diferentes tareas:

• Filosofía UNIX => Haz sólo una cosa y hazla bien

• Muchos son proyectos de código libre

• Componen el llamado “ecosistema” de Hadoop

https://www.linkedin.com/in/jesusjaviermoralo/ http://www.datahack.es

HDFS

Los ficheros son divididos en bloques, replicados tres veces y distribuidos en tres máquinas diferentes (seguridad y eficiencia)

https://www.linkedin.com/in/jesusjaviermoralo/ http://www.datahack.es

MapReduce

Método de procesamiento en paralelo que se hace sobre los múltiples nodos de un clúster

Así, partiendo de un fichero que está troceado en splits de datos, se hace un procesado en paralelo (nodos) de los mismos y se unen al final

https://www.linkedin.com/in/jesusjaviermoralo/ http://www.datahack.es

SOLUCIONES QUE APORTA HADOOP - I

• Problema: Ancho de banda es finito y los nodos compiten por él

• Solución: Almacenar el dato donde sea procesado

• Localidad del dato (data locallity)

• Se omite la separación entre almacenamiento y proceso, los nodos hacen las dos cosas

• Problema: La lectura de disco es lenta

• Solución: Usar varios discos en paralelo

• Un disco de 3TB tarda 4 horas en leerse

• 1000 discos en paralelo leen esa información en menos de 15 seg

• Cada nodo puede tener varios discos, no hacen falta 1000 nodos

https://www.linkedin.com/in/jesusjaviermoralo/ http://www.datahack.es

SOLUCIONES QUE APORTA HADOOP - II

• Problema: La programación distribuía es complicada

• Solución: Usar un modelo sencillo (MapReduce)

• Se lee un registro cada vez

• Se abstraen las complejidades subyacentes

• Problema: El hardware distribuido es caro

• Solución: Usar componentes más baratos de forma distribuida

• Discos duros SATA

• Ethernet con cableado UTP

https://www.linkedin.com/in/jesusjaviermoralo/ http://www.datahack.es

BENEFICIOS DEL ANÁLISIS CON HADOOP• Análisis que anteriormente eran imposibles o poco prácticos

• Menores costes

• Menor tiempo

• Mayor flexibilidad

• Escalabilidad casi linear

• Consultas más grandes / complejas

https://www.linkedin.com/in/jesusjaviermoralo/ http://www.datahack.es

El Ecosistema de Hadoop

https://www.linkedin.com/in/jesusjaviermoralo/ http://www.datahack.es

ECOSISTEMA HADOOP

https://www.linkedin.com/in/jesusjaviermoralo/ http://www.datahack.es

FLUME

• Recopila y agrega datos de casi cualquier fuente a un almacén persistente, como HDFS

• Su unidad base es el Agente (proceso Java), tiene 3 componentes:

• Source: Recopila los datos de una fuente• Canal: Agrupa los datos• Sink: Los escribe en un almacén persistente

https://www.linkedin.com/in/jesusjaviermoralo/ http://www.datahack.es

SQOOP

• Herramienta para obtener datos de fuentes estructuradas

BBDD relacionales Data Warehouses NoSQL

• Otras características:

Carga los datos en Hive y Hbase Se integra con Oozie (BATCH)

https://www.linkedin.com/in/jesusjaviermoralo/ http://www.datahack.es

PIG Es una herramienta de ETL (Extract, Transform and Load)

Su nombre viene de la analogía de que al igual que los cerdos comen de todo, Pig esta pensado para poder trabajar en cualquier tipo de dato.

Permite la abstracción del MapReduce, los usuarios pueden trabajar con los datos del clúster Hadoop sin tener conocimientos de programación MapReduce

Usa el lenguaje Pig Latin (similar a PERL)

El interprete de Pig convierte los scripts de Pig Latin en jobs de MapReduce

https://www.linkedin.com/in/jesusjaviermoralo/ http://www.datahack.es

HIVE

Herramienta para consultar datos residentes en un clúster de Hadoop

Los usuarios consultar los almacenados en un clúster Hadoop sin tener que necesitar tener conocimientos de programación MapReduce (Abstracción MapReduce)

Usa el lenguaje HiveQL, muy similar a SQL

Almacena los metadatos en un pequeña BDR

El interprete convierte las queries HiveQL en jobs de MapReduce

Permite el particionamiento de tablas, clustering, tipos de datos complejos y algunas optimizaciones

https://www.linkedin.com/in/jesusjaviermoralo/ http://www.datahack.es

IMPALA

• Creado por Cloudera en 2012

• Permite hacer consulta de datos, usa la sintaxis de Hive (HiveQL)

• Usa MPP (massively parallel processing) y no MapReduce

• Tiene Baja latencia

Al ser MPP da una baja latencia

Funciona muy bien para mejorar el acceso a los datos vía web

• Los datos se almacenan en HDFS

• Consume más RAM

• Soporta Kerberos

• Compatible con ODBC (herramientas de BI)

https://www.linkedin.com/in/jesusjaviermoralo/ http://www.datahack.es

OOZIE

• Programador de tareas de Hadoop

• Se integra con:

Scripts Comandos Shell ETL Tools Clientes como Hive, Sqoop, etc

• Características:

Es intuitivo Permite contextualizar flujos Se puede integrar con HUE Objetos reutilizar flujos

https://www.linkedin.com/in/jesusjaviermoralo/ http://www.datahack.es

Welcome to the Safari!!!

HDFS

HADOOP

Otros

Flume

BBDDs

Sqoop

PigHive Impala

CLIENTE SparkMLlibSparkMLlib

SparkSQLSparkSQL SparkR

Python

R

HUEHUE OozieOozie SentrySentry

ClouderaManager

https://www.linkedin.com/in/jesusjaviermoralo/ http://www.datahack.es

Distribuciones Hadoop

https://www.linkedin.com/in/jesusjaviermoralo/ http://www.datahack.es

Distribuciones On Premise

http://www.cloudera.com

http://hortonworks.com

https://www.mapr.com

https://www.linkedin.com/in/jesusjaviermoralo/ http://www.datahack.es

Distribuciones en Cloud

Amazon Elastic Map Reduce

IBM BigInsights

Azure HD Insight

Google Cloud Dataproc

https://www.linkedin.com/in/jesusjaviermoralo/ http://www.datahack.es

Clúster Hadoop de datahackEl clúster Hadoop de datahack esta formado por siete máquinas:

• 2 NameNode (NN1 y NN2)• 4 DataNodes (DN1, DN2, DN3 y DN4)• 1 Gestor de Cloudera Manager (CDM1)

El acceso al mismo desde internet se hace a través de una máquina brigde (Caronte) a la que está redireccionado el tráfico del puerto 22 (SSH) del router que gestiona el acceso desde internet

Carontedatahack

CDM1

DN1 DN2

DN3 DN4

NN2NN1

https://www.linkedin.com/in/jesusjaviermoralo/ http://www.datahack.es

CLOUDERA MANAGER

• Interfaz de Administración del Clúster

https://www.linkedin.com/in/jesusjaviermoralo/ http://www.datahack.es

HUE

• Interfaz web para la consulta y visualización de datos

• Herramienta de usuario, no de administración

• Está escrito en Python

• Es extensible, se pueden añadir módulos propios

• Compatible con Kerberos

• Integrable con servidores web existentes, con fines de alta disponibilidad

https://www.linkedin.com/in/jesusjaviermoralo/ http://www.datahack.es

Más Información en:

https://www.linkedin.com/in/jesusjaviermoralo/ http://www.datahack.es

Gracias por vuestra atención!

javier.moralo@datahack.es

https://www.linkedin.com/in/jesusjaviermoralo/ http://www.datahack.es

top related