Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Configurar el registro y la depuración de EMR clústeres de Amazon
Una de las cosas que decidir a la hora de planificar el clúster es la cantidad de soporte de depuración que tiene que hacer que esté disponible. Al desarrollar por primera vez la aplicación de procesamiento de datos, le recomendamos probar la aplicación en un clúster que procese un subconjunto pequeño, pero representativo, de sus datos. Al hacerlo, es probable que desee aprovechar todas las herramientas de depuración que EMR ofrece Amazon, como el archivado de archivos de registro en Amazon S3.
Cuando haya terminado el desarrollo y tenga la aplicación de procesamiento de datos a pleno rendimiento, puede optar por reducir la depuración. Al hacerlo puede ahorrar el costo de almacenamiento del conjunto de los archivos de registro en Amazon S3 y reducir la carga de procesamiento en el clúster, ya que no es necesario escribir el estado en Amazon S3. El inconveniente, por supuesto, es que si algo va mal, tendrá menos herramientas disponibles para investigar el problema.
Archivos de registro predeterminados
De forma predeterminada, cada clúster escribe archivos de registro en el nodo principal. Se escriben en el directorio /mnt/var/log/
. Puede acceder a ellas conectándose SSH al nodo principal, tal y como se describe en. Conéctese al nodo principal EMR del clúster de Amazon mediante SSH Amazon EMR recopila determinados registros de sistemas y aplicaciones generados por los EMR daemons de Amazon y otros EMR procesos de Amazon para garantizar la eficacia de las operaciones de servicio.
nota
Si utiliza la EMR versión 6.8.0 de Amazon o una versión anterior, los archivos de registro se guardan en Amazon S3 durante la finalización del clúster, por lo que no podrá acceder a los archivos de registro una vez que finalice el nodo principal. La versión 6.9.0 y las EMR versiones posteriores de Amazon archivan los registros en Amazon S3 durante la reducción de escala del clúster, de modo que los archivos de registro generados en el clúster persisten incluso después de cerrar el nodo.
No tiene que habilitar nada para que los archivos de registro se escriban en el nodo principal. Este es el comportamiento predeterminado de Amazon EMR y Hadoop.
Un clúster genera varios tipos de archivos de registro, incluidos:
-
Registros de pasos: estos registros los genera el EMR servicio de Amazon y contienen información sobre el clúster y los resultados de cada paso. Los archivos de registro se almacenan en el directorio
/mnt/var/log/hadoop/steps/
en el nodo principal. Cada paso registra sus resultados en un subdirectorio numerado independiente:/mnt/var/log/hadoop/steps/s-
para el primer paso,stepId1
//mnt/var/log/hadoop/steps/s-
para el segundo paso, y así sucesivamente. Los identificadores de pasos de 13 caracteres (por ejemplo, stepId 1 o stepId 2) son exclusivos de un clúster.stepId2
/ -
Registros de Hadoop y de YARN componentes: los registros de los componentes asociados a Apache YARN y MapReduce, por ejemplo, se encuentran en carpetas independientes.
/mnt/var/log
Las ubicaciones de archivo de registro para los componentes de Hadoop en/mnt/var/log
son las siguientes: hadoop-hdfs, hadoop-mapreduce, hadoop-httpfs y hadoop-yarn. El hadoop-state-pusher directorio es para el resultado del proceso de introducción de estados de Hadoop. -
Registros de acción de arranque: si su trabajo utiliza acciones de arranque, se registran los resultados de estas acciones. Los archivos de registro se almacenan en/mnt/var/log/bootstrap-actions/ en el nodo principal. Cada acción de arranque registra sus resultados en un subdirectorio numerado independiente:
/mnt/var/log/bootstrap-actions/1/
para la primera acción de arranque,/mnt/var/log/bootstrap-actions/2/
para la segunda acción de arranque y así sucesivamente. -
Registros del estado de la instancia: estos registros proporcionan información sobre los subprocesos del nodoCPU, el estado de la memoria y el recolector de elementos no utilizados. Los archivos de registro se almacenan en
/mnt/var/log/instance-state/
en el nodo principal.
Archivar archivos de registro en Amazon S3
nota
Actualmente, no puede utilizar la agregación de registros para Amazon S3 con la utilidad yarn logs
.
La versión 6.9.0 y las EMR versiones posteriores de Amazon archivan los registros en Amazon S3 durante la reducción de escala del clúster, de modo que los archivos de registro generados en el clúster persisten incluso después de cerrar el nodo. Este comportamiento se habilita de forma automática, por lo que no es necesario que haga nada para activarlo. Para las EMR versiones 6.8.0 y anteriores de Amazon, puede configurar un clúster para archivar periódicamente los archivos de registro almacenados en el nodo principal en Amazon S3. Esto garantiza que los archivos de registro estén disponibles después de que el clúster se termine, ya sea a través de un apagado normal o debido a un error. Amazon EMR archiva los archivos de registro en Amazon S3 en intervalos de 5 minutos.
Para archivar los archivos de registro en Amazon S3 para las EMR versiones 6.8.0 y anteriores de Amazon, debe habilitar esta función al lanzar el clúster. Puede hacerlo mediante la consolaCLI, el o el. API De manera predeterminada, los clústeres lanzados con la consola tienen habilitado el archivado de registros. En el caso de los clústeres lanzados con CLI oAPI, el registro en Amazon S3 debe habilitarse manualmente.
Para cifrar los archivos de registro almacenados en Amazon S3 con una clave gestionada por el AWS KMS cliente
Con Amazon 5.30.0 y EMR versiones posteriores (excepto Amazon EMR 6.0.0), puede cifrar los archivos de registro almacenados en Amazon S3 con una AWS KMS clave gestionada por el cliente. Para habilitar esta opción en la consola, siga los pasos descritos en Archivar archivos de registro en Amazon S3. El perfil de su EC2 instancia de Amazon y su EMR rol en Amazon deben cumplir los siguientes requisitos previos:
-
El perfil de EC2 instancia de Amazon utilizado para tu clúster debe tener permiso de uso
kms:GenerateDataKey
. -
El EMR rol de Amazon utilizado para tu clúster debe tener permiso de uso
kms:DescribeKey
. -
El perfil de la EC2 instancia de Amazon y el EMR rol de Amazon deben añadirse a la lista de usuarios clave de la clave gestionada por el AWS KMS cliente especificada, tal y como se demuestra en los siguientes pasos:
-
Abre la consola AWS Key Management Service (AWS KMS) en https://console.aws.amazon.com/kms.
-
Para cambiar la AWS región, utilice el selector de regiones situado en la esquina superior derecha de la página.
-
Seleccione el alias de la KMS clave que desee modificar.
-
En la página de detalles de la clave, en Key Users (Usuarios de claves), seleccione Add (Añadir).
-
En el cuadro de diálogo Añadir usuarios clave, selecciona tu perfil de EC2 instancia de Amazon y tu EMR rol en Amazon.
-
Elija Agregar.
-
Para obtener más información, consulta las funciones de IAM servicio utilizadas por Amazon EMR y el uso de políticas clave en la guía AWS para desarrolladores del Servicio de administración de claves.
Para agregar registros en Amazon S3 con la AWS CLI
nota
No puede utilizar actualmente la agregación de registros con la utilidad yarn logs
. Solo puede utilizar la agregación compatible con este procedimiento.
La agregación de registros (Hadoop 2.x) compila los registros desde todos los contenedores para una aplicación individual en un único archivo. Para habilitar la agregación de registros en Amazon S3 mediante el AWS CLI, utilice una acción de arranque al lanzar el clúster para habilitar la agregación de registros y especificar el depósito en el que se almacenarán los registros.
-
Para habilitar la agregación de registros, cree el siguiente archivo de configuración llamado
myConfig.json
, que contiene lo siguiente:[ { "Classification": "yarn-site", "Properties": { "yarn.log-aggregation-enable": "true", "yarn.log-aggregation.retain-seconds": "-1", "yarn.nodemanager.remote-app-log-dir": "s3:\/\/
DOC-EXAMPLE-BUCKET
\/logs" } } ]Escriba el siguiente comando y
sustitúyalo por el nombre de su EC2 key pair. Además, puede sustituir cualquiera de los textos en rojo por sus propias configuraciones.myKey
aws emr create-cluster --name "
Test cluster
" \ --release-labelemr-7.5.0
\ --applications Name=Hadoop
\ --use-default-roles \ --ec2-attributes KeyName=myKey
\ --instance-typem5.xlarge
\ --instance-count3
\ --configurations file://./myConfig.jsonCuando especifica el recuento de instancias sin utilizar el parámetro
--instance-groups
, se lanza un nodo principal único y el resto de las instancias se lanzan como nodos básicos. Todos los nodos utilizarán el tipo de instancia especificado en el comando.nota
Si no ha creado anteriormente el rol de EMR servicio y el perfil de EC2 instancia predeterminados, ejecute
aws emr create-default-roles
para crearlos antes de ejecutar elcreate-cluster
subcomando.
Para obtener más información sobre el uso de EMR los comandos de Amazon en AWS CLI, consulte la Referencia de AWS CLI comandos.
Localización de registros
La siguiente lista incluye todos los tipos de registro y sus ubicaciones en Amazon S3. Puedes utilizarlos para solucionar problemas de AmazonEMR.
- Registros de pasos
-
s3://
DOC-EXAMPLE-LOG-BUCKET
/<cluster-id>
/steps/<step-id>
/ - Registros de aplicaciones
-
s3://
DOC-EXAMPLE-LOG-BUCKET
/<cluster-id>
/containers/Esta ubicación incluye el contenedor
stderr
y los registrosstdout
,directory.info
,prelaunch.out
ylaunch_container.sh
. - Registros del administrador de recursos
-
s3://
DOC-EXAMPLE-LOG-BUCKET
/<cluster-id>
/node/<leader-instance-id>
/applications/hadoop-yarn/ - Hadoop HDFS
-
s3://
DOC-EXAMPLE-LOG-BUCKET
/<cluster-id>
/node/<all-instance-id>
/applications/hadoop-hdfs/Esta ubicación incluye NameNode DataNode, y registros. YARN TimelineServer
- Registros del administrador de nodos
-
s3://
DOC-EXAMPLE-LOG-BUCKET
/<cluster-id>
/node/<all-instance-id>
/applications/hadoop-yarn/ - Registros de estado de la instancia
-
s3://
DOC-EXAMPLE-LOG-BUCKET
/<cluster-id>
/node/<all-instance-id>
/daemons/instance-state/ - Registros de EMR aprovisionamiento de Amazon
-
s3://
DOC-EXAMPLE-LOG-BUCKET
/<cluster-id>
/node/<leader-instance-id>
/provision-node/* - Registros de Hive
-
s3://
DOC-EXAMPLE-LOG-BUCKET
/<cluster-id>
/node/<leader-instance-id>
/applications/hive/*-
Para encontrar los registros de Hive en su clúster, elimine el asterisco (
*
) y agregue/var/log/hive/
al enlace anterior. -
Para encontrar HiveServer 2 registros, elimine el asterisco (
*
) y añádalovar/log/hive/hiveserver2.log
al enlace anterior. -
Para buscar los CLI registros de Hive, quita el asterisco (
*
) y añádelo al enlace anterior./var/log/hive/user/hadoop/hive.log
-
Para encontrar los registros de Hive Metastore Server, elimine el asterisco (
*
) y agregue/var/log/hive/user/hive/hive.log
al enlace anterior.
Si el error se encuentra en el nodo principal o de tarea de su aplicación de Tez, proporcione los registros del contenedor de Hadoop correspondiente.
-