Deshabilitar Transparent Huge Pages (THP) reduce el uso elevado de CPU que causa. Se realiza mediante la gestión del servicio asociado.

Si dicho servicio no existe, habrá que crear previamente su archivo de definición de servicio para poder manejarlo:

Se recomienda la reducción del swapping en todos los nodos, así como la deshabilitación del protocolo IP versión 6.

La configuración por defecto del firewall es demasiado restrictiva para cualquier despliegue de Hadoop. Si el clúster de Big Data dispone de una red propia, asegurada y aislada no hay necesidad de un cortafuegos adicional en cada sistema.

Ajustar el parámetro tcp_retries para la red del sistema permite una detección más rápida de nodos que fallan. En cada nodo, establecer el valor de este parámetro a 5 puede ayudar a detectar nodos inaccesibles con menos latencia. La configuración se realiza en el archivo /etc/sysctl.conf.

AppArmor debe estar deshabilitado durante la instalación y configuración del clúster. Puede habilitarse posteriormente, después de la instalación y mientras el clúster está corriendo.

En cada nodo, ulimit -n especifica el número de i-nodos que pueden abrirse simultáneamente. Con el valor por defecto de 1024, el sistema parece que no dispone de espacio en disco y muestra que no tiene i-nodos disponibles. Este valor debería establecerse a 64000 en cada nodo. El archivo a configurar es /etc/security/limits.conf.

Syslog debe estar habilitado en cada nodo del clúster para preservar los archivos de log referidos a procesos y trabajos finalizados de firma abrupta o que han fallado.

El protocolo Network Time Protocol (NTP) se utiliza para sincronizar la hora y fecha de todos los nodos dentro del clúster. La configuración de NTP es crítica para cualquier clúster de Hadoop. Cualquier falta de sincronismo en los servidores puede desembocar en serios problemas con HBase y otros servicios.

En nuestro caso vamos a instalar chrony  en todos los nodos y a configurarlo para que utilice el servidor NTP del centro.

El archivo de configuración de chrony, /etc/chrony/chrony.conf, queda:

 

Una vez editado el archivo de configuración se gestiona el servicio y se comprueba su estado de sincronización:

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.