Todos os produtos
Search
Central de documentação

Object Storage Service:Usar o JindoSDK com o Spark para consultar dados armazenados no OSS-HDFS

Última atualização: Jul 03, 2026

O JindoSDK é um cliente OSS para os ecossistemas Hadoop e Spark que fornece uma implementação altamente otimizada do Hadoop FileSystem. Em comparação com os clientes OSS do Hadoop, o JindoSDK oferece melhor desempenho quando você usa o Spark para consultar dados no OSS-HDFS.

Pré-requisitos

Procedimento

  1. Conecte-se à instância ECS. Para obter mais informações, consulte Conectar-se a uma instância ECS.

  2. Configure o JindoSDK.

    1. Baixe a versão mais recente do pacote JAR do JindoSDK. Para baixar o JindoSDK, acesse GitHub.

    2. Descompacte o pacote JAR do JindoSDK.

      O exemplo a seguir mostra como descompactar um pacote chamado jindosdk-x.x.x-linux.tar.gz. Se você usar outra versão do JindoSDK, substitua o nome do pacote pelo nome do pacote JAR correspondente.

      tar zxvf jindosdk-x.x.x-linux.tar.gz
      Nota

      x.x.x indica o número da versão do pacote JAR do JindoSDK.

    3. Copie os arquivos JAR do JindoSDK baixados para o classpath.

      cp jindosdk-x.x.x-linux/lib/*.jar  $SPARK_HOME/jars/
  3. Configure a classe de implementação do OSS-HDFS e especifique o par de AccessKey que você deseja usar para acessar o bucket.

    • Configure as definições no arquivo core-site.xml

      1. Configure a classe de implementação do OSS-HDFS no arquivo core-site.xml do Spark.

        <configuration>
            <property>
                <name>fs.AbstractFileSystem.oss.impl</name>
                <value>com.aliyun.jindodata.oss.JindoOSS</value>
            </property>
        
            <property>
                <name>fs.oss.impl</name>
                <value>com.aliyun.jindodata.oss.JindoOssFileSystem</value>
            </property>
        </configuration>
      2. Configure o AccessKey ID e o AccessKey Secret usados para acessar o bucket com OSS-HDFS ativado no arquivo de configuração core-site.xml do Spark.

        <configuration>
            <property>
                <name>fs.oss.accessKeyId</name>
                <value>LTAI********</value>
            </property>
        
            <property>
                <name>fs.oss.accessKeySecret</name>
                <value>KZo1********</value>
            </property>
        </configuration>
    • Configure as definições ao enviar jobs do Spark

      O exemplo a seguir mostra como configurar a classe de implementação do OSS-HDFS e especificar o par de AccessKey usado para acessar um bucket ao enviar jobs do Spark:

      spark-submit --conf spark.hadoop.fs.AbstractFileSystem.oss.impl=com.aliyun.jindodata.oss.OSS --conf spark.hadoop.fs.oss.impl=com.aliyun.jindodata.oss.JindoOssFileSystem --conf spark.hadoop.fs.oss.accessKeyId=LTAI********  --conf spark.hadoop.fs.oss.accessKeySecret=KZo149BD9GLPNiDIEmdQ7d****
  4. Configure o endpoint do OSS-HDFS.

    É necessário especificar o endpoint do OSS-HDFS para usar o OSS-HDFS no acesso a buckets do Object Storage Service (OSS). Recomenda-se configurar o caminho de acesso ao OSS-HDFS no formato oss://{yourBucketName}.{yourBucketEndpoint}/{path} (exemplo: oss://examplebucket.cn-shanghai.oss-dls.aliyuncs.com/exampleobject.txt). Após configurar o caminho de acesso, o JindoSDK chama a operação correspondente do OSS-HDFS com base no endpoint especificado no caminho de acesso.

    Também é possível configurar o endpoint do OSS-HDFS por outros métodos. Os endpoints configurados por diferentes métodos têm prioridades diferentes. Para obter mais informações, consulte Início rápido: Conectar um cluster não EMR ao serviço OSS-HDFS.

  5. Use o Spark para acessar o OSS-HDFS.

    1. Crie uma tabela.

      create table test_oss (c1 string) location "oss://examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/dir/";
    2. Insira dados na tabela.

      insert into table test_oss values ("testdata");
    3. Consulte dados na tabela.

      select * from test_oss;