Este documento describe los principales componentes de Hadoop y conceptos relacionados con Big Data. Explica brevemente HDFS para almacenamiento de datos, YARN para administración de recursos, y MapReduce y TEZ para procesamiento por lotes y en tiempo real. También cubre herramientas como Pig, Hive, HBase, Sqoop y Flume para ETL, almacenamiento y carga de datos.
2. Componentes Hadoop
HDFS: (Hadoop Distributed FileSystem) DataStorage distribuido, repositorio de información (original
raw unstructured data) de gran escala(Big DataStorage).
YARN: administrador de recursos en cluster, coordinación ejecución distribuida (scheduling), es el
Data Operating System de Hadoop.
MapReduce: framework java para procesamiento (batch) distribuido de bigdata, es como lenguaje de
mas bajo nivel, se programa en Java, se esta reemplazando por TEZ (new hadoop2).
Ambari: consola web de administración Hadoop.
TEZ: framework optimizado para procesamiento bigdata, con TEZ se definen diagramas de dataflow a
ejecutar (DAG directed acyclic graph), orquestación tareas map o reduce, permite paralelizar tareas
map y reduce por separado. TEZ también define Java API (extiende API original MapReduce para
compatibilidad). En Ambari se pueden ver los flujos DAG gráficamente. Logra performance que
permite interactive-realtime processing de bigdata.
PIG: Script Language (PIG Latin) para realizar procesos ETL y programas de Data Analisys. PIG se
compila en MapReduce Jobs (ahora hechos en TEZ)
Hive: Datawarehouse (BD Relacional para Query-Analisis) da una vista Relacional al BigData,
permitiendo crear tablas y querys SQL, conservando la data original en HDFS, son como vistas SQL de
data en Hadoop (emula tablas-SQL). Ofrece interfaces JDBC y ODBC. Hive encapsula TEZ; traduce SQL
(statements) en TEZ (processing graphs)
HCatalog Administrador de Tablas (SQL)expone metadata Hive a otras Hadoop App. Hive y HCatalog
se unieron luego Hive Querys usa HCatalog para implementar un “CREATE TABLE”.
HBase: Base de Datos NoSQL, que implementa tablas columnares, para análisis de gran cantidad de
datos en tiempo real. Ofrece API Java (org.apache.hadoop.hbase) y REST para integrarse.
SQOOP: bulkcopy, es una aplicación de comandos que permite carga datos desde hacia bases de
datos relacionales, posee conectores para las principales bases de datos. Es una aplicación batch que
esta fuera de Ambari, (como todo bulkcopy). Aunque se podría usar Flume u otro componente, SQOOP
esta optimizado para alta carga datos batch.
3. Componentes Hadoop
Flume: agentes para transferencia de datos (stream data) en Hadoop, stream data pueden
ser logs o social data (Twitter). Pequeñas servicios Linux en Java (agente) que mediante
manejo de eventos obtienen y cargan datos de stream en el HDFS de Hadoop. Un agente
Flume se programa con un archivo de configuración (.conf) , y se ejecuta en consola Linux
WebHDFS: interfaz REST para HDFS, normalmente se usa para realizar carga datos a HDFS
mediante aplicaciones (custom load)
SOLR (on Hadoop): búsqueda e indexación, tiene su propia base datos, pero para Hadoop
guarda documentos e indexación en HDFS (vía PIG Jobs y conectores). (Search like Google)
Banana for SOLR: Dashboard para Análisis Datos JSON indexados con SOLR
Slider: framework para ejecutar aplicación de largo aliento (longterm) soporta HBase, es
motor equivalente a TEZ pero optimizado para longterm.
Hortonworks Dataflow (HDF) y NiFi: Aplicación de diseño e implementación de Dataflow, es
equivalente a un ETL, para Hadoop tiene plugins (processors) para HDFS, que permiten
extraer y cargar en Hadoop. Tiene una API REST que permite controlar Nifi por una app. HDF
es un paquete de NiFi.
Zepellin: es una consola web que permite análisis colaborativo de datos, implementa el
concepto “notebook” (en contexto de data analisys), que son plantillas de análisis de datos,
que permiten visualizar la data. Zepellin permite ejecutar Spark, y provee varios interpretes
(sh, Python).Zepellin junto SPARK permite realizar predictive models, basados en data
obtenida de sensores (Twitter se puede tomar como sensor) entre otras fuentes.
SPARK: motor de data processing en memoria, se pueden crear aplicaciones sobre dataset
compartidos. SPARK tiene interpretes para programar en Scala, Java, Python, y R. Es la base
de los notebooks (aplicaciones de análisis) de Zepellin.
4. Otros Conceptos Relacionados
Bigdata tomar un montón de data no estructurada, volverla algo valioso y en tiempo real.
data warehouse base de datos diseñada para consultas y análisis mas que para transaccionalidad.
Web notebook estructura de datos compartida y que es plataforma de análisis de datos, un espacio de colaboración
(usan los data scientist)
IOT: Internet de las Cosas, tiene relación con Bigdata (Hadoop) ya que suelen implementar sensores que entregan
mucha información (big data)que solo se puede recopilar-analizar con una plataforma como Hadoop.
Phoenix: permite acceder HBase mediante SQL-JDBC, compila SQL en una serie de HBase scans.
Drill: SQL query engine para Hbase (noSQL) y Hadoop.
WebHCat: (ex Templeton) REST API para HCatalog y Hive, permite crear tablas y querys (SQL) entre otros. En
HortonWorks hay que instalarlo.