¿Qué es Hadoop?

Hadoop es un sistema de código abierto que se utiliza para almacenar, procesar y analizar grandes volúmenes de datos; cientos de terabytes, petabytes o incluso más.

Hadoop surgió como iniciativa open source (software libre) a raiz de la publicación de varios papers de Google sobre sus sistemas de archivo, su herramienta de mapas y el sistema BigTable Reduce. Como resultado nació un conjunto de soluciones en el entorno Apache: HDFS Apache, Apache MapReduce y Apache HBase; que se conocen como Hadoop, con herramientas como Sqoop (para importar datos estructurados en Hadoop cluster) o NoSQL (para realizar el análisis de los datos no estructurados) entre otros.

¿Por qué es bueno Hadoop?
En en el entorno tecnológico que actualmente se mueven todas las organizaciones, donde los sistemas no sólo son capaces de generar e ingestar los datos rápidamente sobre formatos estructurados (SQL), también, cada vez más, se generan datos que no son estructurados (NoSQL).

Hadoop es capaz de almacenar toda clase de datos: estructurados, no estructurados, semiestructurados; archivos de registro, imágenes, video, audio, comunicación, etc

Por otra parte Hadoop también destaca por tener una arquitectura con capacidad de asegurar una alta disponibilidad y recuperación de los datos que ingesta.

Algunos conceptos clave sobre Hadoop

  • Replication

La alta disponibilidad de los datos en Hadoop es posible debido a que lleva implícita la replicación de datos en un clúster Hadoop. Un bloque de archivo se replica en varios “nodos de datos” en función del “factor de replicación” del clúster Hadoop, que podría ser 1, 2, 3…

Un factor de replicación de 1 indica que un bloque de archivo residirá en un sólo “nodo de datos”. Un factor de replicación de 2 indica que un bloque de archivo residirá en dos “nodos de datos”, ya sea dentro del mismo rack o en uno que esté físicamente a miles de kilómetros de distancia; etc, etc.

  • Arquitectura

Hadoop se basa en una arquitectura Master/Slave (Maestro/Esclavo) con tipos de nodos: nodo máster (maestro) y los nodos slave (esclavos). Un clúster Hadoop tiene un sólo nodo máster y varios nodos slave.

  • Nodo Máster

Es el encargado de almacenar el metadato asociado a sus nodos slave dentro del rack del que forma parte.

El nodo máster es el responsable de mantener el estatus de sus nodos slave, estableciendo uno de ellos como nodo pasivo, que se convertirá en nodo máster, si por cualquier motivo éste se quedara bloqueado. Uno de los problemas que tiene Hadoop es que a veces el nodo pasivo no está sincronizado con el nodo máster original, al asumir las funciones de éste dentro del proceso.

  • Nodo slave

Es el nodo encargado de almacenar la información que se está procesando por el nodo máster en un momento concreto.

  • Rack

En Hadoop se denomina rack a la combinación de “nodos de datos”. Un rack puede tener máximo de 40 nodos máster. Cada rack tiene un switch que le permite comunicarse con los distintos racks del ecosistema, sus nodos y procesos cliente.

  • Proceso cliente

Un proceso cliente es un proceso que se lanza a petición de un nodo máster, ya sea para almacenamiento de archivo nuevo o recuperación de un archivo en el clúster Hadoop. El nodo máster se comunica directamente con el proceso cliente y actúa según el tipo de petición que este le realiza.

 EcosistemaHadoop

Anuncios

8 comentarios en “¿Qué es Hadoop?

  1. De que manera se guardan los datos el Haddop ? es decir; similar a un file system tipico? formatos txt, jpg, xls, doc, etc ? como guardo un dato estructurado en hadoop?

    Me gusta

    1. Estimado Mario.

      No termino de entender bien la cuestión que me planteas. Hadoop es un software que corre sobre una infraestructura hardaware.
      Si lo que quieres saber es como instalar Hadoop, en el siguiente enlace, https://undercloud.org/2010/05/07/instalacion-de-hadoop-distributed-file-system-hdfs-parte-i/, puedes encontrar una descripción de este proceso para hacerlo a nivel local o distribuido.
      Si lo que quieres saber es como estructurar el hardware para que pueda correr Hadoop, la clave está en que primero tengas claro que necesidades de almacenamiento y procesamiento va a necesitar el proyecto que vayas a acometer. A partir de ahí podrás definir las características de la plataforma hardware que necesitarías, a partir de ahí sería montar un clúster hardware “normal” en el que integres Apache Hadoop.

      De todas formas, salvo para algún tipo de prueba que desees hacer para lo que podrías utilizar cualquier equipo tipo laptop o sobremesa con Linux, lo recomendable es que utilices cualquiera de las múltiples soluciones cloud existentes que incorporan Hadoop en sus configuraciones. Yo te recomendaría utilizar el servicio Cloud de Google (https://cloud.google.com/launcher/) por la magnifica relación calidad/precio del servicio. Además que te ofrece la posibilidad de realizar una prueba gratuita del servicio.

      Un saludo

      Me gusta

  2. Hola soy nuevo en estos temas actualmente estoy realizando una investigacion sobre este tipo de herramientas ya que considero necesario, alguien me podria dar un ejemplo practico de la utilizacion de una herramienta Hadoop en el ambito laboral

    Me gusta

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s