Está en la página 1de 150

BIG DATA

PROFESSIONAL CERTIFICATE
(BDPC)
Fuente de Este Material

Este material educativo sobre Big Data fue


desarrollado por el Dr. Anil Maheshwari,
catedrático de Sistemas de Información de
Gestión y Director del Centro de Análisis de
Datos de Maharishi University of
Management. Enseña cursos de sistemas de
información, análisis de Big Data, liderazgo y
marketing.

Copyright © 2017 McGraw Hill Education, All Rights Reserved.

PROPRIETARY MATERIAL © 2017 The McGraw Hill Education, Inc. All rights reserved. No part of this PowerPoint slide may be displayed, reproduced or distributed in any form or by any means,
without the prior written permission of the publisher, or used beyond the limited distribution to teachers and educators permitted by McGraw Hill for their individual course preparation. If you are a
student using this PowerPoint slide, you are using it without permission.

3
Agenda

• Capítulo 1 – Integridad de Big Data.


• Capítulo 2 – Fuentes y aplicaciones de Big Data.
• Capítulo 3 – Arquitecturas de Big Data.
• Capítulo 4 – Computación Distribuida Utilizando Hadoop.
• Capítulo 5 – Procesamiento Paralelo con MapReduce.
• Capítulo 6 – Bases de Datos NoSQL.
• Capítulo 7 – Procesamiento Stream con Spark.
• Capítulo 8 – Nueva Ingestión de Datos.
• Capítulo 9 - Computación en la Nube.
• Capítulo 10 – Aplicación de Análisis Web.

4
Capítulo 1 – Integridad de Big Data
Objetivos de Aprendizaje

• Comprender Big Data y sus poderosos beneficios comerciales.


• Conocer las diferencias entre Big Data y datos convencionales.
• Aprender las 4 V’s de Big Data: Volumen, velocidad, variedad y veracidad.
• Descubrir tres tipos de aplicaciones comerciales de Big Data.
• Obtener valiosos consejos sobre cómo administrar Big Data.
• Conceptualizar el ecosistema Big Data y sus componentes claves.
• Apreciar los principales desafíos tecnológicos en la administración de Big Data.
• Relacionarse con las soluciones tecnológicas clave para abordar esos desafíos.

6
Integridad

• Big Data es un término global que se refiere a datos extremadamente grandes, muy
rápidos, muy diversos y complejos que no se pueden administrar con las herramientas
de administración de datos tradicionales.
• Big Data incluye todo tipo de datos y ayuda a entregar la información correcta a la
persona adecuada, en la cantidad correcta y en el momento adecuado, para ayudar a
tomar las decisiones correctas.
• Big Data puede aprovecharse mediante el desarrollo de arquitecturas de datos
infinitamente escalables, totalmente flexibles y evolutivas, junto con el uso de máquinas
de computación rentables.
• El conocimiento potencial infinito incrustado en esta computadora cósmica de Big Data
puede ayudar a conectarse y disfrutar del apoyo de todas las leyes de la naturaleza.

7
Contexto de
Big Data
Dos Niveles de Big Data

• En un nivel fundamental, Big Data es simplemente otra colección de datos que se


pueden analizar y utilizar para el beneficio del negocio.
• En otro nivel, es un tipo especial de datos que plantea desafíos únicos y ofrece
beneficios únicos.
• La cantidad de Big Data es 1.000 veces mayor que la de los datos tradicionales.
• La velocidad de generación y transmisión de datos es 1.000 veces más rápida.
• Las formas y funciones de Big Data son 10 veces más diversas: desde números
hasta texto, imágenes, audio, videos, registros Web, datos de la máquina y más.
• Hay muchas más fuentes de datos, desde individuos hasta organizaciones y
gobiernos, usando una gama de dispositivos desde teléfonos celulares hasta
computadoras y máquinas industriales.
• No todo en Big Data tiene la misma calidad y valor.

9
CASELET: IBM Watson

P1: ¿Qué tipos de conocimiento, tecnologías y


habilidades de Big Data se requieren para
construir un sistema como Watson? ¿Qué otros
recursos se necesitan?
P2: ¿Los médicos podrán competir con Watson en
el diagnóstico de enfermedades y la prescripción
de medicamentos? ¿Quién más podría beneficiarse
de un sistema como Watson?

10
Alcance de
Big Data
Las 4 V’s de Big Data

• Volumen: La cantidad de datos generados en el mundo se ha duplicado incesantemente


cada 12-18 meses.
• Velocidad: Si los datos tradicionales son como un lago en calma, Big Data es como un
río rápido y furioso.
• Variedad: Si los datos tradicionales de las facturas y los libros contables eran como una
pequeña sala llena de datos, Big Data es como el mayor centro comercial imaginable
que ofrece variedad ilimitada.
• Veracidad: Big Data es confuso. Hay mucha desinformación y desconocimiento por ahí.

12
Volumen

• La cantidad de datos generados en el mundo se ha duplicado incesantemente cada 12-


18 meses.
• Big Data se mide en Petabytes y Exabytes. No se puede almacenar en ningún
dispositivo de almacenamiento individual. Necesita una red distribuida para almacenarlo
todo.
• La razón principal para el crecimiento de los datos es la dramática reducción en el costo
de almacenamiento de datos. Los costos de almacenamiento de datos han disminuido
en un 30-40 % cada año.
• Por lo tanto, existe un incentivo para registrar todo lo que se puede observar. Se llama
“dataficación”.

13
Velocidad

• Big Data está siendo generado por billones de dispositivos y se comunica a la velocidad
de la luz, a través de Internet.
• Ingerir todos estos datos es como beber de una manguera contra incendios; no se tiene
ningún control sobre qué tan rápido vendrán los datos.
• La razón principal de la mayor velocidad de los datos es el aumento en la velocidad de
Internet. Las velocidades de Internet disponibles para hogares y oficinas ahora están
aumentando de 10MB / seg a 1GB / seg (100 veces más rápido). Cada vez más
personas obtienen acceso a Internet de alta velocidad en todo el mundo.
• Otra razón importante es la mayor variedad de fuentes, como dispositivos móviles que
pueden generar y comunicar datos desde cualquier lugar, en cualquier momento.

14
Variedad

• Big Data incluye todas las formas de datos, para todo tipo de funciones, de todas las
fuentes y dispositivos. Hay tres aspectos:
• Forma de datos: Los tipos de datos van desde números hasta texto, gráfico, mapa,
audio, video y otros. Algunos de estos tipos de datos son simples, mientras que
otros son muy complejos.
• Función de datos: Hay datos de conversaciones humanas, canciones y películas,
registros de transacciones comerciales, datos de rendimiento de máquinas y
operaciones, diseño de nuevos productos, archivos, etc.
• Fuente de datos: Comunicaciones humano-humano; comunicaciones humano-
máquina; y comunicaciones de máquina a máquina.

15
Veracidad

• Se relaciona con la veracidad, credibilidad y calidad de los datos.


• Prejuicio: La fuente de información puede no ser autoritativa.
• Técnico de error humano: Los datos pueden no ser comunicados y recibidos
correctamente debido a una falla humana o técnica.
• Los sensores y las máquinas para recopilar y comunicar datos pueden funcionar mal
y pueden registrar y transmitir datos incorrectos.
• La urgencia puede requerir la transmisión de los mejores datos incompletos
disponibles en un momento determinado.
• Intento malicioso: Los datos proporcionados y recibidos, sin embargo, también pueden
ser intencionalmente incorrectos, por razones de competitividad o seguridad. Podría
haber desinformación e información maliciosa diseminada por razones estratégicas.

16
Aplicaciones de Big Data

• Monitoreo y seguimiento de la ubicación, el consumo, etc.


• Análisis y visión para marketing, acción específica, etc.
• Desarrollo de productos basados ​en datos para productos digitales.

17
Gestión de Big Data

• Centrarse en objetivos comerciales específicos para evitar sentirse abrumado.


Comenzar abordando los objetivos centrados en el cliente.
• Comenzar las implementaciones piloto utilizando fuentes internas de datos existentes y
recientemente accesibles.
• La unión de humanos y datos conduce a la mayor cantidad de ideas. Desarrollar o
contratar habilidades y capacidades de Big Data.
• Cuanto antes se analicen los datos, mayor será su valor predictivo.
• No desechar los datos si no se puede ver su uso inmediato. Los datos generalmente
tienen un valor más allá de lo que inicialmente se anticipa.
• Planificar un crecimiento exponencial. Crear un entorno de procesamiento de
información flexible, seguro, eficiente, flexible y en tiempo real.

18
Ecosistema de Big Data
Analizando Big Data

• Stream Processing, para estadísticas de alto nivel en tiempo real sobre los datos.
• Batch Processing, utilizando técnicas analíticas estándar para generar estadísticas.
• Binning Data, para reducir a menos categorías significativas.

20
Tablero en Tiempo Real
Desafíos Técnicos de Big Data

• Desafío #1: Almacenar grandes cantidades de datos.


• Ninguna máquina de almacenamiento es lo suficientemente grande como para
almacenar la cantidad de datos que crece incesantemente. Se necesita almacenar
en una gran cantidad de máquinas más pequeñas y económicas.
• Existe el desafío inevitable de la falla de la máquina. La falla de una máquina podría
implicar una pérdida de datos almacenados en ella.
• Solución: Distribuir datos a través de un gran grupo escalable de máquinas de bajo
costo.
• Garantiza que cada dato se repita sistemáticamente en varias máquinas para
garantizar que siempre haya al menos una copia disponible.
• Agregar más máquinas según sea necesario.
• Hadoop es un sistema bien conocido para gestionar grandes volúmenes.

22
Desafíos Técnicos de Big Data

• Desafío #2: Ingestión y procesamiento de flujos a un ritmo extremadamente rápido.


• Flujos de datos impredecibles y torrenciales demasiado grandes para almacenar,
pero aún deben ser monitoreados.
• Solución: Crear sistemas de ingesta escalables.
• Puede abrir un número ilimitado de canales para recibir datos. Los datos se pueden
guardar en colas, desde las cuales las aplicaciones comerciales pueden leer y
procesar datos a su propio ritmo y conveniencia. Apache Kafka es un sistema
popular de ingesta dedicado.
• El motor de procesamiento de flujo puede hacer su trabajo mientras el
procesamiento por lotes hace su trabajo. Apache Spark es el sistema más popular
para aplicaciones de transmisión.

23
Desafíos Técnicos de Big Data

• Desafío #3: Manejar una variedad de formas y funciones de datos.


• Almacenarlos en estructuras planas o relacionales tradicionales sería demasiado
poco práctico, antieconómico y lento. Acceder y analizarlos requiere diferentes
capacidades.
• Solución: Use sistemas no relacionales que relajen muchas de las condiciones más
estrictas del modelo relacional.
• Estas se llaman bases de datos NoSQL (no solo SQL). Estas bases de datos están
optimizadas para ciertas tareas, como procesamiento de consultas o procesamiento
de gráficos, procesamiento de documentos, etc.
• HBase y Cassandra son dos de los sistemas de bases de datos NoSQL más
conocidos.

24
Desafíos Técnicos de Big Data

• Desafío #4: Procesamiento de grandes cantidades de datos.


• Mover grandes cantidades de datos desde el almacenamiento al procesador
consumiría una enorme capacidad de red y ahogaría la red.
• Solución: Mueva el procesamiento al lugar donde se almacenan los datos.
• Distribuya la lógica de la tarea en todo el conjunto de máquinas donde se
almacenan los datos.
• Las máquinas trabajan en paralelo en los datos que se les asignan.
• Un proceso de seguimiento consolida los resultados intermedios y entrega los
resultados finales.
• MapReduce, inventado por Google, es la tecnología más conocida para el
procesamiento paralelo.

25
Resumen de Desafíos y Soluciones
Comparación de Tradicionales y
Big Data
Preguntas de Revisión

1. ¿Qué es Big Data? ¿Por qué debería importarle a alguien?


2. Describe el modelo 4 V’s de Big Data.
3. ¿Cuáles son los principales desafíos tecnológicos en la gestión de Big Data?
4. ¿Cuáles son las tecnologías disponibles para administrar Big Data?
5. ¿Qué tipo de análisis se pueden hacer en Big Data?
6. Observe cómo el CEO de Cloudera presenta la evolución de Hadoop en
https://www.youtube.com/watch?v=S9xnYBVqLws. ¿Por qué la gente no le prestó
atención a Hadoop y MapReduce cuando se introdujo? ¿Qué implicaciones tiene para
las tecnologías emergentes?

28
Ejercicio Práctico de
Liberty Stores: Paso B1

Liberty Stores Inc. es una cadena minorista global especializada que vende alimentos
orgánicos, ropa orgánica, productos para el bienestar y productos educativos a
ciudadanos ilustrados de LOHAS (Lifestyles of the Healthy and Sustainable) en todo el
mundo. La compañía tiene 20 años y está creciendo rápidamente. Ahora opera en 5
continentes, 50 países, 150 ciudades y tiene 500 tiendas. Vende 20000 productos y tiene
10000 empleados. La compañía tiene ingresos de más de $ 5 billones y tiene una
ganancia de aproximadamente 5 por ciento de sus ingresos. La Compañía presta especial
atención a las condiciones bajo las cuales los productos son cultivados y producidos.
Dona aproximadamente una quinta parte (20 por ciento) de sus ganancias antes de
impuestos de causas caritativas locales globales.

1. Sugerir una estrategia integral de Big Data para el CEO de la Compañía.


2. ¿Cómo puede un sistema Big Data como IBM Watson ayudar a esta empresa?

29
Capítulo 2 – Fuentes y Aplicaciones de Big Data
Objetivos de Aprendizaje

• Aprender las tres categorías de fuentes de Big Data.


• Aprender las tres categorías de aplicaciones de Big Data.
• Descubrir cómo el Internet de las cosas (IoT) está impulsando Big Data.
• Aprender cómo analizar e interpretar Big Data requiere precaución.

31
Ecosistema/Arquitectura de Big Data
Aplicación de Google Flu
Fuentes de Big Data Sources

• Comunicaciones Entre Personas.


• Redes Sociales.
• Comunicaciones Entre Personas y Máquina.
• Acceso Web.
• Comunicaciones de Máquina a Máquina (M2M).
• Etiquetas RFID.
• Sensores.

34
Comunicaciones Entre Personas

• Medios viejos y nuevos; 1-1 y redes sociales.


• Plataformas de escucha para filtrar y analizar.
• Video, audio, más variedad.

35
Comunicaciones Entre
Personas y Máquinas

• Registros Web.
• Asistentes digitales.
• Registros de movimiento de teléfonos móviles.
• Dispositivos de ejercicios personales móviles.

36
Comunicaciones Máquina
a Máquina

• Sensores y rastreadores.
• Dispositivos RFID.
• Internet de las cosas: Un trillón de dispositivos.
• Plataformas de escucha para filtrar y analizar.

37
Aplicaciones de Big Data

• Aplicaciones de monitoreo y seguimiento.


• Vigilancia de la salud pública.
• Monitoreo del sentimiento del consumidor.
• Seguimiento de activos.
• Seguimiento de la cadena de suministro.
• Seguimiento del consumo eléctrico.
• Mantenimiento preventivo de máquinas.

38
Monitoreo de Sensibilidad
del Consumidor
Monitoreo de Sensibilidad
del Consumidor
Aplicaciones de Big Data

• Aplicaciones de análisis e información.


• Vigilancia predictiva.
• Ganar elecciones políticas.
• Salud personal.

41
Aplicación de Vigilancia Predictiva
Aplicaciones de Big Data

• Desarrollo de nuevo producto.


• Seguro de automóvil flexible.
• Promoción minorista basada en ubicación.
• Servicio de recomendación.

43
Seguro de Automóvil Flexible
Preguntas de Revisión

1. ¿Cuáles son las principales fuentes de Big Data? Describe una fuente de cada tipo.
2. ¿Cuáles son los tres principales tipos de aplicaciones de Big Data? Describe dos
aplicaciones de cada tipo.
3. ¿Sería ético arrestar a alguien basándose en la predicción de un modelo de Big Data
de que esa persona pueda cometer un delito?
4. Una compañía de seguros de automóviles aprendió sobre los movimientos de una
persona en función del GPS instalado en el vehículo. ¿Sería ético usar eso como una
herramienta de vigilancia?
5. La investigación puede describir una aplicación de Big Data que tiene un rendimiento
comprobado de la inversión (ROI) para una organización.

45
Ejercicio Práctico de
Liberty Stores: Paso B2

El Consejo de Administración le pidió a la Compañía que tome medidas concretas y


efectivas para convertirse en una empresa impulsada por los datos. La compañía quiere
entender mejor a sus clientes. Quiere mejorar los niveles de felicidad de sus clientes y
empleados. Quiere innovar en nuevos productos que les gustaría a sus clientes. Quiere
relacionar sus actividades caritativas con los intereses de sus clientes.

1. ¿Qué tipo de fuentes de datos debe capturar la empresa para esto?


2. ¿Qué tipo de aplicaciones Big Data sugerirías para esta empresa?

46
Capítulo 3 – Arquitecturas de Big Data
Objetivos de Aprendizaje

• Apreciar la variedad de arquitecturas para el ecosistema Big Data.


• Apreciar las muchas capas de tecnologías en la arquitectura Big Data.
• Descubrir cómo las principales organizaciones están diseñando soluciones de Big Data.

48
Arquitectura de
Google Query
Ecosistema / Arquitectura de Big Data
Capas en Arquitectura
de Big Data

• Fuentes de datos - P2P, P2M, comunicación M2M, operaciones de Biz.


• Ingesta de datos – Apache Kafka.
• Análisis de transmisión por secuencias – Apache Spark.
• Análisis por lotes - Apache MapReduce.
• Capa organizadora de datos, NoSQL - Apache HBase.
• Capa de sistema de archivos distribuidos – HDFS.
• Capa de infraestructura - Computación en la nube.
• Capa de consumo de datos - Minería de datos, etc.

51
Arquitectura IBM Watson
Análisis en el contexto de Big Data DeepQA: La arquitectura subyacente a Watson

Genera muchas hipótesis,


recopila una amplia gama de
pruebas, equilibra las
confidencias combinadas de
más de 100 analíticas
diferentes que analizan la
evidencia desde diferentes
dimensiones.

Cada año, la UE selecciona las


capitales de la cultura; una de
las ciudades de 2010 fue este
“lugar de encuentro de
culturas” turco.

52
Arquitectura de Netflix
Arquitectura de
VMWare
Arquitectura de una Compañía
Meteorológica

Compañía del clima

¡Los volúmenes de datos del clima


están creciendo!

• 30 billones de solicitudes de API por día.


• 120 millones de usuarios móviles activos.
• #3 base de usuarios móviles más activos.
• ~ 360 PB de tráfico diario.
• Billones de eventos por día (~ 1.3M por segundo).
• Guarda los datos para siempre.

Uso
• Lote eficiente + análisis de transmisión.
• Ciencia de datos de autoservicio.
• BI / Soporte de herramientas de visualización.

55
Arquitectura de Ticketmaster
Disponibilidad de datos de Ticketmaster
Si más datos únicos son el activo, entonces recolecta más de una manera que se pueda escalar.
• Un problema difícil con los datos en tiempo real es la idempotencia.
• La idempotencia de extremo a extremo es el santo grial de la disponibilidad de datos.

• Nada exótico. Ticketmaster


• Operacional primero. • Entradas:
• Consistencia entre aplicaciones. • Transacciones.
• Eliminar ETL. • Compromiso del usuario.
• Reducir QA. • Acceso a eventos.

56
Arquitectura de LinkedIn
Arquitectura de PayPal
Ecosistema de Hadoop
Preguntas de Revisión

1. Describe la arquitectura de procesamiento Big Data.


2. ¿Cuáles son las contribuciones de Google al procesamiento de Big Data?
3. ¿Cuáles son algunas de las mejores tecnologías visibles en el procesamiento de Big
Data?

60
Ejercicio práctico de
Liberty Stores: Paso B3

Liberty desea construir una plataforma de escucha escalable y futurista para comprender
a sus clientes y otras partes interesadas.

1. ¿Qué tipo de arquitectura Big Data sugeriría para esta empresa?

61
Capítulo 4 – Computación Distribuida Utilizando
Hadoop
Objetivos de Aprendizaje

• Comprender Hadoop como tecnologías de código abierto para el procesamiento de Big


Data.
• Comprender el Sistema de archivos distribuidos de Hadoop (HDFS).
• Apreciar la arquitectura jerárquica maestro-esclavo de HDFS.
• Comprender los dos tipos de archivos de Hadoop: archivos de texto y secuencias.
• Ver código de ejemplo para leer y escribir datos de HDFS.
• Comprender el propósito y el diseño de YARN, el administrador de recursos.

63
Ecosistema / Arquitectura de Big Data
Hadoop y MapReduce
Definidos

• Hadoop es un sistema no relacional de almacenamiento de datos distribuido y rentable


en hardware básico.
• MapReduce es un marco para el procesamiento paralelo con un movimiento mínimo de
datos y resultados casi en tiempo real.

65
¿Por qué la computación
en Clúster?

• Arquitectura escalable utilizando hardware básico.


• Cada nodo sirve como servidor de datos y procesamiento.
• Cumplir tres desafíos:
• Fallo de nodo (MTBF = 3 años).
• Red de cuello de botella (1Gb / seg).
• Programación distribuida.

66
Arquitectura de Hadoop:
Fragmentación de Datos

• Divida los archivos en fragmentos (64MB cada uno).


• Almacenar cada porción en múltiples nodos.

67
Arquitectura Maestro-Esclavo
• Un nodo es maestro, el resto son esclavos.
• Hay un NameNode. Realiza un seguimiento de los contenidos de todos los DataNodes.
• Cada nodo de Datos contiene fragmentos de datos.

68
Arquitectura de Lectura y Escritura
del Sistema de Archivos
Distribuidos Hadoop (HDFS)
Características de HDFS

• Todos los datos se almacenan en trozos de tamaño estándar. Típicamente 64MB pero
personalizable.
• Se realiza una copia de seguridad de todos los datos en dos o tres ubicaciones para
evitar fallas del servidor y del rack.
• Todos los datos relacionados se almacenan lo más cerca posible para garantizar un
procesamiento más rápido.
• Garantiza la integridad de los datos, que los datos una vez escritos no se destruyen.
• Funciona solo en el modelo Append. Se agregan nuevos datos al final del
almacenamiento existente. No hay actualizaciones de datos en su lugar.
• Esto garantiza la velocidad de almacenamiento y la integridad de los datos.

70
Instalando HDFS

• HDFS tiene un lenguaje shell similar a Unix.


• Los clústeres Hadoop pueden instalarse en:
• Infraestructura de nube como Amazon Web Services.
• Centros de datos internos.
• Una sola máquina.
• Necesidad de crear al menos dos nodos: un nodo de nombre y al menos un nodo de
datos.

71
Yet Another Resource
Negotiator (YARN)
• YARN (Por las siglas en inglés de “otro negociador de recursos”) es un sistema operativo
distribuido a gran escala para aplicaciones Big Data.
• Gestiona los recursos y supervisa las cargas de trabajo, en un entorno seguro multi-tenant,
al tiempo que garantiza una alta disponibilidad en múltiples clústeres de Hadoop.
• YARN es una plataforma común para ejecutar múltiples herramientas y aplicaciones, como
SQL interactivo (por ejemplo, Hive), transmisión en tiempo real (por ejemplo, Spark) y
procesamiento por lotes (MapReduce), etc.

72
Preguntas de Revisión

1. ¿En qué se diferencia Hadoop de un sistema de archivos tradicional?


2. ¿Cuáles son los objetivos de diseño para HDFS?
3. ¿Cómo garantiza HDFS la seguridad y la integridad de los datos?
4. ¿Cómo se diferencia un nodo maestro del nodo trabajador?

73
Capítulo 5 – Procesamiento Paralelo con
MapReduce
Objetivos de Aprendizaje

• Comprender la necesidad de procesamiento paralelo para Big Data.


• Comprender el paradigma de procesamiento MapReduce: mapas y programas de
reducción.
• Comprender la estructura de datos key-pair necesaria para MapReduce.
• Aprenda la estructura del programa para los programas de MapReduce.
• Comprender los conceptos de los programas Job Tracker y TaskTracker.
• Descubra cómo MapReduce ejecuta programas a pesar de las fallas de nodo.

75
Arquitectura de Big Data
Arquitectura de MapReduce

Dos tipos de trabajos:


• Mappers: Mapea el trabajo en muchas tareas.
• Reductores: Combina las entradas de los cartógrafos en una sola salida.
• Trabajos / tareas rastreados en modo maestro-esclavo.

77
Arquitectura Maestro-Esclavo en
MapReduce
• Un proceso es maestro, el resto son esclavos.
• Hay un JobTracker. Realiza un seguimiento de los contenidos de todos los
TaskTrackers.
• Cada TaskTracker realiza un seguimiento de los procesos en un nodo de cálculo.

78
Papel de MapReduce 2004

• MapReduce es un modelo de programación y una implementación asociada para


procesar y generar grandes conjuntos de datos.
• Los usuarios especifican una función de mapa que procesa un par de clave/valor para
generar un conjunto de pares de clave/valor intermedios y una función de reducción
que combina todos los valores intermedios asociados con la misma clave intermedia.
• Los programas escritos en este estilo funcional se paralelizan automáticamente y se
ejecutan en un gran grupo de máquinas de productos básicos.
• El sistema de tiempo de ejecución se encarga de los detalles de la partición de los datos
de entrada, la programación de la ejecución del programa en un conjunto de máquinas,
el manejo de las fallas de la máquina y la gestión de la comunicación entre máquinas
requerida.

79
Papel de MapReduce 2004

• MapReduce permite a los programadores sin experiencia con sistemas paralelos y


repartidos utilizar fácilmente los recursos de un gran sistema distribuido.
• La implementación de Google de MapReduce se ejecuta en un gran grupo de máquinas
básicas y es altamente escalable: un cálculo típico de MapReduce procesa muchos
terabytes de datos en miles de máquinas.
• Los programadores encuentran que el sistema es fácil de usar: cientos de programas de
MapReduce se han implementado y más de mil trabajos de MapReduce se ejecutan en
los clústeres de Google todos los días.

80
Secuencia de MapReduce

• Map: (K1, V1) → list (K2, V2).


• Reduce: (K2, list(V2)) → list (K2, V3).

81
MR Funciona como una
Secuencia de UNIX

• grep | sort | count myfile.txt

• Producirá una palabra en el documento de texto llamado myfile.txt.

82
Contador de Palabras
Usando MapReduce
Conteo de Palabras Usando
Proceso general de conteo de palabras de MapReduce MapReduce – Ejemplo 2
Seudo Código MapR
para Contador de Palabras

• map(String key, String value):


• // key: document name and value: document contents
• for each word w in value:
• EmitIntermediate (w, "1");

• reduce(String key, Iterator values):


• // key: a word, and values: a list of counts
• int result = 0;
• for each v in values:
• result += ParseInt (v);
• Emit (AsString(result));

85
Ejemplo de Contador de Palabras
(Inglés): Myfile.txt

• Myfile: txt : We are going to a picnic near our house. Many of our friends are coming.
You are welcome to join us. We will have fun. (Traducción: Vamos a hacer un picnic
cerca de nuestra casa. Muchos de nuestros amigos van a venir. Te invitamos a unirte a
nosotros. Nos divertiremos).

• Divida en unos pocos segmentos iguales. Podría hacerse con cada oración como una
pieza de texto separada. Los cuatro segmentos se verán de la siguiente manera:
• Segment1: We are going to a picnic near our house.
• Segment2: Many of our friends are coming.
• Segment3: You are welcome to join us.
• Segment4: We will have fun.

• Por lo tanto, habrá 4 tareas Map, una para cada segmento de datos.

86
Resultados de Cada Segmento
Resultados Agrupados de Map
Operations
Resultados Luego de la Fase
de Reducción
Pig vs Hive
Lenguaje de Hive
Arquitectura de Lenguaje Pig
Preguntas de Revisión

1. ¿Qué es MapReduce? ¿Cuáles son sus beneficios?


2. ¿Cuál es el formato de pares clave-valor? ¿En qué se diferencia de otras estructuras
de datos? ¿Cuáles son sus beneficios y limitaciones?
3. ¿Qué es un programa de seguimiento de trabajo? ¿Cómo difiere del programa de
seguimiento de tareas?
4. ¿Qué son Hive and Pig? ¿En qué se diferencian?

93
Capítulo 6 – Bases de Datos NoSQL
Objetivos de Aprendizaje

• Comprender las diferencias clave entre NoSQL y bases de datos relacionales.


• Comprender la arquitectura de las bases de datos NoSQL.
• Comprender los principales tipos de bases de datos NoSQL y sus características.
• Conocer la arquitectura y los procesos de Hadoop HBase.
• Conocer la arquitectura y los procesos de la base de datos de Cassandra.

95
Arquitectura de Big Data
Bases de Datos NoSQL

• Las bases de datos NoSQL son bases de datos de próxima generación que no son
relacionales en su diseño.
• NoSQL es útil cuando una empresa necesita acceder, analizar y utilizar cantidades
masivas de datos estructurados o no estructurados.
• Las limitaciones de una base de datos relacional se relajan de muchas maneras. Por lo
tanto, hay muchos tipos de bases de datos NoSQL.
• Los archivos de base de datos NoSQL se escriben una vez y casi nunca se actualizan en
su lugar.

97
NoSQL vs
RDBMS
Teorema CAP

• El teorema de CAP (Consistency, Availability and Partition Tolerance; en inglés)


establece que en cualquier almacén de datos distribuidos, uno puede elegir solo dos de
los tres: consistencia, disponibilidad y tolerancia de partición.
• Necesita hacer una elección entre consistencia y disponibilidad: es decir, una
compensación entre precisión y baja latencia.
• Los datos eventualmente serán consistentes en todas las particiones, pero no en
cualquier momento.

99
Arquitectura NoSQL
Tipos de Bases de Datos NoSQL

• Key-Pair – Amazon SimpleDB.


• Columnar Family – Cassandra, HBase.
• Document – MongoDB.
• Graph – Neo4J.

101
Arquitecturas NoSQL Populares
• Maestro-Esclavo - HBase.
• Arquitectura de Anillo - Cassandra.

102
Procesos de Cassandra
Flujo de escritura de datos de Cassandra
Zona única, zona de disponibilidad múltiple
Si un nodo se desconecta, el
1. El cliente escribe en
cualquier nodo de traspaso insinuado completa
Cassandra. la escritura cuando el nodo
vuelve a subir.
2. El nodo coordinador se
replica en nodo y Las solicitudes pueden elegir
zonas. esperar un nodo, un quórum
3. Los nodos regresan al o todos los nodos para anotar
coordinador. la escritura.
4. El coordinador regresa Las grabaciones y
al cliente. compactaciones del disco
SSST ocurren de forma
5. Datos escritos en el
disco de registro asincrónica.
interno.

103
Lenguajes de Acceso
NoSQL - Hive
• Hive es un lenguaje declarativo similar a SQL para consultas. Es el más adecuado para
datos estructurados como el almacenado en HBase, un almacén de clave-valor.
• Columnas de datos de Hive se asignan a tablas en HDFS. Esta asignación se almacena
en metadatos.

104
Lenguajes de Acceso
NoSQL - Pig

• Pig es un lenguaje de
procedimiento de alto nivel.
Se usa principalmente para
programar usando un flujo
de datos paso a paso.

105
Preguntas de Revisión

1. ¿Qué es una base de datos NoSQL? ¿Cuáles son los diferentes tipos de esto?
2. ¿Cómo utiliza una base de datos NoSQL el poder de MapReduce?
3. ¿Cuáles son los diferentes tipos de bases de datos NoSQL? ¿Cuáles son las ventajas
de cada uno?
4. ¿Cuáles son las similitudes y diferencias entre Hive y Pig?

106
Capítulo 7 – Procesamiento Stream con Spark
Objetivos de Aprendizaje

• Comprender la necesidad de procesar flujos.


• Comprender Apache Spark y su arquitectura.
• Entender RDD y DAG como principales características de Spark.
• Comprender las bibliotecas MLib y GraphX ​dentro de Spark.
• Comprender muchos casos de uso para Spark.

108
Arquitectura de Big Data
Computación Definida
en Stream

• Procesar grandes cantidades de datos de un vasto conjunto de flujos de datos entrantes


extremadamente rápidos.
• Minería de datos en movimiento.
• Calcular métricas aproximadas simples en tiempo real.
• Relajar muchos requisitos de precisión computacional.

110
Conceptos de Streaming

• Tasa alta e impredecible de ingesta de datos.


• Control del programador frente a personas aleatorias.
• Los datos son demasiado grandes para almacenarlos en la memoria.
• Hacer un procesamiento simple en la secuencia con cálculos mínimos. Por ejemplo:
• Contar el promedio, el recuento y el máximo en una secuencia.
• Contar el número de 1’s en una secuencia de 0’s y 1’s.
• Contar el número de elementos distintos en una secuencia.
• Analizar una ventana deslizante de la secuencia (tiempo o elementos de datos).
• Los elementos viejos se deslizan fuera de la ventana.
• Mostrar la transmisión para obtener resultados aproximados.

111
Aplicaciones de Streaming

• Flujos de consulta minera.


• Qué consultas son más frecuentes hoy.
• Minería de secuencias de clics.
• Qué URL se hacen clic con más frecuencia a esta hora.
• Minería de redes IP conmutadas.
• Identificar ataques de denegación de servicio.

112
Características del Algoritmo
de Streaming

• Calcular propiedades sin almacenar toda la secuencia.


• Limitar el número de pasos aritméticos por nuevo elemento de datos.
• N es tan grande que queremos almacenar solo O (log N).
• Filtrar la transmisión para reducir el número de cosas que hacer.
• La eficiencia es de la esencia.
• Ad-hoc y consultas permanentes.

113
Filtro Bloom

• Es un algoritmo de transmisión popular.


• Puede mostrar si una URL se ha visto antes.
• Utiliza una cadena larga de 1’s y algunas funciones hash.
• Cada nueva entrada usa todas las funciones hash para establecer los bits en la cadena
de 1’s.
• Si la nueva entrada se convierte en hashes a todos los 1’s en la cadena, entonces esa
entrada se ha visto antes.
• Crea algunos falsos positivos, pero no falsos negativos.

114
Apache Spark para Computación
Streaming

• Apache Spark es un motor integrado, rápido, en memoria y de uso general para el


procesamiento de datos a gran escala.
• Spark es ideal para tareas de procesamiento iterativas e interactivas en grandes
conjuntos de datos y flujos.
• Spark logra un rendimiento de 10-100x sobre Hadoop al operar con una construcción
en memoria llamada 'Conjuntos de Datos Distribuidos Resilientes' (RDD), que ayudan a
evitar las latencias involucradas en las lecturas y escrituras del disco.
• Spark permite a los programadores desarrollar líneas de datos complejas de varios
pasos usando un patrón de gráfico acíclico dirigido (DAG: Directed Acyclic Graph).

115
Apache Spark para Computación
Streaming

• Spark está escrito principalmente en Scala, un lenguaje de alto nivel. Las bibliotecas
incorporadas de Spark (para Aprendizaje Automático, Procesamiento de Gráficos,
Procesamiento de Flujo, SQL) ofrecen un procesamiento de datos rápido sin
interrupciones junto con una alta productividad del programador.
• Spark se ha convertido en una alternativa más eficiente y productiva para Hadoop. Es
compatible con los sistemas de archivos Hadoop y las herramientas.

116
Ecosistemas de
Código Abierto
Arquitectura de Apache Spark
Spark vs Hadoop
Spark vs Hadoop
Conjuntos de Datos Distribuidos
Resilientes de Spark (RDD)

• RDD (Resilient Distributed Datasets; en inglés), son colecciones de registros inmutables


y particionados. Mantienen los datos en la memoria y pueden mejorar el rendimiento en
un orden de magnitud.
• Los RDD solo pueden crearse: a) leyendo datos de un almacenamiento estable como
HDFS o b) transformaciones en los RDD existentes.
• Spark API permite dos tipos principales de operación en RDD: transformaciones y
acciones. Las transformaciones incluyen map (), filter (), sample () y union ().

121
Mecanismo de
Procesamiento Spark
Código de Spark para Pagerank

• //load the edges as a graph object


• val graph = GraphLoader.edgeListFile(sc, "outlink.txt")
• // Run pagerank
• val ranks = graph.pagerank(0.00000001).vértices

• // join the rank with the webpages


• val pages = sc.textFile("pages.txt").map{line => val fields = line.split(",") (fields(0).toLong,
fields(1)) }
• val ranksByPagename = pages.join(ranks).map { case (id, (pagename, rank)) =>
(pagename, rank)}
• //print the output
• println(rankByPagename.collect().mkString("\n"))

123
Preguntas de Revisión

1. Describa el ecosistema Apache Spark.


2. Comparar Spark y Hadoop en términos de su capacidad para hacer stream
computing.
3. ¿Qué es un RDD? ¿Cómo hace que Spark sea más rápido?
4. Describa tres capacidades principales en Spark para el análisis de datos.

124
Capítulo 8 – Nueva Ingestión de Datos
Objetivos de Aprendizaje

• Comprender la necesidad de un sistema de ingesta dedicado para Big Data.


• Comprender los tipos de arquitecturas de sistemas de mensajería.
• Comprender el sistema de mensajes de Kafka y sus muchas características beneficiosas.
• Comprender la arquitectura simple de Kafka, incluidos los conceptos clave de
productores, consumidores, intermediarios y temas de datos.
• Comprender los muchos casos de uso de Kafka.
• Entender Zookeeper y su función de apoyo para Kafka.

126
Arquitectura de Big Data
Sistema de Ingestión de Datos

• Un sistema de ingestión de datos es un punto de recepción confiable y eficiente para


todos los datos que ingresan a un sistema.
• Buffer rápido y flexible para recibir y almacenar todos los flujos entrantes de datos. Los
datos en el buffer se almacenan de forma secuencial.
• Los datos están disponibles para todas las aplicaciones consumidoras de una manera
rápida y ordenada.

128
Sistemas de Mensajería
• Sistema confiable y rápido para
conectar emisores y receptores de
mensajes.
• Sistemas punto a punto.
• Bien entendido.
• Ineficiente para grandes
volúmenes.
• Sistemas Publish-Subscribe.
• Los corredores navegan las
relaciones entre los productores
de datos y los consumidores.
• Altamente escalable y rápido.
• Apache Kafka es uno de esos
sistemas.

129
Arquitectura de Apache Kafka
Componentes de Kafka

• Productores.
• Consumidores.
• Corredores.
• Tópicos.
• Zookeeper – publica metadata.

131
Mecanismo de Tópicos de Kafka
• Los productores escriben datos secuencialmente a un conjunto de temas.
• Los datos se replican en 3 particiones.
• Los datos se almacenan durante siete días.
• Los consumidores pueden suscribirse a cualquier cantidad de temas.
• Los datos se consumen secuencialmente.
• El consumidor realiza un seguimiento de las compensaciones de lo lejos que ha leído.
• Los consumidores pueden leer desde cualquier partición.

132
Atributos Clave de Kafka
• Basado en disco: Kafka trabaja en un grupo de discos. No mantiene todo en la memoria
y sigue escribiendo en el disco para que el almacenamiento sea permanente.
• Tolerante a fallas: Los datos en Kafka se replican en varios intermediarios. Cuando un
intermediario líder falla, un corredor seguidor asume el liderazgo y todo continúa
funcionando normalmente.
• Escalable: Kafka puede escalar fácilmente agregando más particiones o más
intermediarios. Más agentes ayudan a distribuir la carga y esto proporciona un mayor
rendimiento.
• Baja latencia: Kafka procesa muy poco los datos. Por lo tanto, tiene una tasa de latencia
muy baja. Los mensajes producidos por el consumidor se publican y están disponibles
para el consumidor en unos pocos milisegundos.
• Retención finita: Kafka mantiene el mensaje en el clúster por defecto durante una
semana. Después de eso, el almacenamiento se actualiza. Por lo tanto, los consumidores
de datos tienen hasta una semana para ponerse al día con los datos.

133
Preguntas de Revisión

1. ¿Qué es un sistema de ingesta de datos? ¿Por qué es un tema importante?


2. ¿Cuáles son las dos formas de entregar datos de muchas fuentes a muchos objetivos?
3. ¿Qué es Kafka? ¿Cuáles son sus ventajas? Describe 3 casos de uso de Kafka.
4. ¿Qué es un tema? ¿Cómo ayuda con la administración de ingesta de datos?

134
Capítulo 9 - Computación en la Nube
Objetivos de Aprendizaje

• Comprender los conceptos clave de la Computación en la Nube.


• Comprenda sus beneficios técnicos y comerciales.
• Comprender el concepto de virtualización e hipervisores.
• Comprender diferentes modelos de Computación en la Nube.
• Tener en cuenta los mitos y desafíos de la Computación en la Nube.

136
Arquitectura de Big Data
Computación en la Nube

• Modo rentable y flexible de entregar infraestructura de TI como un servicio a los


clientes a través de Internet, sobre una base medida.
• El modelo de negocio ofrece a los clientes una enorme flexibilidad para utilizar la mayor
capacidad de TI (informática, almacenamiento, red) según sea necesario sin tener que
invertir en una capacidad de TI dedicada por cuenta propia.
• La capacidad se puede comprar como un paquete personalizado dependiendo de la
gama de servicios y los requisitos de capacidad.
• La nube informática es la última computadora cósmica alineada con todas las leyes de la
naturaleza.

138
Modelo de Acceso a la
Computación en la Nube
Computación en la Nube como
una Infraestructura Virtualizada
Beneficios de la
Computación en la Nube

• Capacidad flexible: La capacidad puede escalar rápidamente.


• Se puede expandir y reducir los recursos de acuerdo con los requisitos de servicio
específicos, cuando sea necesario.
• Modelo de pago atractivo: Modelo de pago por uso, es decir, uno paga solo por la
cantidad de uso y tiempo.
• Los costos de TI se convierten en un gasto en lugar de un gasto de capital para el
cliente.
• Resistencia y seguridad: La falla de cualquier servidor individual y recursos de
almacenamiento no afecta al usuario.
• Los servidores y el almacenamiento de todos los clientes están respaldados y
aislados para maximizar la seguridad de los datos.

141
Modelos de Computación en la
Nube – por Propiedad y
Rango de Servicios

• Nube Pública.
• Nube Privada.
• Nube Híbrida.
• Infraestructura como un servicio.
• Plataforma como servicio.
• Aplicación como servicio.

142
Preguntas de Revisión

1. Describe el modelo de Computación en la Nube.


2. ¿Cuáles son las ventajas de la Computación en la Nube sobre la informática interna?
3. Describe la arquitectura técnica para la Computación en la Nube.
4. Nombra algunos de los principales proveedores de servicios de Computación en la
Nube.

143
Capítulo 10 – Aplicación de Análisis Web
Objetivos de Aprendizaje

• Comprender la arquitectura de una aplicación típica de Big Data.


• Aprender los elementos de diseño de una aplicación de análisis de registro Web.
• Ver el código de muestra y las salidas para dicha aplicación.

145
Arquitectura de Web-Analyzer
Código de Aplicación
//calculates size of log, and provides min, max and average size
// caching is done for repeatedly used factors
def calcContentSize(log: RDD[AccessLogs]) = {
val size = log.map(log => log.contentSize).cache()
val average = size.reduce(_ + _) / size.count()
println("ContentSize:: Average :: " + average + " " +
" || Maximum :: " + size.max() + " || Minimum ::" + size.min() )
}

//Send all the response code with its frequency of occurrence as Output
def responseCodeCount(log: RDD[AccessLogs]) = {
val responseCount = log.map(log => (log.responseCode, 1))
.reduceByKey(_ + _)
.take(1000)
println(s"""ResponseCodes Count : ${responseCount.mkString("[", ",", "]")} """)
}

//filters ipaddresses that have more then 10 requests in server log


def ipAddressFilter(log: RDD[AccessLogs]) = {
val result = log.map(log => (log.ipAddr, 1)) https://github.com/databricks/reference-
.reduceByKey(_ + _)
.filter(count => count._2 > 1) apps/blob/master/logs_analyzer/chapter1/scal
// .map(_._1).take(10)
.collect() a/src/main/scala/com/databricks/apps/logs/ch
println("IP Addresses Count :: ${result.mkString("[", ",", "]")}" )
} }
apter1/LogAnalyzer.scala

147
Tecnología

• Apache Spark v2.


• Hadoop 2.6.0 cdh5.
• Apache Flume.
• Scala, Java.
• MongoDB.
• RestFul Web Services.
• Front UI tools.
• Linux Shell Scripts.

148
Preguntas de Revisión

1. Describe las ventajas de un analizador de registro Web.


2. Describe los principales desafíos en el desarrollo de esta aplicación.
3. Identifique 3-4 principales lecciones aprendidas del código.
4. ¿Cómo se puede mejorar este código?

149

También podría gustarte