You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PySpark对接AWS无法使用外部凭证进程,但AWS CLI可正常运行

解决方案:让PySpark兼容AWS credential_process凭证方式

针对你在Docker容器中运行Glue本地代码时,无法通过credential_process获取AWS凭证的问题,以下是可落地的解决步骤:

1. 强制指定S3A客户端的凭证提供者并传递配置路径

Spark的Hadoop S3A客户端默认凭证链可能未正确加载ProfileCredentialsProvider,需显式配置并确保JVM能读取到AWS配置文件:

import os
# 先设置环境变量,确保JVM进程能读取到
os.environ['AWS_PROFILE'] = 'default'
os.environ['AWS_CONFIG_FILE'] = '/root/.aws/config'

import findspark
findspark.init()

# 初始化SparkContext时配置S3A参数
sc = SparkContext()
# 指定使用Profile凭证提供者
sc._jsc.hadoopConfiguration().set("fs.s3a.aws.credentials.provider", "com.amazonaws.auth.profile.ProfileCredentialsProvider")
# 指定要使用的AWS profile
sc._jsc.hadoopConfiguration().set("fs.s3a.profile", "default")
# 显式指定AWS配置文件路径
sc._jsc.hadoopConfiguration().set("fs.s3a.aws.config.file", "/root/.aws/config")

glueContext = GlueContext(sc)
spark = glueContext.spark_session

2. 修复credential_process脚本的环境依赖问题

JVM调用外部脚本时使用非交互式shell,不会自动加载conda环境配置,导致conda activate可能失效:

  • 修改creds_process.sh,直接使用conda环境的Python绝对路径,跳过激活步骤:
    #!/usr/bin/env bash
    # 直接调用glue_env环境下的python,无需激活conda
    /opt/miniconda3/envs/glue_env/bin/python /root/path/dev_credential_update.py "$1" "$2" "$3"
    
  • 确保脚本有执行权限:
    chmod +x /root/cloud_workflow/creds_process.sh
    

3. 调试credential_process的执行日志

为排查脚本是否被正确调用、是否有执行错误,在creds_process.sh开头添加日志输出:

#!/usr/bin/env bash
# 把脚本的所有输出和错误写入日志文件
exec > /tmp/creds_process.log 2>&1
/opt/miniconda3/envs/glue_env/bin/python /root/path/dev_credential_update.py "$1" "$2" "$3"

执行代码后,查看/tmp/creds_process.log内容,确认脚本是否正常输出符合AWS格式的凭证JSON。

4. 验证AWS Java SDK版本兼容性

AWS Java SDK 1.11.500及以上版本才支持credential_process特性,Glue 4.0对应的Spark包理论上满足,但可检查容器中Hadoop依赖的AWS SDK版本:

ls /path/to/spark/jars/aws-java-sdk-core-*.jar

若版本低于1.11.500,需替换为对应版本的jar包。

5. 确保Jupyter进程的环境变量正确传递

若Jupyter通过systemd或其他方式启动,可能未继承用户环境变量,需在Jupyter启动配置中添加:

export AWS_PROFILE=default
export AWS_CONFIG_FILE=/root/.aws/config

或在Jupyter Notebook的内核配置中添加这些环境变量。

内容的提问来源于stack exchange,提问作者RyWilliamson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 17:42:42