
Twitter: @PeQuitze
Hadoop es una de las herramientas con más futuro para el análisis de datos, vale la pena conocer más a fondo como es que funciona esta herramienta y cuáles son sus partes más importantes para que funcione correctamente.
Vamos a crear una serie de artículos para ir conociendo esta arquitectura y familiarizarnos más con la herramienta.

En la imagen podemos ver que hadoop se encuentra en 3 capas importantes:
- HDFS (Hadoop Distributed File System)
- Yarn
- MapReduce
Existe una capa más arriba de estas 3 que se llama *Hadoop common vale la pena conocerla como parte esencial de hadoop.
Una característica más es la topologiá la cual es maestro-esclavo. Esto quiere decir que tenemos un cerebro dando tareas y administrando recursos a muchos esclavos, siendo los esclavos los que realizan el procesamiento de datos.
Necesario tener java instalado en las maquinas

Namenode (Nodo Maestro):
- Administra los bloques de DataNodes
- Acceso al archivo al usuario
- Registra estado de vida de los nodos
- Administra errores de los DataNodes
DataNode (Nodo Esclavo):
- Almacena datos en formato ext3 o ext4
- Realiza las operaciones de los archivos
- Sigue instrucciones de NameNode
Hadoop Common
Hadoop Common es considerado la base de hadoop puesto que tiene las utilidades comunes y librerías que utilizan las demás capas, contiene los archivos jars y los scrips necesarios para empezar hadoop. Contiene código fuente , documentación y paquetes comunes.
YARN (Yet Another Resource Negotiator)
Negociador de recursos, esta es la idea clave de YARN. El principio básico es separar la administración de recursos y la planificación/supervisión de tareas en deaemons separados.
Dentro de YARN tenemos dos daemons ResourceManger y NodeManager. ResourceManager arbitra recursos entre todas las aplicaciones competidoras del sistema. El NodeManager supervisa los recursos (CPU,memoria,disco,red) usados por los contenedores y los reporta al ResourceManager.
El ApplicationMaster por aplicación es, en efecto, una biblioteca específica de marco y tiene la tarea de negociar recursos del ResourceManager y trabajar con los NodeManager para ejecutar y monitorear las tareas.

Las siguientes capas las encontraremos en la parte 2 y 3 de esta serie de artículos.
