Los servicios a ejecutar en el clúster necesitan Java. Por ello se instala el kit de desarrollo de Java en todos los nodos del clúster. El stack de Hadoop que se va a instalar requiere Java 8.

Una vez instalado se configuran las variables de entorno necesarias en el sistema:

 

La resolución de nombres local del clúster es sumamente importante (tiene, por ejemplo, implicaciones en el correcto despliegue de los agentes de ambari a los nodos del clúster). Los nombres de cada nodo deben ser nombres FQDN y debe además comprobarse que el comando hostname -f devuelve el nombre FQDN de cada hosts.

En el código anterior podemos ver como ejemplo el /etc/hosts del nodo máster y un worker. Nótese que la seccioón Hadoop cluster nodes de este archivo será común a todas las versiones de este archivo en los diferentes nodos del clúster, y que se comenta la línea con IP 127.0.1.1 para evitar problemas en la resolución del FQDN y con zookeeper.

El clúster que se pretende desplegar es un clúster mínimo que físicamente se aloja en un armario rack que contiene los servidores que actúan de nodos del clúster y los dispositivos de conexionado de red (switches) que permiten la comunicación de los nodos.

La red de datos que conecta los nodos del clúster es una red de alta velocidad en la que cada nodo dispone de dos NIC Ethernet agregadas (“bonded”) mediante LACP. Este enlace agregado proporciona el doble de ancho de banda y tolerancia a fallos, en caso de que uno de los enlaces individuales falle.

Cada enlace individual estará conectado a sendos switches CISCO Nexus  de la serie 5000 que componen un dominio vPC (virtual PortChannel). En la siguiente figura puede observarse esta estructura, destacada en azul, entre varias configuraciones típicas de conexionado vPC:

Virtual Port Channel structure for NX5000 series
 
La siguiente figura muestra como se combinan las estructuras anteriores para nuestro clúster:

Para ver la configuración de los switches y nodos/hosts del clúster puede ver las siguientes entradas de este blog:

El clúster que se pretende desplegar es un clúster Hadoop mínimo que permite almacenar y procesar, a “bajo” coste, grandes volúmenes de datos. Estos clústeres están constituidos por un conjunto de servicios y aplicaciones que forman el llamado ecosistema Hadoop:

El clúster está compuesto por diferentes nodos que ejecutan un conjunto de los servicios de Hadoop, podemos decir que ejercen un rol, dentro del clúster. En la siguiente tabla se listan los servicios/roles de los diferentes nodos del clúster:

La siguiente figura muestra un diagrama de la estructura funcional y pseudo-física del clúster:

Los nodos “worker” de un clúster Hadoop proporcionan recursos de procesamiento y almacenamiento para las tareas que se ejecutan en el clúster.

Servidores

Los servidores elegidos para la implementación de los nodos del clúster son:

 

 

  • Servidores DL380 Gen10 con chasis de 2U, con capacidad para 8 discos SFF, equipado cada uno con:
  •  2 procesadores Intel Xeon Silver 4210R (10 cores, 2,40Ghz, 13,75MB cache L3)
  •  256GB de memoria RAM (8x32GB)DDR4 2R 2933MHz RDIMM
  •  Controladora de discos Smart Array P408i-a SR Gen10 con 2GB RAM cache y batería de 96W de respaldo.
  •  Adaptador ethernet de 4 puertos Gigabit 331i integrado
  •  Tarjeta PCIe Ethernet de 2 puertos 10Gb/s 537SFP+
  •  Doble fuente de alimentación redundante de 800W

 

 Discos

Discos duros HPE SAS/SATA de 2.4TB/480GB SFF (2,5″)

  • 2 discos SSD de 480GB SATA Read Intensive SFF
  • 6 discos HDD SAS de 2.4TB 12G 10K SFF

 

Configuración de almacenamiento

De acuerdo a las recomendaciones de configuración para este tipo de nodos por parte de diferentes proveedores de hardware, la distribución discos y su uso se muestra en la siguiente tabla:

En las siguientes figuras pueden observarse los diferentes particionados y volúmenes de los discos anteriores:

 

A continuación puede observarse como han quedado las particiones, sistemas de archivo y su montaje después de la instalación (por ejemplo en el worker 1):

Configuración de red

La red de datos que conecta los nodos del clúster es una red de alta velocidad en la que cada nodo dispone de dos NIC Ethernet agregadas (“bonded”) mediante LACP. Este enlace agregado proporciona el doble de ancho de banda y tolerancia a fallos, en caso de que uno de los enlaces individuales falle. Cada enlace individual estará conectado a sendos switches CISCO Nexus  de la serie 3000 (concretamente N3K-C3064PQ-10GX) que componen un dominio vPC (virtual PortChannel). En la siguiente figura puede observarse esta estructura, destacada en azul, entre varias configuraciones típicas de conexionado vPC:

Virtual Port Channel structure for NX5000 series

 

Para implementar el Host Port Channel en los servers se han de agregar mediante “bonding” las dos NIC estableciendo los siguientes parámetros:

  • MODE= 802.3ad
  • XMIT Hash Policy= layer2 (default)
  • LACP rate= fast

 
El archivo de configuración de red queda como sigue:

Los nodos “master” de un clúster Hadoop alojan los servicios de infraestructura críticos: NameNode, YARN ResourceManager, ZooKeeper, bases de datos de soporte, etc… Para ello los recursos de hardware deben ser adecuados y su configuración de sistemas de almacenamiento considerada.

Servidores

Los servidores elegidos para la implementación de los nodos del clúster son:

 

 

  • Servidores DL380 Gen10 con chasis de 2U, con capacidad para 8 discos SFF, equipado cada uno con:
  •  2 procesadores Intel Xeon Silver 4210R (10 cores, 2,40Ghz, 13,75MB cache L3)
  •  256GB de memoria RAM (8x32GB)DDR4 2R 2933MHz RDIMM
  •  Controladora de discos Smart Array P408i-a SR Gen10 con 2GB RAM cache y batería de 96W de respaldo.
  •  Adaptador ethernet de 4 puertos Gigabit 331i integrado
  •  Tarjeta PCIe Ethernet de 2 puertos 10Gb/s 537SFP+
  •  Doble fuente de alimentación redundante de 800W

 

 Discos

Discos duros HPE SAS/SATA de 2.4TB/480GB SFF (2,5″)

  • 2 discos SSD de 480GB SATA Read Intensive SFF
  • 6 discos HDD SAS de 2.4TB 12G 10K SFF

 

Configuración de almacenamiento

De acuerdo a las recomendaciones de configuración para este tipo de nodos por parte de diferentes proveedores de hardware, la distribución discos y su uso se muestra en la siguiente tabla:

En las siguientes figuras pueden observarse los diferentes particionados y volúmenes de los discos anteriores:

 

A continuación puede observarse como han quedado las particiones, sistemas de archivo y su montaje después de la instalación:

Configuración de red

La red de datos que conecta los nodos del clúster es una red de alta velocidad en la que cada nodo dispone de dos NIC Ethernet agregadas (“bonded”) mediante LACP. Este enlace agregado proporciona el doble de ancho de banda y tolerancia a fallos, en caso de que uno de los enlaces individuales falle. Cada enlace individual estará conectado a sendos switches CISCO Nexus  de la serie 3000 (concretamente N3K-C3064PQ-10GX) que componen un dominio vPC (virtual PortChannel). En la siguiente figura puede observarse esta estructura, destacada en azul, entre varias configuraciones típicas de conexionado vPC:

Virtual Port Channel structure for NX5000 series

 

Para implementar el Host Port Channel en los servers se han de agregar mediante “bonding” las dos NIC estableciendo los siguientes parámetros:

  • MODE= 802.3ad
  • XMIT Hash Policy= layer2 (default)
  • LACP rate= fast

 
El archivo de configuración de red queda como sigue:

Tarea A.1: Instalación, discos y sistemas de archivo (incluye tareas J y K)
Tarea B: Selección de servidor para nodo administrador
Tarea C: Configuración de la resolución de nombres
Tarea D: Configuración del acceso SSH
Tarea H: Instalación de Java
Tarea I.1: Configuración pre-despliegue, NTP
Tarea I.2: Configuración pre-despliegue, syslog
Tarea I.3: Configuración pre-despliegue, ulimit
Tarea I.4: Configuración pre-despliegue, AppArmor
Tarea I.5: Configuración pre-despliegue, tcp_retries
Tarea I.6: Configuración pre-despliegue, firewall
Tarea I.7: Configuración pre-despliegue, swapping e IPv6
Tarea I.8: Configuración pre-despliegue, THP
Tarea J: Configuración de discos en nodos
Tarea K: Configuración de particiones y sistemas de archivo
Tarea L: Configurar fuente de software para repositorio del stack de Hadoop
Tarea M: Instalar y configurar servidor Ambari
Tarea N: Ejecutar asistente Ambari de configuración de despliegue
Tarea O: Desplegar el clúster  
Procedimiento de instalación y configuración de PostgreSQL en nodo máster
Configuración Red de Alta Velocidad