Manejo Apache YARN
Bueno ahora como todos los componentes de Apache, el YARN no es la excepción que nos provea una interfaz gráfica y una linea de comandos para manipular el componente, así que comencemos a descubrir el manejo de este componente.
Primero deberemos verificar que el componente se encuentra disponible con el comando jps en la consola.

Una vez que corroboramos que el YARN esta funcionando en la consola escribimos el siguiente comando, el cual nos listará las diferentes configuraciones que tenemos para este comando.
yarn -help

Estos son todos los comandos que yarn nos proporciona para la administración y monitoreo de las aplicaciones, pero también hay una interfaz gráfica que nos provee esta administración la cual la podemos encontrar en el puerto 8088 de la máquina en donde se ejecuta el RM.
La apariencia de esta página es como la siguiente.

En esta interfaz web podemos controlar y monitorear todo el flujo de un job, procederé a ejecutar el job del wordcount en este clúster con YARN para mostrarles algunas cosas que se puede realizar en esta web UI.

Como podemos ver en el recuadro rojo es el application ID correspondiente a mi wordcount que acabo de ejecutar, como nuestro mapred-site.xml del post Configuración de Apache YARN le dejamos que tomará los 6GB para ejecutar un MapReduce es por eso que solo podemos ejecutar un Job a la vez.
El YARN también nos sirve para tener el estado de los Jobs que se ejecutan en el clúster con los logs de cada Job de acuerdo a su application ID, si nos dirigimos al link de la primera columna donde dice ID y seleccionamos el Job que queremos inspeccionar nos redireccionará a una página como la siguiente. En el recuadro rojo podemos ver el link que nos redirige a la página de los logs que le pertenecen a esta aplicación.

Al seleccionar el link de los logs nos redirige a la página siguiente, la cual nos da 3 links a elegir para mostrar diferentes tipos de logs, los logs de entrada, logs de salida y logs de errores o warnigns, con estas herramientas podemos determinar la causa de que un Job llegue a terminar inesperadamente o que haya sido un error de programación del mismo.

Cuando se manda la petición de recursos la página se ve algo así:

Pero cual es la diferencia entre esta imagen y la anterior, la respuesta es simple, cuando el Job manda la petición de recursos el pide por los recursos mínimos para poder ser ejecutado, que es 2 GB de memoria RAM 1 vcore para 1 contenedor que es la imagen de arriba, una vez que es aceptado YARN verifica si tiene recursos para darle al Job los recursos máximos y por eso en la imagen antepasada es que se corre 1 contenedor con 6GB de memoria RAM y 2 vcores.
Bueno ahora si presionamos el link que lleva por nombre ApplicationMaster hasta el lado derecho de la pantalla, nos desplegará una pantalla como la siguiente, en esta pantalla solo monitoreamos nuestros Job de importancia, aquí viene una descripción más gráfica de todo el flujo podemos ver el número de Maps que el ApplicationMaster a decidido dar de alta, cuantos han terminado y así mismo el número de Reduces.

Ahorita solo estamos monitoreando procesos del tipo MR pero YARN también es capas de monitorear procesos de tipo DAG en los cuales entra TEZ y SPARK como en la siguiente imagen podemos notar.

Bueno una vez sabiendo diferenciar y navegar en la web UI de YARN mostraré algunos comandos para manejar los Jobs.
El primero es listar los Jobs activos y se logra con el siguiente comando.
yarn application -list

Como podemos ver mande un count en hive y aquí aparece el Job en ejecución, esto es muy parecido a la Web UI pero en consola, a continuación si no queremos que un Job siga su ciclo de vida y lo queremos matar deberemos hacer matarlo con el siguiente comando.
yarn application -kill applicationID

Como podemos observar el Job con ese application ID lo hemos detenido y si vamos a la Web UI ahí aparecerá como killed.

Prácticamente todo lo que podemos hacer en la Web UI se puede realizar en la consola con los comandos de YARN.
En este proceso de aprendizaje aunque apenas hemos visto el MR como forma de procesamiento descubriremos los otros dos TEZ y SPARK, los cuales nos proveen más poder de procesamiento y más facilidad como programadores.
El YARN es la herramienta de administración de todos los recursos del clúster y como podemos ver es uno de los componentes más importantes hablando de un clúster de Hadoop, aunque cuando instalamos hadoop trae configurado un YARN embebido por default el cuál no esta configurado apropiadamente a para un clúster productivo de hadoop por eso es bueno conocer esta parte tan importante de este ecosistema llamado hadoop.
Si desean saber más sobre el manejo leyendo las descripciones del comando puede obtenerse más información.
Primero deberemos verificar que el componente se encuentra disponible con el comando jps en la consola.

Una vez que corroboramos que el YARN esta funcionando en la consola escribimos el siguiente comando, el cual nos listará las diferentes configuraciones que tenemos para este comando.
yarn -help

Estos son todos los comandos que yarn nos proporciona para la administración y monitoreo de las aplicaciones, pero también hay una interfaz gráfica que nos provee esta administración la cual la podemos encontrar en el puerto 8088 de la máquina en donde se ejecuta el RM.
La apariencia de esta página es como la siguiente.

En esta interfaz web podemos controlar y monitorear todo el flujo de un job, procederé a ejecutar el job del wordcount en este clúster con YARN para mostrarles algunas cosas que se puede realizar en esta web UI.

Como podemos ver en el recuadro rojo es el application ID correspondiente a mi wordcount que acabo de ejecutar, como nuestro mapred-site.xml del post Configuración de Apache YARN le dejamos que tomará los 6GB para ejecutar un MapReduce es por eso que solo podemos ejecutar un Job a la vez.
El YARN también nos sirve para tener el estado de los Jobs que se ejecutan en el clúster con los logs de cada Job de acuerdo a su application ID, si nos dirigimos al link de la primera columna donde dice ID y seleccionamos el Job que queremos inspeccionar nos redireccionará a una página como la siguiente. En el recuadro rojo podemos ver el link que nos redirige a la página de los logs que le pertenecen a esta aplicación.

Al seleccionar el link de los logs nos redirige a la página siguiente, la cual nos da 3 links a elegir para mostrar diferentes tipos de logs, los logs de entrada, logs de salida y logs de errores o warnigns, con estas herramientas podemos determinar la causa de que un Job llegue a terminar inesperadamente o que haya sido un error de programación del mismo.

Cuando se manda la petición de recursos la página se ve algo así:

Pero cual es la diferencia entre esta imagen y la anterior, la respuesta es simple, cuando el Job manda la petición de recursos el pide por los recursos mínimos para poder ser ejecutado, que es 2 GB de memoria RAM 1 vcore para 1 contenedor que es la imagen de arriba, una vez que es aceptado YARN verifica si tiene recursos para darle al Job los recursos máximos y por eso en la imagen antepasada es que se corre 1 contenedor con 6GB de memoria RAM y 2 vcores.
Bueno ahora si presionamos el link que lleva por nombre ApplicationMaster hasta el lado derecho de la pantalla, nos desplegará una pantalla como la siguiente, en esta pantalla solo monitoreamos nuestros Job de importancia, aquí viene una descripción más gráfica de todo el flujo podemos ver el número de Maps que el ApplicationMaster a decidido dar de alta, cuantos han terminado y así mismo el número de Reduces.

Ahorita solo estamos monitoreando procesos del tipo MR pero YARN también es capas de monitorear procesos de tipo DAG en los cuales entra TEZ y SPARK como en la siguiente imagen podemos notar.

Bueno una vez sabiendo diferenciar y navegar en la web UI de YARN mostraré algunos comandos para manejar los Jobs.
El primero es listar los Jobs activos y se logra con el siguiente comando.
yarn application -list

Como podemos ver mande un count en hive y aquí aparece el Job en ejecución, esto es muy parecido a la Web UI pero en consola, a continuación si no queremos que un Job siga su ciclo de vida y lo queremos matar deberemos hacer matarlo con el siguiente comando.
yarn application -kill applicationID

Como podemos observar el Job con ese application ID lo hemos detenido y si vamos a la Web UI ahí aparecerá como killed.

Prácticamente todo lo que podemos hacer en la Web UI se puede realizar en la consola con los comandos de YARN.
En este proceso de aprendizaje aunque apenas hemos visto el MR como forma de procesamiento descubriremos los otros dos TEZ y SPARK, los cuales nos proveen más poder de procesamiento y más facilidad como programadores.
El YARN es la herramienta de administración de todos los recursos del clúster y como podemos ver es uno de los componentes más importantes hablando de un clúster de Hadoop, aunque cuando instalamos hadoop trae configurado un YARN embebido por default el cuál no esta configurado apropiadamente a para un clúster productivo de hadoop por eso es bueno conocer esta parte tan importante de este ecosistema llamado hadoop.
Si desean saber más sobre el manejo leyendo las descripciones del comando puede obtenerse más información.
Comentarios
Publicar un comentario