¿Cómo puedo configurar o modificar el etiquetado de nodos con la cola del Programador de YARN en Amazon EMR?

5 minutos de lectura
0

Quiero configurar o modificar el etiquetado de nodos mediante la cola del Programador de YARN en Amazon EMR.

Descripción breve

La configuración predeterminada de las etiquetas de nodos YARN para los clústeres de EMR es la siguiente:

Amazon EMR versión 5.19.x y versiones posteriores de la serie Amazon EMR-5.x.x:

La característica de etiquetas de nodos YARN está activada de forma predeterminada. Esto significa que la etiqueta de nodo CORE se crea para los nodos principales con las siguientes propiedades. Los contenedores YARN Application-Master se asignan solo a los nodos principales. Para todos los demás contenedores, no hay ninguna restricción de partición. Puede asignar los contenedores en los nodos de tarea o principales.

yarn.node-labels.enabled: true
yarn.node-labels.am.default-node-label-expression: 'CORE'

Amazon EMR versión 6.X y posterior:

La característica de etiquetas de nodos YARN está desactivada de forma predeterminada. Los procesos maestros de la aplicación pueden ejecutarse tanto en el nodo principal como en el nodo de tareas.

Resolución

Nota: Se recomienda realizar cambios en un entorno de prueba antes de continuar en el entorno de producción. Además, al desactivar la característica de etiquetas de nodos YARN, el contenedor Application-Master se inicia en cualquier tipo de nodo, como el núcleo o la tarea. No hay restricciones para los nodos de tarea. Si configura los nodos de tareas con instancias de spot, es posible que no se ejecuten las tareas si el nodo de tareas deja de funcionar debido a una restricción de capacidad de spot.

Desactivar la característica de etiquetas YARN en la versión 5.19.x de Amazon EMR y versiones posteriores de la serie Amazon EMR-5.x.x

Desactive la característica de etiquetas YARN predeterminada al crear un nuevo clúster de EMR:

1.    Agregue las siguientes propiedades en la sección Edit software settings (Editar la configuración del software),Enter configuration (Ingresar configuración):

[
  {
    "Classification": "yarn-site",
    "Properties": {
      "yarn.node-labels.enabled": "false",
      "yarn.node-labels.am.default-node-label-expression": ""
    }
  }
]

2.    Cree un script con la extensión .sh con el siguiente contenido y cárguelo en un bucket de Amazon Simple Storage Service (Amazon S3).

3.    En la sección Bootstrap Actions (Acciones de arranque), agregue el script recién creado como acción personalizada y continúe con la creación del clúster.

#!/bin/bash
sudo sed -i 's/yarn rmadmin -addToClusterNodeLabels "CORE(exclusive=false)"/echo "NO LABELS"/g' /var/aws/emr/bigtop-deploy/puppet/modules/hadoop/manifests/init.pp

4.    Una vez que finalice la creación del clúster, confirme que se aplicó el cambio al ejecutar el siguiente comando en el nodo maestro:

yarn cluster --list-node-labels

El siguiente es el resultado esperado del comando anterior, que muestra un valor vacío para las etiquetas de los nodos:

<<<<< Node Labels: >>>>>>

Desactive la característica de etiquetas YARN predeterminada en un clúster de EMR existente:

1.    Conéctese al nodo principal de Amazon EMR mediante SSH.

2.    Cree una copia de seguridad del archivo yarn-site.xml existente. La ruta es :/etc/hadoop/conf/yarn-site.xml.

3.    Abra el archivo yarn-site.xml en modo editor de archivos con el siguiente comando:

sudo su vi yarn-site.xml

4.    Cambie el valor de la propiedad yarn.node-labels.enabled a false (falso).

<property>
<name>yarn.node-labels.enabled</name>
<value>false</value>
</property>

5.    Elimine el valor CORE de la propiedad yarn.node-labels.am.default-node-label-expression, como se muestra en el siguiente ejemplo:

<property>
    <name>yarn.node-labels.am.default-node-label-expression</name>
    <value></value>
  </property>

6.    Reinicie el servicio YARN ResourceManger:

sudo systemctl restart hadoop-yarn-resourcemanager.service

sudo systemctl status hadoop-yarn-resourcemanager.service

7.    Confirme que el cambio se ha aplicado correctamente mediante el siguiente comando:

yarn cluster --list-node-labels

El siguiente es el resultado esperado del comando anterior, que muestra un valor vacío para las etiquetas de los nodos:

<<<<< Node Labels: >>>>>>

Activar la característica de etiquetas YARN en Amazon EMR versión 6.x y versiones posteriores

Active la característica de etiquetas YARN al crear un nuevo clúster de EMR:

1.    Agregue las siguientes propiedades en la sección Edit software settings (Editar la configuración del software),Enter configuration (Ingresar configuración) y, a continuación, continúe con la creación del clúster:

[
  {
    "Classification": "yarn-site",
    "Properties": {
      "yarn.node-labels.enabled": "true",
      "yarn.node-labels.am.default-node-label-expression": "CORE"
    }
  }
]

2.    Una vez que finalice la creación del clúster, confirme que se ha aplicado el cambio de forma correcta al ejecutar el siguiente comando en el nodo maestro:

yarn cluster --list-node-labels

El siguiente es el resultado esperado del comando anterior:

<<<<< Node Labels: <CORE:exclusivity=false>  >>>>>

Active la característica de etiquetas YARN en un clúster de EMR existente:

1.    En la consola de Amazon EMR, seleccione Clusters (Clústeres) y, a continuación, seleccione el clúster que desee editar.

2.    Seleccione la pestaña Configurations (Configuraciones).

3.    Seleccione la opción Edit in JSON (Editar en JSON) en la pestaña Reconfigure (Reconfigurar) y agregue las siguientes propiedades.

[
  {
    "Classification": "yarn-site",
    "Properties": {
      "yarn.node-labels.enabled": "true",
      "yarn.node-labels.am.default-node-label-expression": "CORE"
    }
  }
]

4.    Seleccione la opción Apply this configuration to all active instance groups (Aplicar esta configuración a todos los grupos de instancias activos) y, a continuación, guarde los cambios.

5.    Confirme que se ha aplicado el cambio al ejecutar el siguiente comando en el nodo maestro:

yarn cluster --list-node-labels

El siguiente es el resultado esperado del comando anterior:

<<<<< Node Labels: <CORE:exclusivity=false>  >>>>>>

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un año