Hadoop Apache (I) – Introducción y Esquema de la Configuración

_hadoopelephant_rgb1

Su logo es ese elefante amarillo, el juguete favorito del hijo de su creador original, Doug Cutting.

Este post pertenece a la serie de Hadoop Apache.

A continuación teneís el esquema que iré siguiendo de publicación de los Post:

HADOOP APACHE (I): Introducción y Esquema de la Configuración

HADOOP APACHE (II): MapReduce

HADOOP APACHE (III): Zookeeper

HADOOP APACHE (IV): HBase

HADOOP APACHE (V): Hive

Hoy vamos a dar un repaso a la tecnología Hadoop, donde veremos como funciona HDFS, uno de sus dos componentes principales(HDFS y MapReduce), y daremos los conceptos claves de todos los puntos de unión entre ambos componentes.

1. ¿Qué es Hadoop?

1.1 Definición

Es una tecnología que se emplea para el tratamiento de grandes volúmenes de información,a través de una configuración distribuída en muchas máquinas.Esto nos permite tener acceso a los datos mucho más rapido que con otros sistemas de gestión de datos.Utiliza HDFS para guardar los archivos en las máquinas,que veremos explicado a continuación.

1.2 Hadoop Distributed File System

Es el software encargado de almacenar datos en un Clúster. Los Datos son dividos en diferentes Bloques (como si fueran trozos que contienen un conjunto de datos) y distribuidos a través de los Nodos del Cluster.

Cada Bloque se puede replicar(clonar) muchas veces:
· Por defecto cada Bloque se replica tres veces.
· Las réplicas se almacenan en diferentes nodos.
· Esto nos asegura tanto la confiabilidad como la disponibilidad.

2. Conceptos básicos de HDFS

El sistema de archivos HDFS está escrito en Java, basado en Google GFS. Permite tener como sistemas de archivos nativos a Ext3, xfs…

Permite usar almacenamiento para cantidades de datos masivos, usando computadoras baratas y de baja gama.

HDFS trabaja mejor con archivos de poco tamaño, ya que a menudo vamos a tener millones o miles de millones de archivos. Cada archivo pesa sobre los 100Mb o más.

Los archivos en HDFS están escritos solo una vez, y no se permiten la escritura aleatoria en archivos.

Por otra parte HDFS está optimizado para grandes lecturas de archivos Streaming, a menudo son lecturas aleatorias.

3. ¿Cómo son almacenados los archivos?

Los archivos se dividen en Bloques. Los Datos son distribuidos a través de muchas máquinas cuando son cargados. Un mismo archivo puede tener Bloques diferentes  almacenados en distintas computadoras y esto se debe a que nos proporciona un procesamiento más eficiente para la operación MapReduce.

Los Bloques son replicados a través del mayor número de computadoras, conocidas como DataNodes. Por defecto, se hace una réplica con factor igual a 3. Por ejemplo un mismo Bloque puede estar en tres máquinas distintas.

El Nodo maestro se llamará NameNode y mantendrá la información de qué Bloques hacen un archivo, además de donde están localizados. A esto se le conoce como Metadata.

3.1 Cómo son almacenados los archivos: Ejemplo

NameNode: almacena solamente los Metadatos de los archivos

DataNode: almacena los Bloques actuales. Cada bloque se replica 3 veces en el cluster.

imagen1
El dataname
imagen2
Los Datanodes

Cliente lee un archivo: se comunica con el NameNode para determinar cuales son los bloques hacen un archive, y en cuales de los DataNodes se almacenan.Entonces se comunica directamente con el DataNode para leer los Datos.

4. Obteniendo datos Dentro y Fuera de HDFS

El API de Hadoop:
· Hadoop fs opera con datos en HDFS:
hadoop fs –copyFromLocal local_dir /hfs_dir

hadoop fs –copyToLocal /hdfs_dir local_dir

Proyectos del Ecosistema:
· Flume: recolecta datos de la generación de logs( WebSites, syslogs, STDOUT)
· Sqoop: extrae y/o inserta datos entre HDFS y Sistemas de Bases de Datos Relacionales
Herramientas de Business Intelligence.

5. Anatomía de un Clúster Hadoop

5.1 Los cinco demonios de Hadoop

NameNode: guarda los metadatos para el HDFS

NameNode secundario:
· Realiza las funciones de limpieza para el NameNode
· No es un backup del NameNodo principal

DataNode: Almacena los Bloques de Datos HDFS actuales

JobTracker: gestiona los Jobs de MapReduce y distribuye las tareas individuales.

TaskTracker: es responsable de instanciar y monitorizar los Map individuales y las tareas Reduce.

5.2 Configuración básica de un Clúster

 

imagen3
Esquema de la Configuración

 

Hasta aquí la lección de hoy. Nos vemos en el siguiente post amigos 🙂

Anuncios

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