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

AWS S3(ap-south-1)下Hudi DeltaStreamer任务返回Bad Request报错

问题解决方案

你遇到的400错误不需要创建S3 Access Point。S3 Access Point是用于实现更精细访问权限管控的可选功能,不是访问S3桶的必要条件,当前错误和是否配置Access Point没有关联。
问题根源是你使用的低版本AWS SDK不支持ap-south-1区域默认要求的V4签名算法,且旧版hadoop-aws包对新区域的适配存在缺陷。

修复操作步骤

  • 替换spark-submit命令中的依赖包版本,版本匹配的依赖可避免基础兼容问题:
    把原有--packages com.amazonaws:aws-java-sdk:1.7.4,org.apache.hadoop:hadoop-aws:2.7.3替换为--packages com.amazonaws:aws-java-sdk:1.11.563,org.apache.hadoop:hadoop-aws:2.8.5
  • 新增S3签名与区域配置,在spark配置项中添加以下两行:
    --conf spark.hadoop.fs.s3a.signing-algorithm=AWS4SignerType
    --conf spark.hadoop.fs.s3a.path.style.access=true
    
  • 移除密钥配置的单引号,部分Spark版本会将单引号识别为密钥内容的一部分,导致鉴权失败:
    把原有--conf spark.hadoop.fs.s3a.access.key='AA..AA' --conf spark.hadoop.fs.s3a.secret.key='WQO..IOEI'中的单引号删除,直接写明文密钥即可
  • 确认目标桶名称正确性,你当前配置的目标路径是s3a://test,需要和你实际在ap-south-1区域创建的S3桶名完全一致,不存在的桶也会触发headBucket阶段的400错误。

其他说明

Hudi官方Docker Demo的依赖配置是为了适配通用演示环境,针对ap-south-1这类2016年后上线的AWS区域,必须额外添加V4签名相关配置才能正常访问S3服务,无需调整DeltaStreamer的业务参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 12:39:01