Tercera y última sesión del curso "Monta una Infraestructura para Big Data en tu Empresa" impartida por Urko Zurutuza de Mondragon Unibertsitatea para Enpresa Digitala. En esta sesión se muestran ejercicios prácticos y guiados que darán pie a probar algunas de las herramientas que dispone la distribucion Hadoop Cloudera CDH5.
Monta una Infraestructura Big Data para tu Empresa - Sesión IUrko Zurutuza
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.
Tutorial Introductorio a Big Data, Hadoop y sus tecnologías asociadas (Hive, Pig, HBase, HDFS), etc. Presentado en el XVIII Congreso Iberoamericano de Ingenieria del Software (CIBSE). Peru. Lima. Abril del 2015.
Monta una Infraestructura Big Data para tu Empresa - Sesión IIUrko Zurutuza
Segunda parte del Taller "Monta una Infraestructura Big Data para tu Empresa", impartido por Urko Zurutuza de Mondragon Unibertsitatea en Enpresa Digitala. En esta segunda parte, se aborda la instalación de un cluster mediante Cloudera Manager 5
Taller sobre la creación de un clúster de Apache Hadoop y aplicaciones de su entorno de las XIII Xornadas Libres de Gpul en la Universidade da Coruña http://gpul.es/e/2014/xornadas-libres/
Jornada en enpresa digitala: Mitos y Realidades del Big DataUrko Zurutuza
Esta presentación es la que utilicé como ponente de Mondragon Unibertsitatea para introducir al público asistente a la jornada de "Mitos y Realidades del Big Data" de Enpresa Digitala en su nodo de Goiru (http://www.euskadinnova.net/es/enpresa-digitala/agenda/mitos-realidades-data/8956.aspx?utm_source=rss_feed&utm_medium=rss&utm_campaign=accesos_rss). Se trata de una presentación donde se explican qué es y qué no es Big Data, enfocando sobre todo en la parte de almacenamiento, infraestructura, y análisis de los datos.
Big Data, Almacenes de Datos Empresariales (EDW) y Windows Azure (SQL Databas...Joseph Lopez
Breve sinopsis sobre como comprender todo el escenario en la manipulación de datos procedentes del Big Data, de los Almacenes de Datos Empresariales con motor de datos SQL Azure bajo Plataforma BI
Monta una Infraestructura Big Data para tu Empresa - Sesión IUrko Zurutuza
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.
Tutorial Introductorio a Big Data, Hadoop y sus tecnologías asociadas (Hive, Pig, HBase, HDFS), etc. Presentado en el XVIII Congreso Iberoamericano de Ingenieria del Software (CIBSE). Peru. Lima. Abril del 2015.
Monta una Infraestructura Big Data para tu Empresa - Sesión IIUrko Zurutuza
Segunda parte del Taller "Monta una Infraestructura Big Data para tu Empresa", impartido por Urko Zurutuza de Mondragon Unibertsitatea en Enpresa Digitala. En esta segunda parte, se aborda la instalación de un cluster mediante Cloudera Manager 5
Taller sobre la creación de un clúster de Apache Hadoop y aplicaciones de su entorno de las XIII Xornadas Libres de Gpul en la Universidade da Coruña http://gpul.es/e/2014/xornadas-libres/
Jornada en enpresa digitala: Mitos y Realidades del Big DataUrko Zurutuza
Esta presentación es la que utilicé como ponente de Mondragon Unibertsitatea para introducir al público asistente a la jornada de "Mitos y Realidades del Big Data" de Enpresa Digitala en su nodo de Goiru (http://www.euskadinnova.net/es/enpresa-digitala/agenda/mitos-realidades-data/8956.aspx?utm_source=rss_feed&utm_medium=rss&utm_campaign=accesos_rss). Se trata de una presentación donde se explican qué es y qué no es Big Data, enfocando sobre todo en la parte de almacenamiento, infraestructura, y análisis de los datos.
Big Data, Almacenes de Datos Empresariales (EDW) y Windows Azure (SQL Databas...Joseph Lopez
Breve sinopsis sobre como comprender todo el escenario en la manipulación de datos procedentes del Big Data, de los Almacenes de Datos Empresariales con motor de datos SQL Azure bajo Plataforma BI
Introducción a Hadoop y sus herramientas. Presentación de las herramientas de integración que ofrece SQL Server Integration Services 2016 con Hadoop y HDInsight
En esta presentación se incentiva el desarrollo de aplicaciones para la resolución de problemas comunes de hoy en día que implican el manejo de grandes volúmenes de información, desde el enfoque de Big Data.
Se propone la combinación de OpenStack y Hadoop para apoyar el desarrollo de soluciones, que permitan extraer información valiosa a partir de grandes volúmenes de datos.
Big Data no es una moda ni algo que esté por venir. Gran parte de las organizaciones ya cuentan con bases de datos tan grandes que requieren usar herramientas especiales. Ésta presentación nos ayuda a dar el primer paso, a conocer que en realidad qué es y como funciona, así como a adentrarnos en este maravilloso mundo de los datos al por mayor.
Introducción a Hadoop y sus herramientas. Presentación de las herramientas de integración que ofrece SQL Server Integration Services 2016 con Hadoop y HDInsight
En esta presentación se incentiva el desarrollo de aplicaciones para la resolución de problemas comunes de hoy en día que implican el manejo de grandes volúmenes de información, desde el enfoque de Big Data.
Se propone la combinación de OpenStack y Hadoop para apoyar el desarrollo de soluciones, que permitan extraer información valiosa a partir de grandes volúmenes de datos.
Big Data no es una moda ni algo que esté por venir. Gran parte de las organizaciones ya cuentan con bases de datos tan grandes que requieren usar herramientas especiales. Ésta presentación nos ayuda a dar el primer paso, a conocer que en realidad qué es y como funciona, así como a adentrarnos en este maravilloso mundo de los datos al por mayor.
Presentación durante el XXIX Encuentro de Telecomunicaciones y Economía Digital a cargo de Juan Angulo López-Dóriga, Director de Business Applications Services FUJITSU
Big Data - Infraestrucutra de BI para soluciones de BIDatalytics
Presentación de Infobright dada durante el foro "Las Dimensiones del BI" en Medellín (COL), donde se presentó la problemática actual de Big Data Analytics y las limitaciones que tienen las bases de datos transaccionales (IBM DB2, Oracle, Sybase, MySQL, PostgreSQL, etc.) para afrontar esta situación.
TECNOLOGIA DETRAS DE LAS REDES SOCIALES(FACEBOOK) - LENGUAJE DE PROGRAMACION IIChristian Garcia Gamio
FUNCIONALIDAD EN FACEBOOK, LA MARAVILLA DE ADMINISTRAR ENORME CANTIDAD DE DATOS DE LA MANERA MAS EFECTIVA Y DESARROLLANDO NUEVAS SOLUCIONES EN SU PLATAFORMA.
Log -Analytics with Apache-Flume Elasticsearch HDFS KibanaFelix Rodriguez
I’ve recently started learning more about the tools and technologies that fall under the loose umbrella term of Big Data, let´s try to get Apache log data into Hadoop, and bringing Info data into Hadoop via ElasticSearch.
Construyendo una Infraestructura de Big Data rentable y escalable (la evoluci...Socialmetrix
Socialmetrix lleva 6 años desarrollando soluciones para capturar, limpiar, organizar, procesar, almacenar y presentar información.
Los desafíos involucraron siempre seguir escalando en volumen de procesamiento y las funcionalidades a nuestros clientes.
Estas directivas nos llevaron hacia una búsqueda de soluciones innovadoras y tecnologías que nos permitan competir en un mercado global manteniendo la inversión y los costos bajo control.
Esta charla presenta las técnicas y tecnologías involucradas en el desarrollo de nuestros productos junto con los errores que cometimos y lecciones que aprendimos durante el desarrollo.
Introducción a Microsoft Azure SQL Data WarehouseJoseph Lopez
El nuevo Microsoft Azure SQL Data Warehouse (SQL DW) es un versátil servicio de almacén de datos que provee una solución Massively Parallel Processing (MPP) para "Big data" con verdaderas características de alta infraestructura empresarial. El servicio SQL DW está construido para la carga de datos en ejecución de unos cien gigabytes hasta petabytes de datos con características únicas como cálculo desagregado, permitiendo así que los clientes sean capaces de utilizar el servicio para satisfacer sus necesidades de almacenamiento. En la presente exposición les mostrare una mirada en profundidad de este nuevo servicio de Azure como la implementación, el escalamiento elástico (Grow, Shrink, y Pause), y las nubes de datos híbrida con integración de Hadoop a través Polybase permitiendo una verdadera experiencia de SQL a través de datos estructurados y no estructurados.
http://summit.solidq.com
Es innegable que los motores de BBDD transaccionales deben adaptarse a la posibilidad de gestionar datos no estructurados. Microsoft en SQL Server 2016 incluye un motor nuevo (llamado Polybase) que permite acceder con lenguaje Transact SQL a datos no estructurados y poder mezclarlos con datos estructurados. En esta sesión conocerá este nuevo motor y cómo empezar a integrar datos no estructurados en sus bases de datos transaccionales.
Introducción a Big Data. HDInsight - Webcast Technet SolidQSolidQ
http://university.solidq.com
Introducción a Big Data. Gracias a la nueva tecnología Microsoft Hadoop, tanto on-premise como en la nube, y a sus capacidades de almacenamiento, procesamiento y escalabilidad, podemos analizar grandes volúmenes de datos del orden de Terabytes o Petabytes de una forma rápida y con buen rendimiento. Es ahora el momento de familiarizarnos con la nueva forma de trabajar en Hadoop a la hora de extraer esa información distribuida por nuestros nodos. De la misma forma que hacemos con SQL Server, en esta sesión aprenderemos a desplegar y almacenar esa información en nuestros nodos, a crear consultas para extraer las partes que nos sean más útiles.
Introducción a esta base de datos NoSQL que permite desarrollar aplicaciones altamente escalables gracias a su velocidad (100k operaciones por segundo en un ordenador corriente) y su capacidad de trabajar en varios nodos.
En lugar de aprovisionar grandes recursos para tu DW, Azure ofrece una versión especial de SQL Server como DataWarehouse. Si está familiarizado con el appliance APS, SQLDW en Azure viene a ser su versión como servicio. Usted crea su DW desde el portal de Azure y ya puede empezar a cargar datos y explotarlos. En esta sesión veremos cómo habilitar el servicio y cómo empezar a explotar SQLDW como tu DW en la nube.
Datawarehouse como servicio en Azure (sqldw)SolidQ
http://summit.solidq.com
En lugar de aprovisionar grandes recursos para tu DW, Azure ofrece una versión especial de SQL Server como DataWarehouse. Si está familiarizado con el appliance APS, SQLDW en Azure viene a ser su versión como servicio. Usted crea su DW desde el portal de Azure y ya puede empezar a cargar datos y explotarlos. En esta sesión veremos cómo habilitar el servicio y cómo empezar a explotar SQLDW como tu DW en la nube.
Azure SQL Data Warehouse desde cada_anguloAdrian Miranda
Adjunto la presentación de la charla dada el 17 de mayo como parte del Capitulo Virtual de Pass en español. Pronto podrán ver el video en el canal de YouTube. También los invito a visitar el canal de BILATAM también en YouTube, donde pueden encontrar más videos sobre Azure, BI y bases de datos en general.
Realizar análisis de datos cuando se tienen que cruzar grandes cantidades de información, procesarla y limpiarla es un reto difícil y dispendioso. Apache Spark es un framework para procesar grandes cantidades de información.
SolidQ Business Analytics Day | Como de grandes son tus datosSolidQ
Presentación de Javier Torrenteras en el SolidQ Business Analytics Day en Valencia (España)
- ¿Por qué Big data?
- Entonces...Haddoop ¿Qué es?
- ventajas y Componentes de Hadoop
-HD Insight, Windows Azure HDInsight
-Grandes DW
www.bisql.com
Similar a Monta una Infraestructura para Big Data en tu Empresa (20)
2017-01-26 Internet Arriskuak: Andramendi Ikastola, Gurasoen saioaUrko Zurutuza
Aurkezpen hau Beasaingo Andramendi Ikastolako haurren gurasoei zuzendutakoa da, haiekin Internet-en dauden arriskuak ikusi eta ulertu ahal izateko: pribatutasuna, ziberbullying-a, grooming-a, sexting-a
2017-01-26 Internet Arriskuak: Andramendi Ikastola, haurren sesioaUrko Zurutuza
Aurkezpen hau Beasaingo Andramendi Ikastolako haurrei zuzendutakoa da, haiekin Internet-en dauden arriskuak ikusi eta ulertu ahal izateko: pribatutasuna, ziberbullying-a, grooming-a, sexting-a
Charla sobre los riesgos y recomendaciones de Internet y las redes sociales para los niños, impartida en la Ikastola Andramendi. Internet eta Sare Sozialen arriskuak aurrentzako.
¿Cómo encuentro al profesional especializado que necesito?Urko Zurutuza
Curso impartido en Tolosaldeko IKT astea, organizado por Lehiberri y Enpresa Digitala. Se describe el modo en que los candidatos pueden crear una identidad digital o marca personal en internet, y cómo se puede buscar y analizar un perfil deseado desde el punto de vista del reclutador.
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informáticavazquezgarciajesusma
En este proyecto de investigación nos adentraremos en el fascinante mundo de la intersección entre el arte y los medios de comunicación en el campo de la informática.
La rápida evolución de la tecnología ha llevado a una fusión cada vez más estrecha entre el arte y los medios digitales, generando nuevas formas de expresión y comunicación.
Continuando con el desarrollo de nuestro proyecto haremos uso del método inductivo porque organizamos nuestra investigación a la particular a lo general. El diseño metodológico del trabajo es no experimental y transversal ya que no existe manipulación deliberada de las variables ni de la situación, si no que se observa los fundamental y como se dan en su contestó natural para después analizarlos.
El diseño es transversal porque los datos se recolectan en un solo momento y su propósito es describir variables y analizar su interrelación, solo se desea saber la incidencia y el valor de uno o más variables, el diseño será descriptivo porque se requiere establecer relación entre dos o más de estás.
Mediante una encuesta recopilamos la información de este proyecto los alumnos tengan conocimiento de la evolución del arte y los medios de comunicación en la información y su importancia para la institución.
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informáticavazquezgarciajesusma
En este proyecto de investigación nos adentraremos en el fascinante mundo de la intersección entre el arte y los medios de comunicación en el campo de la informática.
La rápida evolución de la tecnología ha llevado a una fusión cada vez más estrecha entre el arte y los medios digitales, generando nuevas formas de expresión y comunicación.
Continuando con el desarrollo de nuestro proyecto haremos uso del método inductivo porque organizamos nuestra investigación a la particular a lo general. El diseño metodológico del trabajo es no experimental y transversal ya que no existe manipulación deliberada de las variables ni de la situación, si no que se observa los fundamental y como se dan en su contestó natural para después analizarlos.
El diseño es transversal porque los datos se recolectan en un solo momento y su propósito es describir variables y analizar su interrelación, solo se desea saber la incidencia y el valor de uno o más variables, el diseño será descriptivo porque se requiere establecer relación entre dos o más de estás.
Mediante una encuesta recopilamos la información de este proyecto los alumnos tengan conocimiento de la evolución del arte y los medios de comunicación en la información y su importancia para la institución.
Actualmente, y debido al desarrollo tecnológico de campos como la informática y la electrónica, la mayoría de las bases de datos están en formato digital, siendo este un componente electrónico, por tanto se ha desarrollado y se ofrece un amplio rango de soluciones al problema del almacenamiento de datos.
Es un diagrama para La asistencia técnica o apoyo técnico es brindada por las compañías para que sus clientes puedan hacer uso de sus productos o servicios de la manera en que fueron puestos a la venta.
En este documento analizamos ciertos conceptos relacionados con la ficha 1 y 2. Y concluimos, dando el porque es importante desarrollar nuestras habilidades de pensamiento.
Sara Sofia Bedoya Montezuma.
9-1.
Monta una Infraestructura para Big Data en tu Empresa
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
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. Índice
1. Ejemplo de MapReduce
2. Creando y editando una base de datos HBase
3. Ingerir datos estructurados con Apache sqoop
4. Consultar datos estructurados con HIVE e Impala
5. El valor del Big Data: datos no estructurados
6. Análisis avanzado con Spark
7. Búsquedas en tiempo real con Solr
8. Creación de un panel de mandos
5. Consideraciones previas
• Cloudera Quick Start:
• http://www.cloudera.com/content/cloudera/en/documen
tation/core/latest/topics/cloudera_quickstart_vm.html
• Dirección Cloudera Manager:
http://ip_cloudera:7180
• Dirección Hue: http://ip_cloudera:8888
• Algunos links no son relativos (y erroneamente
llevarán a quickstart.cloudera)
6. Consideraciones previas
• Cuenta (con privilegios sudo):
• username: cloudera
• password: cloudera
• La contraseña de root de MySQL es la
misma, al igual que Hue y Cloudera
Manager
9. 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.
11. 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
12. 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>
13. 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>
14. Procesamiento en batch:
MapReduce
• Reducer:
• Suma los valores (ocurrencias de cada clave):
• < Bye, 1>
• < Goodbye, 1>
• < Hadoop, 2>
• < Hello, 2>
• < World, 2>
17. 19
Ejercicio 1: ejecución
MapReduce[cloudera@quickstart ~]$ hadoop jar wordcount.jar org.myorg.WordCount /user/cloudera/wordcount/input
/user/cloudera/wordcount/output
16/06/29 10:21:52 INFO client.RMProxy: Connecting to ResourceManager at /0.0.0.0:8032
16/06/29 10:21:52 INFO client.RMProxy: Connecting to ResourceManager at /0.0.0.0:8032
16/06/29 10:21:52 WARN mapreduce.JobResourceUploader: Hadoop command-line option parsing not performed. Implement the Tool
interface and execute your application with ToolRunner to remedy this.
16/06/29 10:21:52 INFO mapred.FileInputFormat: Total input paths to process : 2
16/06/29 10:21:53 INFO mapreduce.JobSubmitter: number of splits:3
16/06/29 10:21:53 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1467220526122_0001
16/06/29 10:21:53 INFO impl.YarnClientImpl: Submitted application application_1467220526122_0001
16/06/29 10:21:53 INFO mapreduce.Job: The url to track the job:
http://quickstart.cloudera:8088/proxy/application_1467220526122_0001/
16/06/29 10:21:53 INFO mapreduce.Job: Running job: job_1467220526122_0001
16/06/29 10:22:03 INFO mapreduce.Job: Job job_1467220526122_0001 running in uber mode : false
16/06/29 10:22:03 INFO mapreduce.Job: map 0% reduce 0%
16/06/29 10:22:17 INFO mapreduce.Job: map 33% reduce 0%
16/06/29 10:22:19 INFO mapreduce.Job: map 67% reduce 0%
16/06/29 10:22:20 INFO mapreduce.Job: map 100% reduce 0%
16/06/29 10:22:25 INFO mapreduce.Job: map 100% reduce 100%
16/06/29 10:22:25 INFO mapreduce.Job: Job job_1467220526122_0001 completed successfully
16/06/29 10:22:25 INFO mapreduce.Job: Counters: 49
File System Counters
FILE: Number of bytes read=79
FILE: Number of bytes written=455843
FILE: Number of read operations=0
FILE: Number of large read operations=0
FILE: Number of write operations=0
HDFS: Number of bytes read=410
HDFS: Number of bytes written=41
HDFS: Number of read operations=12
HDFS: Number of large read operations=0
HDFS: Number of write operations=2
18. 20
Ejercicio 1: ejecución
MapReduceJob Counters
Launched map tasks=3
Launched reduce tasks=1
Data-local map tasks=3
Total time spent by all maps in occupied slots (ms)=36685
Total time spent by all reduces in occupied slots (ms)=5500
Total time spent by all map tasks (ms)=36685
Total time spent by all reduce tasks (ms)=5500
Total vcore-seconds taken by all map tasks=36685
Total vcore-seconds taken by all reduce tasks=5500
Total megabyte-seconds taken by all map tasks=37565440
Total megabyte-seconds taken by all reduce tasks=5632000
Map-Reduce Framework
Map input records=2
Map output records=8
Map output bytes=82
Map output materialized bytes=91
Input split bytes=357
Combine input records=8
Combine output records=6
Reduce input groups=5
Reduce shuffle bytes=91
Reduce input records=6
Reduce output records=5
Spilled Records=12
Shuffled Maps =3
Failed Shuffles=0
Merged Map outputs=3
GC time elapsed (ms)=445
CPU time spent (ms)=1970
Physical memory (bytes) snapshot=762191872
Virtual memory (bytes) snapshot=6006784000
Total committed heap usage (bytes)=557592576
23. 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.
42. Un paseo por la potencia de
Big Data
• Imaginemos que somos el “Data Specialist”
de una corporación
• El análisis de los datos debe responder a
preguntas concretas
43. Definir una pregunta de
Negocio
• Sin una pregunta bien definida:
• No sabremos como modelar los datos
• Qué estructuras de datos aplicar
• Qué conjuntos de datos deberemos
obtener
• Qué herramientas necesitaremos
44. Ingerir datos estructurados
• Pregunta de Negocio: “Qué productos les gusta
comprar a nuestros clientes?”
• Esta información se guarda por lo general en una
base de datos Transaccional, la cual nos dirá qué
clientes compran y quienes no cada producto.
• Necesitamos ingerir los datos de una BBDD en
HDFS
46. Ingerir datos estructurados
• Sqoop nos permite cargar los datos de MySQL
en HDFS, preservando la estructura de las tablas.
• Con unos parámetros extra, podremos cargarlos
en un formato (avro) que podrá luego ser utilizado
por Impala
48. Ejercicio 2: Ingerir datos estructurados: sqoop
• Pasos:
1. Importar todas las tablas desde MySQL a
HDFS.
2. Sqoop generará los esquemas de cada tabla.
Copiar estos esquemas a HDFS para que
HIVE los tenga disponibles.
3. Arrancamos Hive y definimos las tablas. Dos
opciones: (1) desde la línea de comandos y
(2) desde la interfaz web.
4. Mostramos las tablas
50
58. Consultar datos estructurados
• Dos herramientas para hacer consultas SQL en
CDH:
• Hive
• Traduce las consultas SQL a trabajos MapReduce.
• Bueno para trabajos en lote grandes, aplicando
transformaciones de forma flexible.
• Impala
• Significativamente más rápido y preparado para tener
baja latencia para consultas interectivas y exploración
de datos.
• Ambos comparten los metadatos sobre las tablas
59. Consultar datos estructurados
• Ejemplo en HIVE:
[cloudera@quickstart ~]$ hive
CREATE EXTERNAL TABLE categories
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.avro.AvroSerDe'
STORED AS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat'
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.avro.AvroContainerOutputFormat'
LOCATION 'hdfs:///user/hive/warehouse/categories'
TBLPROPERTIES ('avro.schema.url'='hdfs://quickstart.cloudera/user/urko/sqoop_import_categories.avsc');
categories, customers, departments, orders,
order_items, products
show tables;
exit;
60. Consultar datos estructurados
• Hemos transferido datos estructurados de una
base de datos relacional a HDFS
• Lo hemos transformado en formato Avro
• Hemos creado tablas HIVE, preparadas para ser
consultadas mediante Impala o consultas por
lotes de HIVE.
• Vamos a consultarlos!
63. Ejercicio 3: Consultar los datos
Mostrar las categorias de producto más populares
select c.category_name, count(order_item_quantity) as count
from order_items oi
inner join products p on oi.order_item_product_id = p.product_id
inner join categories c on c.category_id = p.product_category_id
group by c.category_name
order by count desc limit 10;
65
67. Ejercicio 3: Consultar los datos
Mostrar los 10 productos más satisfactorios
select p.product_id, p.product_name, r.revenue
from products p inner join (select oi.order_item_product_id,
sum(cast(oi.order_item_subtotal as float)) as revenue from
order_items oi inner join orders o on oi.order_item_order_id =
o.order_id where o.order_status <> 'CANCELED' and o.order_status
<> 'SUSPECTED_FRAUD' group by order_item_product_id) r on
p.product_id = r.order_item_product_id order by r.revenue desc
limit 10;
69
70. El valor del Big Data
• Hasta ahora, el resultado no es nuevo: SQL!
• Pregunta de negocio: “son los productos más
vistos los más vendidos?”
• Devemos correlacionar datos estructurados con
otros no estructurados:
• Usando Web logs, podremos ver los productos más
vistos
• Para ingerir flujos de clicks: Flume
71. El valor del Big Data
• Flume: un framework de tiempo real y escalable
para encaminar, filtrar, agregar, y realizar
pequeñas operaciones sobre datos
• Para este ejercicio, ya tenemos recopilados un
conjunto de datos de acceso web en
/opt/examples/log_data/access.log.2
73. Ejercicio 4: El valor del Big Data
• Cargar los datos de log a HDFS:
[cloudera@quickstart ~]$ hadoop fs -copyFromLocal /opt/examples/log_files/access.log.2
/user/hive/warehouse/original_access_logs
• Entrar en HIVE:
[cloudera@quickstart ~]$ hive
75
74. Ejercicio 4: El valor del Big Data
• Crear una tabla en Hive, y consultarla mediante Impala o Hive
CREATE EXTERNAL TABLE intermediate_access_logs (
ip STRING,
date STRING,
method STRING,
url STRING,
http_version STRING,
code1 STRING,
code2 STRING,
dash STRING,
user_agent STRING)
ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.RegexSerDe'
WITH SERDEPROPERTIES (
"input.regex" = "([^ ]*) - - [([^]]*)] "([^ ]*) ([^ ]*) ([^ ]*)" (d*) (d*) "([^"]*)" "([^"]*)"",
"output.format.string" = "%1$s %2$s %3$s %4$s %5$s %6$s %7$s %8$s %9$s"
)
LOCATION '/user/hive/warehouse/original_access_logs';
76
75. Ejercicio 4: El valor del Big Data
• Crear una tabla en Hive, y consultarla mediante Impala o Hive
CREATE EXTERNAL TABLE tokenized_access_logs (
ip STRING,
date STRING,
method STRING,
url STRING,
http_version STRING,
code1 STRING,
code2 STRING,
dash STRING,
user_agent STRING)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
LOCATION '/user/hive/warehouse/tokenized_access_logs';
ADD JAR /usr/lib/hive/lib/hive-contrib.jar;
INSERT OVERWRITE TABLE tokenized_access_logs SELECT * FROM intermediate_access_logs;
Exit;
77
80. El valor del Big Data
Uno de los productos más
vistos no está entre los más
comprados!!
81. El valor del Big Data
• La correlación entre ambos datos permitió
detectar un error en el precio mostrado para el
producto “Adidas Kids’ RG III Mid Football Cleat”.
Una vez corregido, las ventas del producto
empezaron a crecer rápidamente ;)
83. Advanced Analytics
• Pregunta de negocio: ¿Qué productos se suelen
comprar de forma conjunta?
• La respuesta podría ayudar a:
• Optimizar campañas de marketing, posicionando
productos de forma conjunta
• Podrían utilizarlo para mejorar ventas de productos
menos vistos
• Una herramienta que permite realizar análisis
rápidos sobre relaciones de objetos es Apache
Spark
87. Advanced Analytics
// First we're going to import the classes we need and open some of the files
// we imported from our relational database into Hadoop with Sqoop
import org.apache.avro.generic.GenericRecord
import org.apache.avro.mapred.{AvroInputFormat, AvroWrapper}
import org.apache.hadoop.io.NullWritable
val warehouse = "hdfs://quickstart.cloudera/user/hive/warehouse/"
val order_items_path = warehouse + "order_items"
val order_items = sc.hadoopFile[AvroWrapper[GenericRecord], NullWritable,
AvroInputFormat[GenericRecord]](order_items_path)
val products_path = warehouse + "products"
val products = sc.hadoopFile[AvroWrapper[GenericRecord], NullWritable,
AvroInputFormat[GenericRecord]](products_path)
88. Advanced Analytics
// Next, we extract the fields from order_items and products that we care about
// and get a list of every product, its name and quantity, grouped by order
val orders = order_items.map { x => (
x._1.datum.get("order_item_product_id"),
(x._1.datum.get("order_item_order_id"), x._1.datum.get("order_item_quantity")))
}.join(
products.map { x => (
x._1.datum.get("product_id"),
(x._1.datum.get("product_name")))
}
).map(x => (
scala.Int.unbox(x._2._1._1), // order_id
(
scala.Int.unbox(x._2._1._2), // quantity
x._2._2.toString // product_name
)
)).groupByKey()
89. Advanced Analytics
// Finally, we tally how many times each combination of products appears
// together in an order, and print the 10 most common combinations.
val cooccurrences = orders.map(order =>
(
order._1,
order._2.toList.combinations(2).map(order_pair =>
(
if (order_pair(0)._2 < order_pair(1)._2) (order_pair(0)._2, order_pair(1)._2) else (order_pair(1)._2,
order_pair(0)._2),
order_pair(0)._1 * order_pair(1)._1
)
)
)
)
val combos = cooccurrences.flatMap(x => x._2).reduceByKey((a, b) => a + b)
val mostCommon = combos.map(x => (x._2, x._1)).sortByKey(false).take(10)
println(mostCommon.deep.mkString("n"))
92. buscando en un mar de datos
• Los logs pueden ser una fuente imprescindible de
información
• Vamos a ser capaces de explorar de forma
interactiva eventos de Log Web, indexando los
datos, y haciendo que puedan ser buscados
• Vamos a extender Apache Flume anterior, de
modo que ademas de ingerir logs, enviará los
eventos a Apache Solr para su indexación en
tiempo real
93. buscando en un mar de datos
• Flume
• Solr
• Organiza los datos de la misma manera que una BBDD SQL.
• Dada registro se llama “document”, y contiene campos definidos en un
esquema
• Un conjunto de documentos forman una colección.
• Es menos estricto en cuanto a la estructura:
• Campos opcionales
• Flexibilidad en las consultas de texto
94. 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 media,
emails, …
95. 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 embudo (Sink)
• El Sink quita el evento del canal y lo pone en un
repositorio externo o en otro origen de Flume
97. 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
98. Ingestión de Datos en streaming:
Apache Flume
• Canales Flume:
• Memoria
• JDBC
• Fichero
• …
99. Ingestión de Datos en streaming:
Apache Flume
• Sinks Flume:
• HDFS
• Avro
• Thrift
• IRC
• Fichero
• Hbase
• …
100. Ingestión de Datos en streaming:
Apache Flume
• Miramos la configuracion de flume:
cd /opt/examples/flume
101. buscando en un mar de datos
• Crear el índice de búsqueda:
solrctl --zk quickstart.cloudera:2181/solr instancedir --generate solr_configs
• Generar los ficheros de configuración:
<fields>
<field name="_version_" type="long" indexed="true" stored="true" multiValued="false" />
<field name="id" type="string" indexed="true" stored="true" required="true"
multiValued="false" />
<field name="ip" type="text_general" indexed="true" stored="true"/>
<field name="request_date" type="date" indexed="true" stored="true"/>
<field name="request" type="text_general" indexed="true" stored="true"/>
<field name="department" type="string" indexed="true" stored="true"
multiValued="false"/>
<field name="category" type="string" indexed="true" stored="true"
multiValued="false"/>
<field name="product" type="string" indexed="true" stored="true" multiValued="false"/>
<field name="action" type="string" indexed="true" stored="true" multiValued="false"/>
</fields>
102. Ejercicio 6: Buscando en un mar de datos
• Cargamos la configuración (y morplines.conf)
[cloudera@quickstart ~]$ cd /opt/examples/flume
[cloudera@quickstart ~]$ solrctl --zk
quickstart.cloudera:2181/solr instancedir --create live_logs
./solr_configs
• Creamos la colección
[cloudera@quickstart ~]$ solrctl --zk
quickstart.cloudera:2181/solr collection --create live_logs -s
1
• Arrancamos el agente flume
[cloudera@quickstart ~]$ start_logs
[cloudera@quickstart ~]$ flume-ng agent --conf /opt/examples/flume/conf --
conf-file /opt/examples/flume/conf/flume.conf --name agent1 -
Dflume.root.logger=DEBUG,INFO,console
104
109. Creando un panel de mandos
• Las búsquedas son rápidas, pero aún es fácil
perdernos
• Vamos a crear un panel de mandos para analizar
el comportamiento de las visitas Web en tiempo
real.
Los esquemas solo se aplican cuando se consultan los datos (squema on read). Es decir, si necesitamos cruzar tablas con SQL, entonces acudimos al esquema para ver por qué claves cruzar. Pero al estar los ficheros sueltos, así se pueden ingerir or otros sistemas.
La serialización (o marshalling en inglés) consiste en un proceso de codificación de un objeto en un medio de almacenamiento (como puede ser un archivo, o un buffer de memoria) con el fin de transmitirlo a través de una conexión en red como una serie de bytes o en un formato humanamente más legible como XML o JSON, entre otros.
he most common area that you would be interested in is the <fields></fields> section. From this area you can define the fields that are present and searchable in your index.