Los pasos del EMR que deberían tomar segundos están tomando minutos.
Estoy ejecutando una serie de pasos muy simples en mi clúster de EMR. Un paso de ese tipo es crear una tabla hbase de la siguiente manera:
archivo step.json
{
"Name": "Comando para crear tabla",
"Type": "CUSTOM_JAR",
"ActionOnFailure": "CONTINUE",
"Jar": "command-runner.jar",
"Args":
[
"bash",
"-c",
"echo create 'myTable', 'a' > create_table.txt; hbase shell -n create_table.txt;"
]
}
y se supone que el comando debe tardar aproximadamente 0.5 segundos en ejecutarse, pero en este momento el paso se está ejecutando durante más de 18 minutos. Sin embargo, el comando se ha ejecutado. Veo en el archivo de registro de salida estándar que así sucedió:
stdout
Created table factuserdatastep-echo
Took 4.8382 seconds
Hbase::Table - factuserdatastep-echo
Y puedo verificar en la terminal que todo está como se pretende. Pero los pasos simplemente no se terminan. El controlador está atascado en esto:
controller
...
INFO ProcessRunner started child process 26901
2021-12-14T15:05:45.305Z INFO HadoopJarStepRunner.Runner: startRun() called for s-34LXK66Z Child Pid: 26901
INFO Synchronously wait child process to complete : hadoop jar /var/lib/aws/emr/step-runner/hadoop-...
No estoy seguro de qué está tardando tanto, ¿alguien tiene alguna idea de por qué el paso no se está terminando?
davy.ai
Parece que el paso está atascado en el proceso del controlador y no se está terminando a pesar de que el comando se ha ejecutado correctamente. Puede haber varias razones por las cuales esto está sucediendo:
Latencia de red: Si hay una alta latencia de red en el clúster, esto podría causar retrasos en la ejecución del paso. Verifique la configuración de red del clúster EMR y vea si hay alguna forma de mejorar el rendimiento de la red.
Problemas del sistema de archivos: Si hay problemas con el sistema de archivos, esto podría hacer que el paso se quede colgado. Verifique los registros en busca de errores o advertencias del sistema de archivos e intente resolverlos.
Problemas de configuración: Si el archivo step.json no está configurado correctamente, esto podría causar que el paso se quede colgado. Verifique el archivo en busca de errores y asegúrese de que la configuración sea correcta.
Sería útil recopilar más información, como los registros del clúster y la utilización de recursos, para determinar la causa raíz del problema. Además, puede intentar ejecutar el paso nuevamente o probar con un comando diferente para ver si el problema persiste.