【问题标题】:How to access Amazon EMR error message with Python如何使用 Python 访问 Amazon EMR 错误消息
【发布时间】:2021-06-04 01:08:52
【问题描述】:

我正在运行由 Airflow 启动的 EMR 集群,我需要某种方式将错误消息传递回 Airflow。 Airflow 在 Python 中运行,所以我需要在 python 中完成。

目前,错误日志位于配置详细信息下的“日志 URI”部分。访问这可能是一种方法,但任何使用 python 从 emr 访问错误日志的方法都将不胜感激。

【问题讨论】:

  • 您使用哪个运算符? “回传错误消息”是指在 Airflow 中引发它或在任务日志中显示它?
  • 我的意思是我希望能够在 Airflow 代码中搜索日志并对其执行操作。

标签: python airflow amazon-emr


【解决方案1】:

您可以使用boto3 for example 访问 S3 中的 EMR 日志。 S3 路径是:

  • 标准错误:s3://<EMR_LOG_BUCKET_DEFINED_IN_EMR_CONFIGURATION>/logs/<CLUSTER_ID>/steps/<STEP_ID>/stderr.gz
  • 粗壮:s3://<EMR_LOG_BUCKET_DEFINED_IN_EMR_CONFIGURATION>/logs/<CLUSTER_ID>/steps/<STEP_ID>/stdout.gz
  • 控制器:s3://<EMR_LOG_BUCKET_DEFINED_IN_EMR_CONFIGURATION>/logs/<CLUSTER_ID>/steps/<STEP_ID>/controller.gz
  • 系统日志:s3://<EMR_LOG_BUCKET_DEFINED_IN_EMR_CONFIGURATION>/logs/<CLUSTER_ID>/steps/<STEP_ID>/syslog.gz

集群 ID 和步骤 ID 可以通过 XCOM 从创建集群/步骤的任务传递给您的不同任务。

火花警告(可能适用于其他类型的步骤): 如果您在客户端模式下提交您的步骤,就像您使用集群模式一样,则此方法有效,您需要更改 URL 以获取驱动程序的应用程序日志。

【讨论】:

    猜你喜欢
    • 2021-10-29
    • 2017-07-17
    • 1970-01-01
    • 2018-02-25
    • 1970-01-01
    • 2017-02-07
    • 2017-06-10
    • 1970-01-01
    • 2019-12-06
    相关资源
    最近更新 更多