Агрегирует журналы приложения пряжи EMR в S3, используя конфигурацию ниже YARN:
[
{
"Classification": "yarn-site",
"Properties": {
"yarn.log-aggregation-enable": "true",
"yarn.log-aggregation.retain-seconds": "-1",
"yarn.nodemanager.remote-app-log-dir": "s3://mybucket/logs"
}
}
]
Журналы сгруппированы по идентификатору приложения пряжи в S3:
s3://mybucket/logs/appplication_id_001/
s3://mybucket/logs/appplication_id_002/
s3://mybucket/logs/appplication_id_003/
Я хочу отобразить Идентификатор шага EMR для идентификатора приложения YARN, так что с учетом идентификатора шага я смогу получить его журналы.
Причина, по которой мне это нужно, заключается в том, что я использую Apache Airflow для оркестровки и хотел бы получить логи и покажи это Airflow. Моя DAG Airflow выглядит следующим образом:
create-cluster
-> add-step-1 -> watch-step-1
-> add-step-2 -> watch-step-2
-> add-step-3 -> watch-step-3
В конце каждой задачи watch-step-n я хотел бы получить журналы для этого шага из s3 и распечатать его. Поскольку ни одна из задач в группе обеспечения доступности баз данных не знает об идентификаторе приложения YARN, я пытаюсь найти способ получить идентификатор приложения для идентификатора шага.