Miércoles, 15 enero 2020

Hadoop: qué es y para qué se utiliza

¿Sabes qué es Apache Hadoop y para qué sirve? En UNIR te damos las claves de uno de los frameworks más importantes para el Big Data.

Hadoop nace como iniciativa de Apache para dar soporte al paradigma de programación Map-Reduce, que fue inicialmente publicado por Google. 

El propósito principal del framework es almacenar grandes cantidades de datos y permitir consultas sobre dichos datos, que se ofrecerán con un bajo tiempo de respuesta. Esto se consigue mediante la ejecución distribuida de código en múltiples nodos (máquinas), cada uno de los cuales se encarga de procesar una parte del trabajo a realizar.

Lo principal de esta arquitectura es que, aunque cada máquina funciona de manera independiente, todas las que constituyen el clúster Hadoop, actúan en equipo como si fueran una única con recursos altamente escalables.

Características de Apache Hadoop

La principal característica de Map-Reduce (y por tanto de Hadoop) es la posibilidad de hacer procesamiento distribuido de datos. Eso se consigue con:

–Un esquema de almacenamiento distribuido (HDFS) en el que cada nodo almacena un fragmento de la información.

–Una forma de estructurar el tratamiento de los datos que posibilita que cada nodo pueda tratar los datos de su propio nodo. 

Este método de organizar los datos permite una alta escalabilidad, de forma que es sencillo y poco costoso aumentar la capacidad de almacenamiento del sistema, así como reducir el tiempo de respuesta para una consulta dada.

El framework de trabajo permite la aplicación de Map-Reduce con diferentes lenguajes de programación, lo que dota al sistema completo de mayor versatilidad.

Otras características de Hadoop son:

–Tolerancia a fallos: al tratarse de una arquitectura distribuida entre una gran cantidad de nodos, se dispone de tolerancia a fallos en los mismos ya que, si falla alguno de ellos, sus tareas son traspasadas de manera transparente a otro de sus pares. Los datos son replicados automáticamente en múltiples máquinas.

–Flexibilidad: los datos no son procesados previamente a su almacenamiento. Se pueden almacenar tantos datos, estructurados o no estructurados (por ejemplo: imágenes, textos, etc.), como se necesite y decidir posteriormente cómo se van a utilizar.

–El coste es relativamente bajo: al tratarse de una licencia de software libre (gratuita) y que utiliza hardware convencional para almacenar y procesar la información.

Componentes de Apache Hadoop

Los componentes básicos de los que consta son:

–Sistema de archivos distribuido HDFS: la información no se almacena en una única máquina, sino que se distribuye entre todas las máquinas que forman el clúster.

–Framework MAP-REDUCE: se trata de un enfoque sistemático que utiliza el sistema de archivos distribuido HDFS para el procesamiento en paralelo de los datos. El sistema se estructura mediante una arquitectura maestro-esclavo donde el servidor maestro de cada clúster Hadoop recibe y encola las peticiones de los usuarios y las asigna a los servidores esclavos para su procesamiento.

Ventajas de utilizar Hadoop

Entre las ventajas de usar Hadoop señalar: 

–Los desarrolladores no tienen que enfrentar los problemas de la programación en paralelo. 

–Permite distribuir la información en múltiples nodos y ejecutar los procesos en paralelo.

–Dispone de mecanismos para la monitorización de los datos.

–Permite la realización de consultas de datos.

–Dispone de múltiples funcionalidades para facilitar el tratamiento, seguimiento y control de la información que se almacenada.

¿Para qué usar Hadoop en Big Data?

Hadoop es utilizado en Big Data para ofrecer capacidades de análisis de datos avanzadas. Entre sus usos más extendidos están:

–Almacenar grandes cantidades de información de una manera estructurada o en su formato original para poder ser analizada y procesada posteriormente.

–Realizar desarrollos y establecer entornos de prueba que permitan mejorar la eficiencia de los procesos y operaciones de las organizaciones, innovar, etc.

–Analizar, descubrir y definir patrones de comportamiento mediante el procesamiento de las grandes cantidades de datos recibidos de los dispositivos IoT (“Internet of Things”), utilizando Hadoop como su repositorio de información.

–El carácter flexible del sistema Hadoop permite modificar el sistema de datos de las empresas u organismos en función de las diferentes necesidades que vayan surgiendo.