Todos os produtos
Search
Central de documentação

Object Storage Service:Quick start: Connect a non-EMR cluster to the OSS-HDFS service

Última atualização: Jul 03, 2026

O serviço Object Storage Service (OSS)-Hadoop Distributed File System (HDFS), também conhecido como JindoFS, é totalmente compatível com interfaces HDFS e suporta operações no nível de diretório. O kit de desenvolvimento de software (SDK) Jindo permite que aplicativos de computação e análise do Apache Hadoop, como MapReduce, Hive, Spark e Flink, acessem o serviço OSS-HDFS. Este tópico descreve como implantar o JindoSDK em uma instância Elastic Compute Service (ECS) e executar operações comuns para começar a usar o serviço OSS-HDFS.

Nota

Se você utiliza um cluster Alibaba Cloud E-MapReduce (EMR), é possível conectá-lo diretamente ao serviço OSS-HDFS. Para mais informações, consulte Início rápido para conectar um cluster EMR ao serviço OSS-HDFS.

Pré-requisitos

Tutorial em vídeo

O vídeo abaixo demonstra como conectar rapidamente um cluster não EMR ao serviço OSS-HDFS e realizar operações comuns.

Procedimento

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

  2. Baixe e descompacte o pacote JAR do JindoSDK. Para baixe o pacote, acesse GitHub.

  3. Execute o comando a seguir para descompactar o pacote JAR do JindoSDK.

    O exemplo abaixo mostra como descompactar jindosdk-x.x.x-linux.tar.gz. Se estiver utilizando outra versão do JindoSDK, substitua o nome do pacote pelo nome real do arquivo.

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

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

  4. Configure as variáveis de ambiente.

    1. Configure JINDOSDK_HOME.

      O exemplo a seguir considera que o pacote foi descompactado no diretório /usr/lib/jindosdk-x.x.x-linux:

      export JINDOSDK_HOME=/usr/lib/jindosdk-x.x.x-linux
    2. Configure HADOOP_CLASSPATH.

      export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:${JINDOSDK_HOME}/lib/*
      Importante

      Implante o diretório de instalação e as variáveis de ambiente em todos os nós necessários.

  5. Configure a classe de implementação do serviço OSS-HDFS e o par de AccessKey.

    1. Execute o comando a seguir para abrir o arquivo de configuração core-site.xml do Hadoop.

      vim /usr/local/hadoop/etc/hadoop/core-site.xml
    2. No arquivo core-site.xml, configure a classe de implementação DLS do JindoSDK.

      <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>
    3. No arquivo core-site.xml, configure o par de AccessKey da sua conta Alibaba Cloud ou de um usuário RAM com as permissões necessárias.

      Para mais informações sobre as permissões exigidas para um usuário RAM neste cenário, consulte Conceder permissões a um usuário RAM para conectar um cluster não EMR ao serviço OSS-HDFS.

      <configuration>
          <property>
              <name>fs.oss.accessKeyId</name>
              <value>xxx</value>
          </property>
      
          <property>
              <name>fs.oss.accessKeySecret</name>
              <value>xxx</value>
          </property>
      </configuration>
  6. Configure o Endpoint do serviço OSS-HDFS.

    É obrigatório configurar um Endpoint para acessar um bucket do OSS por meio do serviço OSS-HDFS. O formato recomendado para o caminho de acesso é oss://<Bucket>.<Endpoint>/<Object>. Por exemplo, oss://examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/exampleobject.txt. Após concluir a configuração, o JindoSDK utilizará o Endpoint especificado no caminho para acessar a API correspondente do serviço OSS-HDFS.

  7. Utilize comandos do HDFS Shell para executar operações comuns no OSS-HDFS.

    • Carregar um arquivo

      Para carregar o arquivo examplefile.txt do diretório raiz local para o examplebucket, execute o seguinte comando:

      hdfs dfs -put examplefile.txt oss://examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/
    • Baixar um arquivo

      Para baixe o arquivo exampleobject.txt do examplebucket para o diretório local /tmp, execute o comando abaixo:

      hdfs dfs -get oss://examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/exampleobject.txt  /tmp/

    Para mais detalhes sobre as operações disponíveis, consulte Acessar o OSS-HDFS usando comandos shell do Hadoop.

Anexo 1: Ajuste de desempenho

Adicione os itens de configuração a seguir ao arquivo core-site.xml do Hadoop para ajustar o desempenho. Essas configurações são suportadas apenas no JindoSDK 4.0 ou superior.

<configuration>

    <property>
          <!-- The directories where the client writes temporary files. You can specify multiple directories separated by commas (,). In multi-user environments, grant read and write permissions. -->
        <name>fs.oss.tmp.data.dirs</name>
        <value>/tmp/</value>
    </property>

    <property>
          <!-- The number of retries when an attempt to access OSS fails. -->
        <name>fs.oss.retry.count</name>
        <value>5</value>
    </property>

    <property>
          <!-- The timeout for OSS requests, in milliseconds. -->
        <name>fs.oss.timeout.millisecond</name>
        <value>30000</value>
    </property>

    <property>
          <!-- The timeout for OSS connections, in milliseconds. -->
        <name>fs.oss.connection.timeout.millisecond</name>
        <value>3000</value>
    </property>

    <property>
          <!-- The number of concurrent threads to upload a single file to OSS. -->
        <name>fs.oss.upload.thread.concurrency</name>
        <value>5</value>
    </property>

    <property>
          <!-- The size of the queue for concurrent OSS upload tasks. -->
        <name>fs.oss.upload.queue.size</name>
        <value>5</value>
    </property>

    <property>
          <!-- The maximum number of concurrent OSS upload tasks per stream in a process. -->
        <name>fs.oss.upload.max.pending.tasks.per.stream</name>
        <value>16</value>
    </property>

    <property>
          <!-- The size of the queue for concurrent OSS download tasks. -->
        <name>fs.oss.download.queue.size</name>
        <value>5</value>
    </property>

    <property>
          <!-- The number of concurrent threads for downloading from OSS. -->
        <name>fs.oss.download.thread.concurrency</name>
        <value>16</value>
    </property>

    <property>
          <!-- The buffer size for pre-reading data from OSS. -->
        <name>fs.oss.read.readahead.buffer.size</name>
        <value>1048576</value>
    </property>

    <property>
          <!-- The number of buffers for concurrently pre-reading data from OSS. -->
        <name>fs.oss.read.readahead.buffer.count</name>
        <value>4</value>
    </property>

</configuration>