Tüm Ürünler
Search
Belge Merkezi

:MaxCompute Üzerindeki Spark ile Object Storage Service (OSS) Erişimi

Son Güncelleme:Oct 04, 2026

Bu konu, MaxCompute üzerindeki Spark'ın Object Storage Service (OSS) kaynaklarına nasıl erişeceğini açıklar.

OSS Uç Noktasını Yapılandırma

Özellikleri hata ayıklarken OSS'in bulunduğu bölgenin genel uç noktasını kullanın. Üretim ortamında bir iş gönderirken ise OSS'in bulunduğu bölgenin dahili uç noktasını kullanın. Daha fazla bilgi için bkz. Bölgeler ve uç noktalar.

OSS Erişim Yöntemini Yapılandırma

  • Bir hesabın AccessKey ID ve AccessKey Secret değerlerini kullanarak OSS'e erişin.

    spark.hadoop.fs.oss.accessKeyId = xxxxxx
    spark.hadoop.fs.oss.accessKeySecret = xxxxxx
    spark.hadoop.fs.oss.endpoint = oss-xxxxxx-internal.aliyuncs.com
  • Security Token Service (STS) belirteci kullanarak OSS'e erişin.

    Bir hesabın AccessKey ID ve AccessKey Secret değerlerini kullanarak OSS'e erişirseniz düz metin AccessKey ID ve AccessKey Secret değerlerini yapılandırmanız gerekir. Bu durum güvenlik riskleri oluşturur. OSS'e erişmek için bir STS belirteci kullanmanızı öneririz.

    1. RAM Hızlı Yetkilendirme sayfasına gidin ve Authorize seçeneğine tıklayın. Böylece MaxCompute projesi, geçerli Alibaba Cloud hesabının OSS kaynaklarına bir STS belirteci kullanarak erişebilir.

      Not

      Yalnızca MaxCompute projesinin sahibi, erişilecek OSS kaynaklarına sahip olan bir Alibaba Cloud hesabı olduğunda bu yöntemi kullanarak bir MaxCompute projesine OSS kaynaklarına erişim yetkisi verebilirsiniz.

    2. MaxCompute üzerindeki Spark'ın üstlendiği rolün Alibaba Cloud Resource Name (ARN) değerini alın.

      1. Resource Access Management (RAM) konsolu nda oturum açın.

      2. Sol gezinme bölmesinde Identities > Roles seçeneğini seçin.

      3. Roles sayfasında AliyunODPSDefaultRole öğesini arayın.

      4. Arama sonucunda Rol Adı sütunundaki AliyunODPSDefaultRole bağlantısına tıklayın. Görüntülenen sayfada Basic Information bölümündeki ARN değerini alın. Değer, acs:ram::xxxxxxxxxxxxxxx:role/aliyunodpsdefaultrole biçimindedir.

    3. Aşağıdaki içeriği MaxCompute üzerindeki Spark yapılandırmalarına ekleyin:

      # Configure Spark on MaxCompute to access OSS resources by using an STS token. 
      spark.hadoop.fs.oss.credentials.provider=org.apache.hadoop.fs.aliyun.oss.AliyunStsTokenCredentialsProvider
      
      # Configure the ARN of the role that Spark on MaxCompute assumes. 
      spark.hadoop.fs.oss.ststoken.roleArn=acs:ram::xxxxxxxxxxxxxxx:role/aliyunodpsdefaultrole
      
      # Configure the internal endpoint that is used to access OSS resources over a VPC. 
      spark.hadoop.fs.oss.endpoint=oss-cn-hangzhou-internal.aliyuncs.com

İzin Listesi Yapılandırma

Çoğu durumda, MaxCompute üzerindeki Spark'ın OSS kaynaklarına erişmesi için izin listesi yapılandırmasına gerek yoktur.

Özel durumlarda (örneğin, OSS paketlerinden büyük miktarda veri okunduğunda veya yazıldığında) MaxCompute üzerindeki Spark, OSS kaynaklarına erişemeyebilir. Bu durumda aşağıdaki yapılandırmayı ekleyin:

spark.hadoop.odps.cupid.trusted.services.access.list=[your_bucket_name].oss-xxxxxx-internal.aliyuncs.com
Not

Bu yapılandırmayı yalnızca yarn-cluster modunda bir iş gönderdiğinizde kullanabilirsiniz. Yapılandırmayı yapılandırma dosyasına veya CLI aracının komutuna eklemeniz gerekir.

OSS Erişimi İçin JindoSDK Kullanma

SparkConf nesnesine spark.hadoop.fs.AbstractFileSystem.oss.impl ve spark.hadoop.fs.oss.impl parametrelerini ekleyin. Örnek kod:

val conf = new SparkConf()
  .setAppName("jindo-sdk-demo")
  .set("spark.hadoop.fs.AbstractFileSystem.oss.impl", "com.aliyun.emr.fs.oss.OSS")
  .set("spark.hadoop.fs.oss.impl", "com.aliyun.emr.fs.oss.JindoOssFileSystem")
Not

spark.hadoop.fs.oss.impl parametresini yapılandırmanız gerekir. Aksi takdirde "No FileSystem for scheme: oss" hata iletisi döndürülür.