全部產品
Search
文件中心

MaxCompute:訪問阿里雲OSS

更新時間:Mar 13, 2026

MaxCompute Spark支援通過整合Jindo SDK來訪問阿里雲OSS。Jindo SDK是一款專為Hadoop/Spark生態系統設計的高效能OSS用戶端,它提供了針對阿里雲OSS深度最佳化的Hadoop FileSystem實現。

步驟一:配置OSS實作類別和Endpoint

使用本地模式時應使用對應地區的外網Endpoint,叢集模式下應使用內網Endpoint,參考地區和Endpoint

  • Spark 3.5+(預設整合JindoSDK 6.5版本)配置如下:

    spark.hadoop.fs.AbstractFileSystem.oss.impl=com.aliyun.jindodata.oss.JindoOSS
    spark.hadoop.fs.oss.impl=com.aliyun.jindodata.oss.JindoOssFileSystem
    spark.hadoop.fs.oss.endpoint=oss-${RegionId}-internal.aliyuncs.com
  • 其他版本(若使用JindoSDK 3.7版本)配置如下:

    spark.hadoop.fs.AbstractFileSystem.oss.impl=com.aliyun.emr.fs.oss.OSS
    spark.hadoop.fs.oss.impl=com.aliyun.emr.fs.oss.JindoOssFileSystem
    spark.hadoop.fs.oss.endpoint=oss-${RegionId}-internal.aliyuncs.com

步驟二:配置鑒權資訊

支援以下兩種鑒權方式,任選其一進行配置。

方式一:直接使用AccessKey ID/AccessKey Secret

spark-defaults.conf或DataWorks配置中添加以下配置項:

spark.hadoop.fs.oss.accessKeyId=${AccessId}
spark.hadoop.fs.oss.accessKeySecret=${AccessKey}

方式二:使用STS Token

參考STS模式執行授權,然後添加以下配置項。

Spark 3.5+配置

## 在spark-defaults.conf或Dataworks配置項中添加以下配置項:
spark.hadoop.fs.oss.credentials.provider=com.aliyun.jindodata.oss.auth.CustomCredentialsProvider
spark.hadoop.aliyun.oss.provider.url=http://localhost:10011/sts-token-info?user_id=${AliyunUid}&role=${RoleName}

其他版本配置

## 在spark-defaults.conf或Dataworks配置項中添加以下配置項:
spark.hadoop.odps.cupid.http.server.enable=true
spark.hadoop.fs.jfs.cache.oss.credentials.provider=com.aliyun.emr.fs.auth.CustomCredentialsProvider
spark.hadoop.aliyun.oss.provider.url=http://localhost:10011/sts-token-info?user_id=${AliyunUid}&role=${RoleName}

步驟三:引用JindoSDK依賴(Spark 3.5+可跳過該步驟)

  • 本地模式

    本地模式需下載JindoSDK,並添加到類路徑中。

    1. 如圖所示,進入File > Project Structure

      image

    2. 如圖所示,左側選擇Modules,點擊+,添加JARs or Directories

      image

    3. 添加JindoSDK lib 目錄下的所有 JAR 檔案。

    4. 在IDEA單擊OK,確認添加。

  • 叢集模式

    • 如果是版本為Spark3.5,服務端內建jindo-sdk,無需添加。

    • 其他版本,需修改spark-defaults.conf,增加如下配置項後可直接使用以下公用資源:

      spark.hadoop.odps.cupid.resources = public.jindofs-sdk-3.7.2.jar
      
      ## 注意:若需要使用其他版本JindoSDK,請下載對應版本SDK後上傳到Project中,再通過spark.hadoop.odps.cupid.resources引用。

步驟四:網路白名單配置

  • 預設情況下無需設定即可直接存取。

  • 叢集模式下,如發現無法訪問,需要將目標Bucket網域名稱添加到作業白名單中,在spark-defaults.conf或DataWorks配置中添加以下配置項:

    spark.hadoop.odps.cupid.trusted.services.access.list=${BucketName}.oss-${RegionId}-internal.aliyuncs.com

步驟五:提交任務

./bin/spark-submit --class xxx spark-app.jar