Componentes Apache Software Fundation

Después de la breve introducción al mundo de Big Data este post se tratará de una breve introducción a los componentes que la Fundación Apache Ofrece, como mencione anteriormente Apache Hadoop fue la primera Herramienta que ofreció al mundo en procesamiento distribuido.

Pero la revolución apenas empezaba hace 10 años con esta herramienta, hoy en día cuenta con muchas herramientas especializadas para ciertas cosas, entre los cuales podemos encontrar (Hadoop, Spark, HBase, Hive, Zookeeper, Mahout, Ambari, Falcon, Oozie, etc) más referencias sobre las herramientas que tiene Apache para Big Data en el siguiente link pueden encontrarse https://projects.apache.org/projects.html?category#big-data

Para empezar debemos dar algunas definiciones.

Clúster: Es un conjunto de computadoras conectados mutuamente entre cada uno.

Servidor: Un ordenador que manda respuestas a un cliente, se la pasa escuchando todo el tiempo.

Cliente: Un ordenador que manda peticiones a un cliente, usualmente solo cuando manda peticiones se usa.

Apache Hadoop

Apache Hadoop es el corazón de toda la solución del procesamiento en paralelo, siempre hago la analogía entre un clúster y un ordenador, un ordenador tiene como componentes básicos un Operative System (OS) y un FileSystem(FS), este concepto fue trasladado para el procesamiento paralelo y Apache Hadoop provee todo esto, ya que Apache Hadoop se podría ver como el OS  del cluster y la misma herramienta provee el Hadoop Distributed File System (HDFS)  que podría verse como su FS en un ordenador.

Referencia: http://hadoop.apache.org/

Apache Yarn 

Apache YARN (Yet Another Resources Negociator)  fue introducido en Apache Hadoop 2 o en la versión dos de Hadoop. En Apache Hadoop la única manera de procesar era con MapReduce pero con la versión 2 de Hadoop fue introducido el Apache YARN y Tez una forma de procesamiento que optimiza el proceso MR, ¿Qué ventajas trae consigo YARN?
con este nuevo componente Apache nos da la opción de independizar un poco y de personalizar la configuración del hardware de nuestro clúster. 

Apache Hive

Apache Hive algunos lo llaman Dataware House, algunos otros Base de Datos, para mi solo es un Job programado para interpretar SQL y no hacer tan pesado el cambio a los DBA a una estructura más compleja en un sistema distribuido. Creo que Apache Hive surge más como una necesidad de manipular información de una manera común SQL sobre Hadoop, aunque también todos los tipos de formatos que existen para el procesamiento masivo (.parquet, .avro, etc) surgen al querer optimizar el procesamiento en hive que después otras herramientas usarán.

Apache Spark


Apache Spark es una herramienta de procesamiento con muchos módulos montado sobre su propio hadoop y utiliza YARN para su mejor desempeño, Los módulos con los que cuenta Spark son los siguientes:
  • Spark-SQL
  • Spark-Streaming
  • MLlib
  • GraphX
Apache Spark ya no usa la tecnología MapReduce, en cambio fue sustituido por su propia forma de optimizar el MR y corre jobs del tipo Spark que es 100 veces más rápido que el MR. Una diferencia notable entre Spark y Hadoop, es que Spark procesa todo in-memory y Hadoop mediante peticiones. 


Apache Mahout

Apache Mahout es una herramienta para el Machine Learning al igual que Spark MLlib, esta herramienta nos brinda un framework para programar algoritmos paralelizados de forma sencilla y rápida.


Apache HBase

Apache Hbase es una Base de Datos NoSQL en el ambiente distribuido. Es inmensamente veloz en consulta, yo lo considero como un remake de Accumulo. Al igual que la mayoría de los componentes en Big Data HBase tiene su propio nodo Maestro y sus esclavos, pero el concepto revolucionario que llega con esta tecnología,  es el zookeeper de la cuál hablaré más adelate.

Referencia: https://hbase.apache.org/

Apache Zookeeper

Apache Zookeeper nace con HBase, como un monitoreador de Servicios del cluster de HBase, es el encargado de checar que cada nodo este respondiendo, de avisar si alguno cae, y es necesario para la administración de los clústers actualmente.

Referencia: https://zookeeper.apache.org/

Apache Oozie

Apache Oozie es un Programador de Tareas, esta herramienta es muy gráfica, aparte de programar tareas sirve para definir flujos del tipo Map Reduce de forma gráfica.

Referencia: http://oozie.apache.org/

Apache Impala

Apache Impala más que una base de datos, surge por la necesidad de respuesta de queries en tiempo real para todos esos usuarios que pasan del mundo relacional y estructurado sin ninguna experiencia, al mundo distribuido. Aparte podemos hacer queries a dos amigos recién presentados, Apache HBase y HDFS. Impala usa la misma forma de metadato que Apache Hive.

Referencia: https://impala.incubator.apache.org/

Apache Ambari

Apache Ambari es un cluster manager, nos ayuda a instalar algunos componentes de Apache Big Data de forma gráfica y amistosa, aparte de instalar de forma amistosa, podemos administrar los componentes de forma agradable con una Web Interface.

Referencia: https://ambari.apache.org/

Apache  Kafka 

Apache Kafka es un componente que nos ayuda a crear streaming applications y data pipelines (tuberías de datos) para aplicaciones en tiempo real, es una plataforma distribuida, las fuentes pueden venir de desktop applications, web applications, databases etc.

Apache Flume

Apache Flume es una herramienta distribuida para la transferencia de un volumen masivo de información  de a HDFS. Su principio esta Basado en un proceso streaming.


Comentarios

Entradas más populares de este blog

Replicación y Formas de Paralelización Apache Hadoop

Asignación de un líder Zookeeper

Manejo Apache Hive