Está en la página 1de 8

2.3.

1 Hadoop

Apache Hadoop es un marco de software diseñado por Apache Software Foundation


para almacenar y procesar grandes conjuntos de datos de diferentes tamaños y
formatos. Hadoop sigue la arquitectura maestro-esclavo para almacenar y procesar
de manera efectiva grandes cantidades de datos. Los nodos maestros asignan
tareas a los nodos esclavos.

Capa de almacenamiento (HDFS): HDFS es el sistema de archivos distribuidos


de Hadoop , que se ejecuta en hardware básico económico. Es la capa de
almacenamiento de Hadoop. Los archivos en HDFS se dividen en fragmentos del
tamaño de un bloque llamados bloques de datos. Estos bloques luego se
almacenan en los nodos esclavos en el clúster. El tamaño del bloque es de 128
MB por defecto, que podemos configurar según nuestros requisitos. Al igual que
Hadoop, HDFS también sigue la arquitectura maestro-esclavo. Comprende dos
demonios: NameNode y DataNode. NameNode es el demonio maestro que se
ejecuta en el nodo maestro. Los DataNodes son el demonio esclavo que se ejecuta
en los nodos esclavos.

Figura 1 Infraestructura de HDFS


Capa de procesamiento de datos (MapReduce): Es un marco de software para
escribir aplicaciones que procesan grandes cantidades de datos (terabytes a
petabytes en el rango) en paralelo en el clúster de hardware básico. El marco
MapReduce funciona en los pares <clave, valor>. Hadoop ejecuta los trabajos de
MapReduce dividiéndolos en dos tipos de tareas que son tareas de mapa y tareas
de reducción. Hadoop YARN programó estas tareas y se ejecutan en los nodos del
clúster. Debido a algunas condiciones desfavorables, si las tareas fallan, se
reprogramarán automáticamente en un nodo diferente.

Figura 2 Apache Hadoop MapReduce arquitectura

Capa de gestión de recursos (YARN): YARN son las siglas de Yet Another
Resource Negotiator . Es la capa de gestión de recursos de Hadoop. Fue
introducido en Hadoop 2. YARN está diseñado con la idea de dividir las
funcionalidades de programación de trabajos y administración de recursos en
demonios separados. La idea básica es tener un ResourceManager global y un
maestro de aplicación por aplicación donde la aplicación puede ser un solo trabajo o
DAG de trabajos.
Figura 3 Apache Hadoop YARN arquitectura

2.3.2 Apache Spark

Apache Spark es uno de los motores de procesamiento de datos más rápido del


mercado. Al igual que las anteriores herramientas Big Data, también dispone de
una licencia de código abierto, lo que permite que esté en constante mejor y
ofrezca soluciones creadas por los propios usuarios de Spark. Una de las grandes
ventajas de Apache Spark es que acepta un gran abanico de lenguajes de
programación. Por lo tanto, sus usuarios pueden programar utilizando distintos
lenguajes como Java, Scala, Python o R. Por último, otro de los aspectos a destacar
de Apache Spark, es que su velocidad en memoria puede ser 100 veces más rápida
que Hadoop MapRudec. Del mismo modo, en disco puede ser hasta 10 veces más
rápido que MapReduce.

Figura 4 Software compatibles con Spark


2.3.3 Flume

Flume es un servicio distribuido, confiable y disponible para recopilar, agregar y


mover de manera eficiente grandes cantidades de datos de registro. Tiene una
arquitectura simple y flexible basada en flujos de datos de transmisión. Es robusto y
tolerante a fallas con mecanismos de confiabilidad ajustables y muchos mecanismos
de conmutación por error y recuperación. Utiliza un modelo de datos extensible
simple que permite la aplicación analítica en línea.

Figura 5 Arquitectura de Apache Flume

2.3.4 Sqoop

Apache Sqoop es una herramienta de línea de comandos desarrollada para transferir


grandes volúmenes de datos de bases de datos relacionarles a Hadoop, de ahí su
nombre que viene de la fusión de SQL y Hadoop. Concretamente transforma datos
relacionarles en Hive o HBase en una dirección y en la otra de HDFS a datos
relacionares como MySQL, Oracle, Postgress o a un data warehouse.

El proceso de transferencia consiste leer fila por fila cada tabla de la base de datos e
importarlas a HDFS, la salida de estos es un conjunto de ficheros que puede estar
en formato CSV, Avro, binario o de secuencia.
Figura 6 Descripción general de la importación de Sqoop

2.3.5 Storm

Apache Storm es un sistema de computación en tiempo real distribuido gratuito y de


código abierto. Apache Storm facilita el procesamiento confiable de flujos de datos
ilimitados, haciendo para el procesamiento en tiempo real lo que Hadoop hizo para el
procesamiento por lotes. Apache Storm es simple, se puede usar con cualquier
lenguaje de programación y es muy divertido de usar. Apache Storm tiene muchos
casos de uso: análisis en tiempo real, aprendizaje automático en línea, computación
continua, RPC distribuido, ETL y más. Apache Storm es rápido: un punto de
referencia registró más de un millón de tuplas procesadas por segundo por
nodo . Es escalable, tolerante a fallas, garantiza que sus datos serán procesados y
es fácil de configurar y operar.

Figura 7 ejemplo de configuración de Apache Storm con 4 nodos.


2.3.6. Kafka

Apache Kafka es una plataforma distribuida de transmisión de datos que permite


publicar, almacenar y procesar flujos de registros, así como suscribirse a ellos, de
forma inmediata. Está diseñada para administrar los flujos de datos de varias fuentes
y distribuirlos a diversos usuarios. En pocas palabras, transfiere cantidades enormes
de datos, no solo desde el punto A hasta el B, sino también del punto A al Z y a
cualquier otro lugar que necesite, y todo al mismo tiempo.

Apache Kafka es la alternativa a un sistema de mensajería tradicional para


empresas. Comenzó como un sistema interno que LinkedIn desarrolló para gestionar
1,4 billones de mensajes por día. Ahora, es una solución open source de transmisión
de datos que permite satisfacer diversas necesidades empresariales.

Figura 8 Apache Kafka infraestructura y sus componentes

2.3.7 Flink

Apache Flink es un framework de código abierto orientado al procesamiento de


flujos de datos en streaming de forma distribuida y con alta disponibilidad. El
proyecto surgió en el año 2015. Las características más importantes de Apache Flink
son las siguientes:
 Procesamiento de flujos de datos: Permite obtener resultados en tiempo real
a partir de flujos de datos.

 Procesamiento Batch: Procesamiento de datos históricos y estáticos.

 Aplicaciones orientadas a eventos: Se pueden realizar acciones y dar


servicios a partir de los datos procesados en tiempo real.

Figura 9 Arquitectura Apache Flink

2.3.8 Hive

El software de almacenamiento de datos Apache Hive ™ facilita la lectura, escritura y


administración de grandes conjuntos de datos que residen en almacenamiento
distribuido mediante SQL. La estructura se puede proyectar sobre los datos que ya
están almacenados. Se proporciona una herramienta de línea de comandos y un
controlador JDBC para conectar a los usuarios a Hive.

Figura 10 Apache Hive Arquitectura


https://www.tokioschool.com/noticias/fases-big-data/
https://www.afiescueladefinanzas.es/las-10-herramientas-big-data-mas-
importantes
https://techvidvan.com/tutorials/hadoop-architecture/
https://hop2croft.wordpress.com/2013/09/01/apache-flume-y-apache-sqoop/
https://keepcoding.io/blog/apache-fluume/#Que_es_Apache_Flume
https://www.diegocalvo.es/sqoop/
https://storm.apache.org/
https://phoenixnap.com/kb/apache-storm
https://www.redhat.com/es/topics/integration/what-is-apache-kafka
https://aprenderbigdata.com/introduccion-apache-flink/

También podría gustarte