Hadoop sobre OpenStack

Jose Castro, Miguel Vidal

OpenExpo - Madrid, 2 de Junio 2016

@FLOSSystems

Agenda

  • FLOSSystems
  • Hadoop
  • OpenStack
  • Sahara
  • Demo en vivo
  • Preguntas

Qué es FLOSSystems

  • Empresa tecnológica española nacida en 2011

  • Especializada en el diseño, despliegue y administración de infraestructuras como servicio (IaaS) y en arquitecturas “high end” altamente escalables

  • Únicamente utilizamos software libre, evitando al cliente costes de licencias y vendor lock-in

  • Disponemos de infraestructura propia en Madrid y Amsterdam, no revendemos cloud de terceros

  • Explotamos nuestro propio OpenStack en producción, donde alojamos a nuestros clientes

Madrid Datacenter
Madrid Datacenter

Qué es Hadoop

  • Estrictamente: un framework orientado al procesamiento, análisis y almacenamiento distribuido de grandes colecciones de datos

  • Proyecto libre de la Apache Foundation

Apache Hadoop

  • MapReduce: capa de procesamiento/computación

  • HDFS: capa de almacenamiento (sistema de ficheros distribuido, escalable y redundante)

Ecosistema Hadoop

En sentido amplio: un conjunto de proyectos y herramientas integradas con Apache Hadoop (“kernel”)

Nadie usa solo un kernel

Ecosistema de Hadoop
Ecosistema de Hadoop

Versiones de Hadoop
Versiones de Hadoop

Distribuciones

  • Facilitan enormemente el despliegue y la gestión del ecosistema

  • OpenStack Sahara permite desplegarlas mediante plugins

Distribuciones de Hadoop: Ambari
Distribuciones de Hadoop: Ambari

Distribuciones de Hadoop: Cloudera
Distribuciones de Hadoop: Cloudera

Tiempo real

  • Apache Spark:
    • procesa primitivas en memoria, en lugar de disco como MapReduce
    • hasta 40 veces más rápido que Hadoop
    • ideal para consultas iterativas y responsivas y aprendizaje automático
    • se integra con Hadoop
  • Apache Storm: Desarrollado por Twitter, procesa en tiempo real

Qué es OpenStack

  • Un framework open source para construir por componentes IaaS completas
  • Proporciona servicios de computación, red y almacenamiento
  • Autoprovisión web para usuarios finales
  • API muy rica

OpenStack al vuelo
OpenStack al vuelo

Arquitectura de OpenStack
Arquitectura de OpenStack

Componentes de OpenStack
Componentes de OpenStack

Hadoop + OpenStack

  • Hadoop es intensivo en recursos: demanda agilidad para escalar/desescalar

  • Hadoop es difícil de configurar, desplegar, testear, optimizar y mantener

  • OpenStack Sahara reduce al mínimo estas dificultades

  • OpenStack Sahara trae todas las ventajas del cloud al big data

Qué es Sahara

  • Es un componente oficial de OpenStack para procesamiento y análisis de datos con Hadoop

  • Incubado en Icehouse (abril 2014). Integrado desde Juno (octubre 2014)

  • Permite configurar, desplegar, escalar y operar clusters de Hadoop sobre OpenStack

¡Big Data as a Service!

Sahara en OpenStack

  • Acceso ágil, elástico y bajo demanda al universo big data

  • Escalabilidad ilimitada

  • Disponibilidad y durabilidad de datos mediante Swift

  • Facilita la ejecución de trabajos y aplicaciones de Big Data incluso a usuarios finales

  • Traslada todas las ventajas de la IaaS a tareas de Big Data

  • ¡No necesitas conocer los detalles de Hadoop!

Misión de Sahara

  • Aprovisionamiento rápido

  • Gestión centralizada

  • Gestión del ciclo de vida del clúster

  • Configuración y ejecución de trabajos sobre Hadoop

Casos de uso

  • Para syadmins: despliegues rápidos, elásticos y bajo demanda de clusters de Hadoop
  • Para usuarios finales: autoprovisión de clusters (incluso efímeros) de Hadoop
  • Ejecución de trabajos en unos cuantos clicks sin conocimientos de operaciones de Hadoop
  • Clouds privados: privacidad y protección de datos frente a clouds públicos (Amazon EMR)
  • Empresas que deseen ofrecer Big Data as a Service en su infraestructura

Contribuidores a Sahara
Contribuidores a Sahara

Arquitectura de Sahara
Arquitectura de Sahara

Componentes

  • API REST para despliegue y operaciones sobre el cluster
  • Orquestación/provisión integrada con Heat.
  • Elastic Data Processing: permite ejecutar y monitorizar trabajos lanzados en el cluster
  • Data Access Layer (DAL): mantiene estado mediante base de datos interna
  • Integración con Swift
  • Sistema de plugins para soportar diferentes distribuciones de Hadoop

Otras características

  • Integración con Horizon (Web UI) y con el ecosistema de OpenStack
  • Autenticación/autorización con Keystone
  • Escalable manualmente
  • Reglas de anti-afinidad para distribuir recursos
  • Creación de clusters efímeros para ejecutar un único trabajo

Plugins

  • Habilitan el despliegue y la operación de una distribución específica

  • Permiten configurar la topología y las herramientas de gestión/monitorización

Distros soportadas

  • Vanilla Apache Hadoop 2.7.1

  • HDP (Hortonworks) 2.3 con Ambari

  • Apache Spark 1.3.1 y 1.6.0

  • CDH (Cloudera) 5.0, 5.3, 5.4 y 5.5

Qué es EDP

  • Elastic Data Processing: API para ejecutar trabajos MapReduce sin exponer detalles de infraestructura

  • Habilita la ejecución de trabajos en clusters creados por Sahara

  • Funcionalmente análogo a Amazon EMR

EDP - Jobs

  • Job: un job binary lanzado con todas sus librerías, configuración y argumentos

  • Job Binaries y Job, análogos a Imagen e Instancia: múltiples jobs a partir de un único Job Binary

Componentes de un job

  • Código a ejecutar (‘’job binaries’’)
  • Input de datos a procesar
  • Localización del output de datos procesados
  • Configuración adicional necesaria para ejecutar el job

EDP se encarga de la ejecución de todo el job

Integración con Swift
Integración con Swift

Workflow

  • Lanzamiento de un cluster de Hadoop (si no existe ya)
  • Creación de todos los “Job Binaries”
  • Creación de una plantilla que referencie a los “Job Binaries”
  • Creación de una fuente que apunte al input de datos a procesar
  • Creación de una fuente que apunte al output de datos
  • Creación de un “Job Execution” que especifique el cluster y el trabajo a ejecutar desde unas fuentes dadas

EDP - Job Execution
EDP - Job Execution

Live Demo

Live Demo

https://youtu.be/idAaLo1stbw

Preguntas

¡Gracias!

© FLOSSystems
© FLOSSystems

http://slides.flossystems.com/2016/06/02/openexpo/sahara