Dimensionando nuestro Cluster Hadoop I

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.

Respuesta

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