Todos os produtos
Search
Central de documentação

:Acesse o OSS a partir do Spark no MaxCompute

Última atualização: Jul 04, 2026

Este tópico descreve como acessar o Object Storage Service (OSS) a partir do Spark no MaxCompute.

Configure um endpoint do OSS

Use o endpoint público da região do OSS durante a depuração de recursos. Em ambiente de produção, use o endpoint interno da região correspondente ao enviar jobs. Para mais informações, consulte Regiões e Endpoints.

Configure um método de acesso ao OSS

  • Acesse o OSS com o AccessKey ID e o AccessKey secret de uma conta.

    spark.hadoop.fs.oss.accessKeyId = xxxxxx
    spark.hadoop.fs.oss.accessKeySecret = xxxxxx
    spark.hadoop.fs.oss.endpoint = oss-xxxxxx-internal.aliyuncs.com
  • Acesse o OSS por meio de um token do Security Token Service (STS).

    O uso direto do AccessKey ID e do AccessKey secret exige a configuração desses valores em texto simples, o que gera riscos de segurança. Recomendamos o acesso ao OSS via token STS.

    1. Acesse a página Autorização Rápida do RAM e clique em Authorize. Assim, o projeto MaxCompute poderá acessar os recursos do OSS da conta Alibaba Cloud atual usando um token STS.

      Nota

      Esse método de autorização só é válido quando o proprietário do projeto MaxCompute for a mesma conta Alibaba Cloud que detém os recursos do OSS a serem acessados.

    2. Obtenha o Alibaba Cloud Resource Name (ARN) da função assumida pelo Spark no MaxCompute.

      1. Faça login no console do Resource Access Management (RAM).

      2. No painel de navegação à esquerda, escolha Identities > Roles.

      3. Na página Roles, pesquise AliyunODPSDefaultRole.

      4. Nos resultados da pesquisa, clique em AliyunODPSDefaultRole na coluna Role Name. Na página exibida, obtenha o valor de ARN na seção Basic Information. O valor segue o formato acs:ram::xxxxxxxxxxxxxxx:role/aliyunodpsdefaultrole.

    3. Adicione o conteúdo abaixo às configurações do Spark no MaxCompute:

      # 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

Configure uma lista de permissões

Geralmente, o Spark no MaxCompute acessa recursos do OSS sem necessidade de configurar uma lista de permissões.

Em situações específicas, como leitura ou escrita de grandes volumes de dados em buckets do OSS, o acesso pode falhar. Nesse caso, adicione a seguinte configuração:

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

Essa configuração aplica-se apenas a jobs enviados no modo yarn-cluster. Adicione-a no arquivo de configuração ou diretamente em um comando da ferramenta CLI.

Use o JindoSDK para acessar o OSS

Adicione os parâmetros spark.hadoop.fs.AbstractFileSystem.oss.impl e spark.hadoop.fs.oss.impl ao objeto SparkConf. Exemplo de código:

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")
Nota

A definição do parâmetro spark.hadoop.fs.oss.impl é obrigatória. Caso contrário, o sistema retornará a mensagem de erro "No FileSystem for scheme: oss".