BigData & Hadoop (I) - Definiciones básicas y Esquema de la Configuración Típica
julio 18, 2013![]() |
Un elefante amarillo. Se nota que se lo inventó un ingeniero. |
Este post pertenece a la serie de BigData & Hadoop. A continuación tenéis el esquema que iré siguiendo de publicación de los Post:
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 rápido 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 baj 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 archivosDataNode: almacena los Bloques actuales. Cada bloque se replica 3 veces en el cluster.
![]() |
El Dataname |
![]() |
Los Datanodes |
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 HDFSNameNode 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
![]() |
Esquema de la configuración |
Fuente: cloudera
0 comentarios
Sé respetuoso/a, en este blog caben todo tipo de opiniones con respeto y serenidad.