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.
Referencia: https://hive.apache.org/
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/
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.
Referencia: https://hive.apache.org/
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.
Referencia: https://spark.apache.org/
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.
Referencia: http://mahout.apache.org/
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/
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/
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/
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/
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/
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.
Referencia: https://kafka.apache.org/
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.
Referencia: https://flume.apache.org/
Comentarios
Publicar un comentario