Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.
Taller:
“Monta una infraestructura Big Data para
tu Empresa”
Urko Zurutuza
Dpto. Electrónica e Informática
Mondragon Goi E...
• http://bit.ly/bigdata_sesion1
• bit.ly/bigdatadocs
Agenda
• Día 1: Introducción al Big Data
• Día 2: Instalación de un cluster Cloudera
• Día 3: Ejercicios sobre Cloudera
Índice
1. Introducción
2. Big Data
3. Ecosistema Big Data
4. Distribuciones Big Data
5. Herramientas Big Data
6. Conclusio...
Data
CRECIMIENTO DE DATOS
PARA EL 2020
Big Data
Un poco de historia…
Un poco de historia…
Un poco de historia…
Big Data
“Big Data” hace referencia al conjunto de
información que es demasiado compleja
como para ser procesada mediante ...
Big Data
“Big Data hace referencia al conjunto de
información que es demasiado compleja
como para ser procesada mediante T...
Big Data
Big Data
Big Data – Cambio de Paradigma
Big Data – Cambio de Paradigma
Ecosistema Big Data
Ecosistema Hadoop (simplificado)
Apache
Pig:
Scripting
Almacenamient
o redundante y
fiable
YARN
Gestiona
recursos del
Clus...
Distribuciones Hadoop
Distribuciones Hadoop
• Cloudera
• HortonWorks
• MapR
• IBM BigInsights
• Amazon EC2
• Microsoft Azure HDInsight
• …
Cloudera CDH
HortonWorks
MapR
IBM BigInsights
Oracle Big Data
Amazon EMR
Microsoft Azure HDInsight
Componentes
Apache Hadoop
• Sistema que permite una computación
– Fiable,
– Escalable, y
– Distribuida
• Un Framework que permite el
p...
Apache Hadoop
• Hadoop common: utilidades comunes que
dan soporte al resto de los módulos de
Hadoop
• Hadoop Distributed F...
¿Quién usa Hadoop?
• Adobe
– We use Apache Hadoop and Apache HBase in
several areas from social services to structured
dat...
¿Quién usa Hadoop?
• EBay
– 532 nodes cluster (8 * 532 cores, 5.3PB).
– Heavy usage of Java MapReduce, Apache
Pig, Apache ...
¿Quién usa Hadoop?
• Facebook
– We use Apache Hadoop to store copies of internal log
and dimension data sources and use it...
¿Quién usa Hadoop?
• Last.fm
– 100 nodes
– Dual quad-core Xeon L5520 @ 2.27GHz &
L5630 @ 2.13GHz , 24GB RAM,
8TB(4x2TB)/no...
¿Quién usa Hadoop?
• LinkedIn
– We have multiple grids divided up based upon purpose.
– Hardware:
• ~800 Westmere-based HP...
¿Quién usa Hadoop?
• Spotify
– We use Apache Hadoop for content
generation, data aggregation, reporting and
analysis
– 690...
¿Quién usa Hadoop?
• Twitter
– We use Apache Hadoop to store and process tweets,
log files, and many other types of data g...
Almacenamiento
Almacenamiento: HDFS
• Diseñado para ejecutarse en Hw común
(commodity)
• Tolerante a fallos
• Diseñado para trabajo por l...
Almacenamiento: HDFS
Almacenamiento: NoSQL (Not
Only SQL)
• Base de Datos de nueva generación que
en su mayoría aborda algunas de las
siguiente...
Almacenamiento: NoSQL (Not
Only SQL)
Tipo Descripción Ejemplo
Clave-
Valor
Cada elemento tiene una
clave y su valor asocia...
Almacenamiento: Base de Datos
HBase
• Qué es Hbase?
– En Hbase los datos se almacenan en tablas, las
cuales tienen filas y...
Almacenamiento: Base de Datos
HBase
• Map: filas de datos
{
"zzzzz" : "woot",
"xyz" : "hello",
"aaaab" : "world",
"1" : "x...
Almacenamiento: Base de Datos
HBase
• Sorted Map: filas ordenadas por la clave
{
"1" : "x",
"aaaaa" : "y",
"aaaab" : "worl...
Almacenamiento: Base de Datos
HBase
• Multidimensional: familias de columnas por
cada fila{
"1" : {
"A" : "x",
"B" : "z"
}...
Almacenamiento: Base de Datos
HBase
• Multidimensional: una familia de columnas
puede tener varias columnas, identificadas...
Almacenamiento: Base de Datos
HBase
• Multidimensional: timestamp
{
// ...
"aaaaa" : {
"A" : {
"foo" : {
15 : "y",
4 : "m"...
Procesamiento de datos
Procesamiento de Datos
• Varios modos de alimentar un sistema
Hadoop:
– Por lotes (batch): tengo todos los datos y los
pro...
Procesamiento en batch:
MapReduce
• Marco para escribir aplicaciones que procesan
enormes cantidades de datos de forma par...
Procesamiento en batch:
MapReduce
, 4
, 2
, 4
, 3
, 4
, 2
, 4
, 3
Split Map
Shuffle
&
Sort
Reduce
Master
assignsassigns
Procesamiento en batch:
MapReduce
• Ejemplo:
$ bin/hadoop dfs -cat /usr/joe/wordcount/input/file01
Hello World Bye World
$...
Procesamiento en batch:
MapReduce
• Mapper:
– procesa cada línea (cada línea un map)
– Divide en tokens separados por espa...
Procesamiento en batch:
MapReduce
• Combiner:
– Cada map se ordena y genera agregados
locales:
– Salida del primer Map:
• ...
Procesamiento en batch:
MapReduce
• Reducer:
– Suma los valores (ocurrencias de cada clave):
• < Bye, 1>
• < Goodbye, 1>
•...
Procesamiento en batch: Apache
Pig
• Plataforma para análisis/tratamiento de datos
• Tiene un compilador que genera las
se...
Procesamiento en streaming:
Storm
• Sistema de computación distribuido en
tiempo real
• “El hadoop del tiempo real”
• Lo q...
Proceso en streaming: Spark
streaming
• Procesamiento en memoria (vs.
MapReduce)
• Muy rápido
• Java, Scala, Python
Ingestión de datos
Ingestión de Datos
• Varios modos de alimentar un sistema
Hadoop:
–Por lotes (batch): hacer un volcado
–En tiempo real (st...
Ingestión de Datos por lotes:
HDFS
• La forma más sencilla, pero debemos tener
los datos en ficheros
$ hadoop fs –put <nom...
Ingestión de Datos por lotes:
Apache sqoop
• Transfiere datos entre Hadoop y datos
estructurados como Bases de Datos
Relac...
Ingestión de Datos por lotes:
Apache sqoop
tablas tablas
Ficheros
distribuidos
BBDD
Relacional
BBDD
RelacionalHDFS
Tratami...
Ingestión de Datos en streaming:
Apache Flume
• Servicio distribuido y fiable para recopilar,
agregar y mover grandes volú...
Ingestión de Datos en streaming:
Apache Flume
• Una fuente externa envía eventos a un
agente Flume, en un formato que Flum...
Ingestión de Datos en streaming:
Apache Flume
Ingestión de Datos en streaming:
Apache Flume
• Origenes Flume:
– Avro
– Thrift
– Exec (el resultado de la ejecución de un...
Ingestión de Datos en streaming:
Apache Flume
• Canales Flume:
– Memoria
– JDBC
– Fichero
– …
Ingestión de Datos en streaming:
Apache Flume
• Sinks Flume:
– HDFS
– Avro
– Thrift
– IRC
– Fichero
– Hbase
– …
Ingestión de Datos en streaming:
Apache Flume
• El Sink HDFS crea un fichero, lo abre,
mete datos, y cierra el fichero de ...
Ingestión de Datos en streaming:
Apache Kafka
• Servicio para registro de logs distribuido y
particionado
• Rápido: un Kaf...
Consulta de datos
Consulta: Hive
• Provee un mecanismo para proyectar
estructuras de datos y ser consultadas en
un lenguaje pseudo-SQL: Hive...
Consulta: Impala
• Mediante Impala se pueden consultar
datos de HDFS o de Hbase
• Se integra con Apache Hive, para
compart...
Consulta: Search (Solr)
• Indexación de contenidos escalable, fiable
y distribuido
• Capaz de Indexar:
– Texto
– JSON
– XM...
Análisis de Datos
Análisis de datos
• In-Memory Analytics vs. In-Hadoop Analytics
• El fondo es el mismo, pero ahora:
– Distribuido
– Escala...
Análisis de datos: Apache Mahout
• Un entorno para generar aplicaciones
escalables de machine learning
– El entorno mismo
...
Análisis de datos: Apache Spark
• Procesamiento en memoria (vs.
MapReduce)
• Muy rápido
• Java, Scala, Python
Análisis de datos: RHadoop
• R: Software estadístico muy extendido
• RHadoop:
– ravro: lee/escribe ficheros en formato Avr...
Otros…
Orquestador: ozzie
• Programa flujos de trabajo para gestionar
trabajos Hadoop
• Orquesta trabajos MapReduce, generados
en...
El cuidador: Zookeeper
• Servicio de mantenimiento de:
– Información de configuración
– Información de nombres (nodos)
– S...
Conclusiones
Ecosistema Hadoop (simplificado)
Apache
Pig:
Scripting
Almacenamient
o redundante y
fiable
YARN
Gestiona
recursos del
Clus...
Objetivos: ¿Qué valor añadido quiero
obtener?
• Alinea la necesidad de Big Data con los
objetivos de negocio
• Implementar...
Selecciona la infraestructura
• En casa?
– Hardware (mínimo): 2*6core CPU, 24-64GB
RAM, 1-2TB HDD
– Distribuciones Hadoop:...
Fórmate
• Diferentes perfiles:
– Sistemas:
• Administración del cluster, servidores y nodos
– Desarrollo
• NoSQL
• Procesa...
Une las piezas
• ¿Qué preguntas debo responder?
• ¿Cómo recojo los datos?
• ¿Cómo los almaceno?
• ¿Cómo los analizo?
• ¿Có...
Realiza implementaciones ágiles e
iterativas
Empieza con objetivos simples e
integra los resultados
• Según se van obteniendo pequeños
resultados, aparecen nuevas preg...
Conclusiones
• Objetivos, estrategia, ROI
• Datos: ¿Estamos preparados?
• Infraestructura Local o en la Nube?
• Big Data e...
Conclusiones
Las bases de datos tradicionales
y data warehouses siguen
siendo necesarias!
Conclusiones
Hadoop no es bueno en
analítica en tiempo real!!
Conclusiones
Una estrategia única basada en
Hadoop no tiene sentido
Conclusiones
Hadoop es complicado…
Conclusiones
No necesitas el ecosistema
completo
Eskerrik asko
www.mondragon.edu
Urko Zurutuza
Mondragon Unibertsitatea
uzurutuza@mondragon.edu
https://es.linkedin.com/in/...
Montando la infraestructura
• VMWare
• Ubuntu Server 14.04:
http://www.ubuntu.com/download/server
Montando la infraestructura
• Atención: Evitar “Easy Install” de VMWare.
Montando la infraestructura
• VMWare, características:
– RAM: 8GB
– 2 Procesadores
– Red en modo “Bridge”
– CD/DVD: usar l...
Montando la infraestructura
• Ubuntu, características:
– Nombres de las máquinas (hostname):
• taldeanodo1, taldeanodo2,…
...
Montando la infraestructura
• Ubuntu, características:
– Instalar Open SSH (al final)
– Putty
• A por ello!!
Monta una Infraestructura Big Data para tu Empresa - Sesión I
Monta una Infraestructura Big Data para tu Empresa - Sesión I
Monta una Infraestructura Big Data para tu Empresa - Sesión I
Monta una Infraestructura Big Data para tu Empresa - Sesión I
Próxima SlideShare
Cargando en…5
×

Monta una Infraestructura Big Data para tu Empresa - Sesión I

8.119 visualizaciones

Publicado el

Primera Sesión sobre el Curso de Enpresa Digitala "Monta una Infraestructura Big Data en tu Empresa", impartido por Urko Zurutuza de Mondragon Unibertsitatea. Hablaremos de Hadoop y de su ecosistema de herramientas.

Publicado en: Tecnología

Monta una Infraestructura Big Data para tu Empresa - Sesión I

  1. 1. Taller: “Monta una infraestructura Big Data para tu Empresa” Urko Zurutuza Dpto. Electrónica e Informática Mondragon Goi Eskola Politeknikoa JMA Mondragon Unibertsitatea
  2. 2. • http://bit.ly/bigdata_sesion1 • bit.ly/bigdatadocs
  3. 3. Agenda • Día 1: Introducción al Big Data • Día 2: Instalación de un cluster Cloudera • Día 3: Ejercicios sobre Cloudera
  4. 4. Índice 1. Introducción 2. Big Data 3. Ecosistema Big Data 4. Distribuciones Big Data 5. Herramientas Big Data 6. Conclusiones
  5. 5. Data CRECIMIENTO DE DATOS PARA EL 2020
  6. 6. Big Data
  7. 7. Un poco de historia…
  8. 8. Un poco de historia…
  9. 9. Un poco de historia…
  10. 10. Big Data “Big Data” hace referencia al conjunto de información que es demasiado compleja como para ser procesada mediante TI tradicionales de manera aceptable –Min Chen, Shiwen Mao, and Yunhao Liu. Big Data: A Survey. Mobile Networks and Applications, 19(2):171–209, 2014.
  11. 11. Big Data “Big Data hace referencia al conjunto de información que es demasiado compleja como para ser procesada mediante TI tradicionales de manera aceptable –Min Chen, Shiwen Mao, and Yunhao Liu. Big Data: A Survey. Mobile Networks and Applications, 19(2):171–209, 2014.
  12. 12. Big Data
  13. 13. Big Data
  14. 14. Big Data – Cambio de Paradigma
  15. 15. Big Data – Cambio de Paradigma
  16. 16. Ecosistema Big Data
  17. 17. Ecosistema Hadoop (simplificado) Apache Pig: Scripting Almacenamient o redundante y fiable YARN Gestiona recursos del Cluster Procesamiento Distribuido de datos Zookee per: Coordin a la distribuc ión Data Warehous e Machine Learning Colector de datos Conector BBDDR- HDFS S. O. S. O. S. O. S. O. S. O. S. O. S. O. S. O. S. O.
  18. 18. Distribuciones Hadoop
  19. 19. Distribuciones Hadoop • Cloudera • HortonWorks • MapR • IBM BigInsights • Amazon EC2 • Microsoft Azure HDInsight • …
  20. 20. Cloudera CDH
  21. 21. HortonWorks
  22. 22. MapR
  23. 23. IBM BigInsights
  24. 24. Oracle Big Data
  25. 25. Amazon EMR
  26. 26. Microsoft Azure HDInsight
  27. 27. Componentes
  28. 28. Apache Hadoop • Sistema que permite una computación – Fiable, – Escalable, y – Distribuida • Un Framework que permite el procesamiento distribuido de grandes conjuntos de datos sobre clusters de ordenadores
  29. 29. Apache Hadoop • Hadoop common: utilidades comunes que dan soporte al resto de los módulos de Hadoop • Hadoop Distributed File System (HDFS): sistema de ficheros distribuido. • Hadoop YARN: sistema para la planificación de trabajos y gestión de recursos del cluster • Hadoop MapReduce: sistema basado en YARN para procesamiento paralelo de grandes volúmenes de datos
  30. 30. ¿Quién usa Hadoop? • Adobe – We use Apache Hadoop and Apache HBase in several areas from social services to structured data storage and processing for internal use. – We currently have about 30 nodes running HDFS, Hadoop and HBase in clusters ranging from 5 to 14 nodes on both production and development. We plan a deployment on an 80 nodes cluster. – We constantly write data to Apache HBase and run MapReduce jobs to process then store it back to Apache HBase or external systems.
  31. 31. ¿Quién usa Hadoop? • EBay – 532 nodes cluster (8 * 532 cores, 5.3PB). – Heavy usage of Java MapReduce, Apache Pig, Apache Hive, Apache HBase – Using it for Search optimization and Research.
  32. 32. ¿Quién usa Hadoop? • Facebook – We use Apache Hadoop to store copies of internal log and dimension data sources and use it as a source for reporting/analytics and machine learning. – Currently we have 2 major clusters: • A 1100-machine cluster with 8800 cores and about 12 PB raw storage. • A 300-machine cluster with 2400 cores and about 3 PB raw storage. – Each (commodity) node has 8 cores and 12 TB of storage. – We are heavy users of both streaming as well as the Java APIs. We have built a higher level data warehousing framework using these features called Hive (see the http://hadoop.apache.org/hive/).
  33. 33. ¿Quién usa Hadoop? • Last.fm – 100 nodes – Dual quad-core Xeon L5520 @ 2.27GHz & L5630 @ 2.13GHz , 24GB RAM, 8TB(4x2TB)/node storage. – Used for charts calculation, royalty reporting, log analysis, A/B testing, dataset merging – Also used for large scale audio feature analysis over millions of tracks
  34. 34. ¿Quién usa Hadoop? • LinkedIn – We have multiple grids divided up based upon purpose. – Hardware: • ~800 Westmere-based HP SL 170x, with 2x4 cores, 24GB RAM, 6x2TB SATA • ~1900 Westmere-based SuperMicro X8DTT-H, with 2x6 cores, 24GB RAM, 6x2TB SATA • ~1400 Sandy Bridge-based SuperMicro with 2x6 cores, 32GB RAM, 6x2TB SATA – Software: • RHEL 6.3 • Sun JDK 1.6.0_32 • Apache Hadoop 0.20.2+patches and Apache Hadoop 1.0.4+patches • Pig 0.10 + DataFu • Azkaban and Azkaban 2 for scheduling • Apache Hive, Apache Avro, Apache Kafka, and other bits and pieces... – We use these things for discovering People You May Know and other fun facts.
  35. 35. ¿Quién usa Hadoop? • Spotify – We use Apache Hadoop for content generation, data aggregation, reporting and analysis – 690 node cluster = 8280 physical cores, 38TB RAM, 28 PB storage – +7,500 daily Hadoop jobs (scheduled by Luigi, our home-grown and recently open-sourced job scheduler - code and video)
  36. 36. ¿Quién usa Hadoop? • Twitter – We use Apache Hadoop to store and process tweets, log files, and many other types of data generated across Twitter. We store all data as compressed LZO files. – We use both Scala and Java to access Hadoop's MapReduce APIs – We use Apache Pig heavily for both scheduled and ad- hoc jobs, due to its ability to accomplish a lot with few statements. – We employ committers on Apache Pig, Apache Avro, Apache Hive, and Apache Cassandra, and contribute much of our internal Hadoop work to opensource (see hadoop-lzo)
  37. 37. Almacenamiento
  38. 38. Almacenamiento: HDFS • Diseñado para ejecutarse en Hw común (commodity) • Tolerante a fallos • Diseñado para trabajo por lotes (batch) • Diseñado para manejar ficheros grandes, enfocado en muchos accesos (throughput), más que en velocidad (latencia) • Modelo: escribir una vez, leer muchas • Importancia: es más barato mover la computación que los datos • Portabilidad
  39. 39. Almacenamiento: HDFS
  40. 40. Almacenamiento: NoSQL (Not Only SQL) • Base de Datos de nueva generación que en su mayoría aborda algunas de las siguientes características: – no relacional, – distribuida, – open-source, y – horizontalmente escalable [fuente: http://nosql-database.org/]
  41. 41. Almacenamiento: NoSQL (Not Only SQL) Tipo Descripción Ejemplo Clave- Valor Cada elemento tiene una clave y su valor asociado. emcached Familias de Columnas Para consultas sobre grandes conjuntos de datos. Enfoque en columnas no en filas Document os Empareja una clave con una estructura de datos o documento. Grafos Guarda nodos y sus relaciones. RRSS, estructuras de redes,… http://db-engines.com/en/ranking/
  42. 42. Almacenamiento: Base de Datos HBase • Qué es Hbase? – En Hbase los datos se almacenan en tablas, las cuales tienen filas y columnas… pero mejor verlo como un mapa u objeto multidimensional – Una tabla de Hbase contiene multiples filas. – Una fila de datos tiene una clave ordenable y un número arbitrario de columnas. La tabla se almacena de forma dispersa, de modo que las filas de una misma tabla pueden tener columnas tan variadas como se quiera.
  43. 43. Almacenamiento: Base de Datos HBase • Map: filas de datos { "zzzzz" : "woot", "xyz" : "hello", "aaaab" : "world", "1" : "x", "aaaaa" : "y" }
  44. 44. Almacenamiento: Base de Datos HBase • Sorted Map: filas ordenadas por la clave { "1" : "x", "aaaaa" : "y", "aaaab" : "world", "xyz" : "hello", "zzzzz" : "woot" }
  45. 45. Almacenamiento: Base de Datos HBase • Multidimensional: familias de columnas por cada fila{ "1" : { "A" : "x", "B" : "z" }, "aaaaa" : { "A" : "y", "B" : "w" }, "aaaab" : { "A" : "world", "B" : "ocean" }, "xyz" : { "A" : "hello", "B" : "there" }, "zzzzz" : { "A" : "woot", "B" : "1337" } }
  46. 46. Almacenamiento: Base de Datos HBase • Multidimensional: una familia de columnas puede tener varias columnas, identificadas por una etiqueta o qualifier{ // ... "aaaaa" : { "A" : { "foo" : "y", "bar" : "d" }, "B" : { "" : "w" } }, "aaaab" : { "A" : { "foo" : "world", "bar" : "domination" }, "B" : { "" : "ocean" } }, // ... }
  47. 47. Almacenamiento: Base de Datos HBase • Multidimensional: timestamp { // ... "aaaaa" : { "A" : { "foo" : { 15 : "y", 4 : "m" }, "bar" : { 15 : "d", } }, "B" : { "" : { 6 : "w" 3 : "o" 1 : "w" } } }, // ... }
  48. 48. Procesamiento de datos
  49. 49. Procesamiento de Datos • Varios modos de alimentar un sistema Hadoop: – Por lotes (batch): tengo todos los datos y los proceso – En tiempo real (streaming): según se generan los eventos los computo
  50. 50. Procesamiento en batch: MapReduce • Marco para escribir aplicaciones que procesan enormes cantidades de datos de forma paralela en grandes clusters formados por hardware común. • MapReduce job – Divide el conjunto de datos de entrada en pedazos (chunks) que son procesados por tareas “map” de forma paralela. – Ordena las salidas de los “maps”, que son entrada a las tareas “reduce”. – Opera sobre pares clave-valor. – No necesariamente en Java.
  51. 51. Procesamiento en batch: MapReduce , 4 , 2 , 4 , 3 , 4 , 2 , 4 , 3 Split Map Shuffle & Sort Reduce Master assignsassigns
  52. 52. Procesamiento en batch: MapReduce • Ejemplo: $ bin/hadoop dfs -cat /usr/joe/wordcount/input/file01 Hello World Bye World $ bin/hadoop dfs -cat /usr/joe/wordcount/input/file02 Hello Hadoop Goodbye Hadoop
  53. 53. Procesamiento en batch: MapReduce • Mapper: – procesa cada línea (cada línea un map) – Divide en tokens separados por espacios (palabras) – Emite un conjunto de claves-valor, en modo <palabra, 1> – Map 1: • < Hello, 1> • < World, 1> • < Bye, 1> • < World, 1> – Map 2: • < Hello, 1> • < Hadoop, 1> • < Goodbye, 1> • < Hadoop, 1>
  54. 54. Procesamiento en batch: MapReduce • Combiner: – Cada map se ordena y genera agregados locales: – Salida del primer Map: • < Bye, 1> • < Hello, 1> • < World, 2> – Salida del segundo Map: • < Goodbye, 1> • < Hadoop, 2> • < Hello, 1>
  55. 55. Procesamiento en batch: MapReduce • Reducer: – Suma los valores (ocurrencias de cada clave): • < Bye, 1> • < Goodbye, 1> • < Hadoop, 2> • < Hello, 2> • < World, 2>
  56. 56. Procesamiento en batch: Apache Pig • Plataforma para análisis/tratamiento de datos • Tiene un compilador que genera las sequencias de MapReduce • Lenguaje de alto nivel: Pig Latin: A = LOAD 'student' USING PigStorage() AS (name:chararray, age:int, gpa:float); X = FOREACH A GENERATE name,$2; DUMP X; (John,4.0F) (Mary,3.8F) (Bill,3.9F) (Joe,3.8F)
  57. 57. Procesamiento en streaming: Storm • Sistema de computación distribuido en tiempo real • “El hadoop del tiempo real” • Lo que en Hadoop son trabajos MapReduce, en Storm son topologías. – El MapReduce es un trabajo específico, – Una topología está haciendo el trabajo de forma persistente • Se pueden crear clusters de Storm
  58. 58. Proceso en streaming: Spark streaming • Procesamiento en memoria (vs. MapReduce) • Muy rápido • Java, Scala, Python
  59. 59. Ingestión de datos
  60. 60. Ingestión de Datos • Varios modos de alimentar un sistema Hadoop: –Por lotes (batch): hacer un volcado –En tiempo real (streaming): según se generan los eventos
  61. 61. Ingestión de Datos por lotes: HDFS • La forma más sencilla, pero debemos tener los datos en ficheros $ hadoop fs –put <nombre_fichero> • Rara vez, pero podría ser…
  62. 62. Ingestión de Datos por lotes: Apache sqoop • Transfiere datos entre Hadoop y datos estructurados como Bases de Datos Relacionales $ sqoop import --connect jdbc:mysql://database.example.com/employees --username aaron --password 12345 • No siempre tenemos los datos empaquetados en un único fichero
  63. 63. Ingestión de Datos por lotes: Apache sqoop tablas tablas Ficheros distribuidos BBDD Relacional BBDD RelacionalHDFS Tratamiento (MapReduce) (MapReduce) (MapReduce)
  64. 64. Ingestión de Datos en streaming: Apache Flume • Servicio distribuido y fiable para recopilar, agregar y mover grandes volúmenes de datos (de log) de forma eficiente • De muchas y variadas fuentes de logs a un lugar centralizado de almacenamiento de datos (ej. Hadoop) • Cuando los datos se generan de forma continua • No solo logs, también sirve para p.e. datos de tráfico de red, datos generados por social
  65. 65. Ingestión de Datos en streaming: Apache Flume • Una fuente externa envía eventos a un agente Flume, en un formato que Flume pueda reconocer. • El evento se guarda en el canal, hasta que es consumido por el sumidero (Sink) • El Sink quita el evento del canal y lo pone en un repositorio externo o en otro origen de Flume
  66. 66. Ingestión de Datos en streaming: Apache Flume
  67. 67. Ingestión de Datos en streaming: Apache Flume • Origenes Flume: – Avro – Thrift – Exec (el resultado de la ejecución de un comando Unix) – Un directorio a la espera de nuevos ficheros y sus contenidos – Twitter – NetCat – Syslog – HTTP
  68. 68. Ingestión de Datos en streaming: Apache Flume • Canales Flume: – Memoria – JDBC – Fichero – …
  69. 69. Ingestión de Datos en streaming: Apache Flume • Sinks Flume: – HDFS – Avro – Thrift – IRC – Fichero – Hbase – …
  70. 70. Ingestión de Datos en streaming: Apache Flume • El Sink HDFS crea un fichero, lo abre, mete datos, y cierra el fichero de forma constante • Se falla el Sink antes de cerrar el fichero, se pierden los datos: falta persistencia • En contra de la filosofía de Hadoop: ficheros grandes Vs. muchos ficheros pequeños – Sus metadatos se guardan en memoria del NameNode!!
  71. 71. Ingestión de Datos en streaming: Apache Kafka • Servicio para registro de logs distribuido y particionado • Rápido: un Kafka “broker” puede manejar cientos de megabytes de lecturas y escrituras por segundo de miles de clientes • Escalable: los flujos de datos se pueden dividir por el cluster, y así ser consumidos de forma distribuida • Durable: los mensajes son persistentes (en disco)
  72. 72. Consulta de datos
  73. 73. Consulta: Hive • Provee un mecanismo para proyectar estructuras de datos y ser consultadas en un lenguaje pseudo-SQL: HiveQL • La consulta genera un conjunto de MapReduces, donde su resultado se muestra como una tabla
  74. 74. Consulta: Impala • Mediante Impala se pueden consultar datos de HDFS o de Hbase • Se integra con Apache Hive, para compartir sus tablas y BBDD. • No usa MapReduce • Es de Cloudera (MapR tiene Drill)
  75. 75. Consulta: Search (Solr) • Indexación de contenidos escalable, fiable y distribuido • Capaz de Indexar: – Texto – JSON – XML – CSV
  76. 76. Análisis de Datos
  77. 77. Análisis de datos • In-Memory Analytics vs. In-Hadoop Analytics • El fondo es el mismo, pero ahora: – Distribuido – Escalable • Herramientas – R – Spark (Mllib) – TODOS: RapidMiner, SAS, Teradata,…
  78. 78. Análisis de datos: Apache Mahout • Un entorno para generar aplicaciones escalables de machine learning – El entorno mismo – Algoritmos de Scala + Spark, H2O y Flink – Algoritmos Mahout para Hadoop MapReduce • Algoritmos: – Recomendador – K-Means, Fuzzy K-Means clustering – Clasificadores Naïve Bayes, Random Forest – …
  79. 79. Análisis de datos: Apache Spark • Procesamiento en memoria (vs. MapReduce) • Muy rápido • Java, Scala, Python
  80. 80. Análisis de datos: RHadoop • R: Software estadístico muy extendido • RHadoop: – ravro: lee/escribe ficheros en formato Avro – rmr: funcionalidad MapReduce en R – rhdfs: funciones de gestión de ficheros en HDFS – rhbase: gestión de base de datos HBase desde R.
  81. 81. Otros…
  82. 82. Orquestador: ozzie • Programa flujos de trabajo para gestionar trabajos Hadoop • Orquesta trabajos MapReduce, generados en Java, Pig, Hive, Sqoop,…
  83. 83. El cuidador: Zookeeper • Servicio de mantenimiento de: – Información de configuración – Información de nombres (nodos) – Sincronización de la distribución
  84. 84. Conclusiones
  85. 85. Ecosistema Hadoop (simplificado) Apache Pig: Scripting Almacenamient o redundante y fiable YARN Gestiona recursos del Cluster Procesamiento Distribuido de datos Zookee per: Coordin a la distribuc ión Data Warehous e Machine Learning Colector de datos Conector BBDDR- HDFS S. O. S. O. S. O. S. O. S. O. S. O. S. O. S. O. S. O.
  86. 86. Objetivos: ¿Qué valor añadido quiero obtener? • Alinea la necesidad de Big Data con los objetivos de negocio • Implementar Big Data es decisión de negocio, no de TI • Evalúa los requisitos de los datos (V’s!)
  87. 87. Selecciona la infraestructura • En casa? – Hardware (mínimo): 2*6core CPU, 24-64GB RAM, 1-2TB HDD – Distribuciones Hadoop: Cloudera, MapR, Hortonworks • En la nube? – IaaS (Amazon Elastic Compute Cloud, Azure,…) – PaaS (Amazon Elastic MapReduce, Azure HDInsight,…) – SaaS (Teradata, sqlstream,…)
  88. 88. Fórmate • Diferentes perfiles: – Sistemas: • Administración del cluster, servidores y nodos – Desarrollo • NoSQL • Procesamientos (Map/Reduce, Storm, Spark, Pig,…) • Visual Analytics (d3.js, CartoDB, Gephi, Tableu,…) – Machine Learning / Data Mining • Conocimiento de Algoritmos y procesos • Herramientas/Lenguajes (R, SAS, …)
  89. 89. Une las piezas • ¿Qué preguntas debo responder? • ¿Cómo recojo los datos? • ¿Cómo los almaceno? • ¿Cómo los analizo? • ¿Cómo muestro los resultados?
  90. 90. Realiza implementaciones ágiles e iterativas
  91. 91. Empieza con objetivos simples e integra los resultados • Según se van obteniendo pequeños resultados, aparecen nuevas preguntas a responder. • Integrar resultados con el Sistema de Producción/Sistema de Gestión actual
  92. 92. Conclusiones • Objetivos, estrategia, ROI • Datos: ¿Estamos preparados? • Infraestructura Local o en la Nube? • Big Data está relacionado con: Análisis de Datos = Data Science • Analizas tus datos en “Small Data” ahora?
  93. 93. Conclusiones Las bases de datos tradicionales y data warehouses siguen siendo necesarias!
  94. 94. Conclusiones Hadoop no es bueno en analítica en tiempo real!!
  95. 95. Conclusiones Una estrategia única basada en Hadoop no tiene sentido
  96. 96. Conclusiones Hadoop es complicado…
  97. 97. Conclusiones No necesitas el ecosistema completo
  98. 98. Eskerrik asko www.mondragon.edu Urko Zurutuza Mondragon Unibertsitatea uzurutuza@mondragon.edu https://es.linkedin.com/in/uzurutuz a/ @urkovain
  99. 99. Montando la infraestructura • VMWare • Ubuntu Server 14.04: http://www.ubuntu.com/download/server
  100. 100. Montando la infraestructura • Atención: Evitar “Easy Install” de VMWare.
  101. 101. Montando la infraestructura • VMWare, características: – RAM: 8GB – 2 Procesadores – Red en modo “Bridge” – CD/DVD: usar la imagen .iso de Ubuntu
  102. 102. Montando la infraestructura • Ubuntu, características: – Nombres de las máquinas (hostname): • taldeanodo1, taldeanodo2,… • taldebnodo1, taldebnodo2,... • Taldecnodo1, taldecnodo2,... – Usuario: user – Password: eskola2016
  103. 103. Montando la infraestructura • Ubuntu, características: – Instalar Open SSH (al final) – Putty • A por ello!!

×