MWAA Airflow配置EMR Hudi参数报错,求排查方案
问题与解答
一、EMR Serverless配置错误:Unknown configuration overrides classification: hudi-defaults
可能原因:
- EMR Serverless应用未集成Hudi:默认的EMR Serverless Spark运行时并未预装Hudi组件,因此无法识别
hudi-defaults这个配置分类。需确保应用环境包含Hudi依赖:- 创建应用时选择内置Hudi的EMR版本(如EMR 6.4+开始预装Hudi);
- 通过bootstrap脚本在作业启动前安装Hudi包(需匹配Spark版本,例如
pip install hudi-spark3.3-bundle_2.12-0.13.0.jar); - 使用包含Hudi的自定义镜像创建EMR Serverless应用。
- 配置分类使用方式错误:若无法通过
hudi-defaults配置,可直接将Hudi参数放到spark-defaults分类下,以spark.hadoop.hoodie.为前缀传递,示例:configuration_overrides={ "applicationConfiguration": [ { "classification": "spark-defaults", "properties": { "spark.hadoop.hoodie.metrics.on": "true", "spark.hadoop.hoodie.metrics.reporter.type": "DATADOG", # 其他Hudi参数... }, }, ], } - 应用级别未启用Hudi支持:部分场景下需先在EMR Serverless应用的基础配置中启用Hudi支持,才能在作业运行时覆盖其配置。
二、Airflow中开启botocore日志的方法
可以使用boto3.set_stream_logger('botocore')开启日志,但需注意以下细节:
- 仅调试场景使用:开启后会输出大量botocore调试级日志,可能影响MWAA性能,仅建议排查问题时临时启用。
- 代码添加位置:可在DAG文件的导入部分或任务执行逻辑中添加,示例:
import boto3 import logging # 开启botocore日志并设置日志级别为DEBUG boto3.set_stream_logger('botocore', logging.DEBUG) - MWAA日志捕获配置:需确保MWAA的日志配置允许输出调试级日志,可通过MWAA环境的CloudWatch日志组设置调整日志级别,保证botocore日志能被正常采集。
内容的提问来源于stack exchange,提问作者Randomize
相关产品推荐
相关产品推荐

