Curso Intro Big Data - Hadoop
Intro a Hadoop
Introducción a
HADOOP
¿Qué es Hadoop?
Hadoop es un sistema de código abierto que se
utiliza para almacenar, procesar y analizar
grandes volúmenes de datos.
Características Principales
• Aísla a los desarrolladores de todas las dificultades presentes en
la programación paralela.
• Cuenta con un ecosistema que sirve de gran ayuda al usuario, ya que
permite distribuir los archivos en nodos, que no son otra cosa que servidores
con commodity-hardware.
• Es capaz de ejecutar procesos en paralelo en todo momento.
Características Principales
• Dispone de módulos de control para la monitorización de los datos.
• Cuenta con distintas herramientas para realizar consultas de los datos.
• También potencia la aparición de distintos add-ons, que facilitan el
trabajo, manipulación y seguimiento de toda la información que en él se
almacena.
HADOOP - DISTRIBUCIONES
GRAPH
Ecosistema Hadoop - HDFS
¿ Qué es HDFS?
● Hadoop Distributed File System
○ File System escrito en java, basado en GFS (Google File System)
○ Puede montarse sobre casi cualquier file system (ext3, ext4, ntfs, fat32)
Pensado para:
● Archivos grandes y volumen de datos (órdenes de Terabytes)
● Trabajar con un esquema de Write once / read many times.
● Los contenidos de los archivos no pueden modificarse. Solo agregar datos al
final de un archivo
● La latencia para recuperar un archivo entero es mucho más importante que
para obtener una línea de un archivo
Ecosistema Hadoop - YARN
¿ Qué es YARN ?
● Hadoop ahora tiene un entorno de gestión de recursos y aplicaciones distribuidas dónde se pueden
implementar múltiples aplicaciones de procesamiento de datos totalmente personalizadas y
específicas para realizar una tarea en cuestión
• “Yet Another Resource Negotiator”
● Surge por las siguientes necesidades:
○ Escalabilidad Disponibilidad Utilización Multitenancy
● Presenta una separación entre la administración de recursos y la ejecución y monitoreo de procesos.
Ecosistema Hadoop - MapReduce
¿ Qué es Map Reduce?
• MapReduce es un modelo de programación y su implementación asociada para procesar
y generar grandes sets de datos.
• Framework de procesamiento distribuido (en clusters) que divide los problemas de
procesamiento de grandes volúmenes de datos en subproblemas (Map) y luego recopila las
minirespuestas (Reduce) para generar conclusiones.
• Map-Reduce es en realidad un patrón que fue luego popularizado por Google a través de
su Google’s MapReduce Framework.
• Actualmente, es una de las implementaciones de procesamiento distribuido utilizadas sobre
YARN.
Ecosistema Hadoop - TEZ
¿ Qué es TEZ?
• Framework de procesamiento distribuido (en clusters) que modela su procesamiento en
función a grafos de flujo de datos (DAG - directed acyclic graph).
• Arquitectura Customizable diseñada para extensibilidad y optimizaciones de performance
definidos por los usuarios.
• Es un proyecto de código abierto de Apache.
• Es utilizado tanto por Apache Hive, como por Apache Pig.
• Actualmente, es una de las implementaciones de procesamiento distribuido utilizadas sobre
YARN.
Ecosistema Hadoop - Spark
¿Que es Spark?
• Un framework de computación clusterizado para el análisis de Big Data.
• OpenSource originalmente desarrollado en la Universidad de Berkeley en California.
• Provee análisis de datos en memoria.
• Diseñado para ejecutar iterativamente algoritmos y análisis predictivos.
• Altamente compatible con los medios de almacenamientos en Hadoop.
• Permite desarrollar programas en múltiples lenguajes de programación.
Ecosistema Hadoop - Hive
¿ Qué es y cómo surgió Hive?
• Hive es un framework originalmente desarrollado por Facebook.
• Provee facilidades de datawarehouse sobre un cluster Hadoop.
• Para lograr esto, mapea los datos del HDFS de Hadoop a
estructuras propias, aunque también puede utilizar las estructuras
de Hbase.
• Además provee un lenguaje para realizar consultas llamado
HiveQL (o HQL), muy similar a SQL, mediante el cual se puede
escribir tareas de MapReduce, y explotar los datos guardados en
el cluster.
• Puede utilizar TEZ/Map-Reduce ó Spark para la ejecución
• Utiliza HDFS para almacenamiento
Ecosistema Hadoop - Pig
¿ Qué es y cómo surgió Pig?
• Desarrollado por Yahoo!
• Plataforma para el análisis de grandes conjuntos de datos.
• Lenguaje de alto nivel para expresar programas de análisis,
junto con la infraestructura para la evaluación de los mismos.
• Programas MapReduce simples de desarrollar utilizando Pig
Latin como lenguaje de programación
• La estructura es favorable a la paralelización.
• Puede manejar enormes cantidades de información.
• No es necesario saber Java
• 200 líneas de Java -> 15 líneas de Pig.
Ecosistema Hadoop - Ambari
¿ Qué es AMBARI?
• Ofrece una interfaz web intuitiva y fácil de usar para la gestión de Hadoop
y además proporciona una API REST.
• Administrar y provisionar el cluster Hadoop
• Un asistente paso a paso para la instalación de servicios de Hadoop a través de múltiples equipos
• Proporciona la forma de gestionar gestión central para iniciar, detener y volver a configurar los
servicios de Hadoop en todo el clúster.
• Monitoriza el clúster Hadoop
• Ofrece un panel de control para vigilancia de la salud y el estado del cluster Hadoop.
• Se encarga de la instalación de los paquetes de Hadoop en el clúster.
• Ambari aprovecha Nagios para el sistema de alerta y enviará mensajes de correo electrónico cuando se
requiere su atención.
Ecosistema Hadoop - Hue
¿ Qué es HUE ?
• HUE = Hadoop User Experience
• Es una GUI para Hadoop open source
• Desarrollada por Cloudera
• Basada en Web
• Muchas funciones
• Ampliamente usada
• Se integra con Hive, Oozie, HDFS
• Tiene una API para crear aplicaciones
• No viene en la Versión Standard de Hadoop Apache.
Ecosistema Hadoop - Zookeeper
¿ Qué es Zookeeper ?
• Un servicio open source, de alta performance, para la coordinación de
servicios en aplicaciones distribuidas
• Configuración, naming, configuration management, sincronización (locks),
group services
• El sistema garantiza:
• Consistencia secuencial
• Atomicidad
• Consistencia de datos (todos los clientes ven el mismo estado más allá
del server con el que está conectado)
Ecosistema Hadoop - Flume
¿ Qué es Flume ?
Es un servicio de recolección de datos distribuido
• Escalable
• Configurable
• Extensible
• Administrable
• Open Source
Es una solución para recolectar datos en todos los
formatos.
Ecosistema Hadoop - KAFKA
¿ Qué es KAFKA ?
• Apache Kafka es un proyecto de intermediación de mensajes
escrito en lenguaje Scala.
• Plataforma unificada, de alto rendimiento y de baja latencia
para la manipulación en tiempo real de fuentes de datos.
• Cola de mensajes, bajo el patrón publicación-suscripción.
• Masivamente escalable concebida como un registro de
transacciones distribuidas.
• Desarrollada originalmente por Linkedin, liberada en 2011.
Ecosistema Hadoop - Sqoop
¿ Qué es Sqoop ?
• Permite fácilmente importar y exportar datos desde:
• Bases de Datos Relacionales
• Enterprise Datawarehouses
• NoSQLs
• Permite integración fácil con sistemas basados en Hadoop:
• Hive
• Hbase
• Oozie
• Fue desarrollada por Apache Software Fundation (Grupo Apache)
• Basado en Java
Ecosistema Hadoop - Oozie
¿ Qué es Oozie ?
• Es un scheduler de workflow para Hadoop
• Administra Jobs Hadoop
• Integrado con varias aplicaciones HDFS – Pig – Hive
• Escalable
• Programa procesos
• Un workflow es una colección de acciones (map/reduce, pig,
etc)
• Un workflow está representado como un grafo acíclico dirigido
• El grafo se almacena como hPDL (definición de proceso XML)
Ecosistema Hadoop - HBASE
¿ Qué es HBASE ?
● Base de datos
○ Distribuida
○ Del tipo Column family
○ Diseñada para operar sobre el file system distribuido de Hadoop (HDFS)
aprovechando sus características de escalabilidad, tolerancia a fallas, y alta
disponibilidad
○ Flexibiliza el uso de un File System de append-only para escrituras y lecturas
aleatorias
● HBase es un proyecto open source de Apache cuyo objetivo inicial fue proporcionar
un mecanismo de almacenamiento para Hadoop.
● Los datos están organizados lógicamente en “tablas”, “filas” y “columnas”.
Ecosistema Hadoop - Knutch
¿ Qué es Knutch ?
• Es un motor de búsquedas web open source
• Funcionalidades:
• Internet e Intranet crawling.
• Parsea diferentes formatos de documentos (PDF,
HTML, XML, JS, DOC, PPT, etc).
• Tiene una interfaz web para consultar el índice.
• Tiene gestión de recrawls.
Ecosistema Hadoop - Mahout
¿ Qué es MAHOUT ?
Machine Learning es programar para optimizar los criterios de
performance usando datos ejemplo o experiencias pasadas.
Es un subtema dentro de la inteligencia artificial.
Tiene muchos campos relacionados:
• Recuperación de información
• Estadísticas
• Biología
• Álgebra Lineal
Ecosistema Hadoop - Atlas
¿ Qué es ATLAS?
• Provee capacidades de Data Governance para Hadoop.
• Permite intecambiar metadata con otras herramientas o procesos.
• Control de acceso a los datos y metadata.
• Intercambio de Metadata con otras herramientas que gestionan Metadata.
• Mantiene una historia del origen de los datos, su linaje.
• Es escalable y extensible.
• Permite la clasificación de datos.
• Auditoria Centralizada.
Ecosistema Hadoop - Ranger
¿ Qué es RANGER?
Ranger es un framework que permite, supervisar y gestionar la seguridad de datos
completa en plataforma de Hadoop.
Apache Ranger tiene los siguientes objetivos:
• la administración de seguridad centralizada para gestionar todas las tareas relacionadas con la
seguridad en una interfaz de usuario central o usando APIs REST.
• Autorización para que se pueda hacer una acción y / u operación específica con Hadoop
componente / herramienta y gestionado a través de una herramienta de administración central.
• Estandarizar método de autorización en todos los componentes de Hadoop.