Uno de los temas más complejos cuando comenzamos con Hadoop es decidir cómo dimensionar nuestro cluster.
Ahí va el primer post sobre recomendaciones de dimensionamiento (habrá más :)):
1) Empezar con un cluster pequeño:
o De unos 4 – 6 nodos
o Ir añadiendo más nodos
2) Nodos en Hadoop pueden ser Master Nodes (JobTracker, NameNode y SecondayNameNode) o Slave Nodes (TaskTracker y DataNode):
o Nodos Slave corren DataNode + TaskTracker
o En cluster pequeños NameNode y JobTracker en la misma máquina (incluso SecondaryNameNode) auqnue al menos una copia de los metadatos del NameNode deben estar en una máquina separada
o Normalmente un cluster con más nodos funciona major que uno más pequeño como nodos más rápidos
3) Configuración base para un Slave Node:
o 4 x 1TB o 2TB hard drive en configuración JBOD (JBOD: Just a Bunch of Disks), no usar RADI
o 2 x Quad-core CPUs (Tareas Hadoop no suelen ser intensivas en CPU si no en disco e I/O por lo que no se necesita CPUs top)
o 16-32GB RAM (cada tarea ocupa 1-2 Gb de RAM)
o Gigabit Ethernet
o Habilitado Hyper-threading
4) Formas de decidir cuándo debe crecer el cluster:
o Por capacidad de computación necesaria
o Por cantidad de datos a almacenar
o Por cantidad de memoria necesaria para procesar tareas
5) El crecimiento del cluster por cantidad de datos es un método sencillo y bueno de estimar:
o Si tengo máquinas cada una con 4 discos de 1 TB y cada mes necesito procesar 500 Gb de datos
o Con HDFS configurado para replicarse 3 veces tendré que cada mes necesito 3 TB
o Le sumo un 25% de overhead
o Cada mes por tanto necesito 3 x 500 Gb x 1,25 = 1,875 TB, por lo que tendré que meter una nueva máquina al cluster cada 2 meses aproximadamente.


Replica a Dimensionando nuestro Cluster Hadoop | Un poco de Java Cancelar la respuesta