Todos os produtos
Search
Central de documentação

Object Storage Service:Usar Hadoop baseado em HDP 2.6 para ler e gravar dados no OSS

Última atualização: Jul 03, 2026

O Hortonworks Data Platform (HDP) é uma plataforma de big data lançada pela Hortonworks, composta por componentes open source como Hadoop, Hive e HBase. O Hadoop 3.1.1 está incluído no HDP 3.0.1 e oferece suporte ao Object Storage Service (OSS). No entanto, versões anteriores do HDP não suportam o OSS. Este tópico usa o HDP 2.6.1.0 como exemplo para descrever como configurar o HDP 2.6 para leitura e gravação de dados no OSS.

Pré-requisitos

Um cluster HDP 2.6.1.0 criado.

Se você não tiver um cluster HDP 2.6.1.0, use um dos métodos a seguir para criá-lo:

  • Use o Ambari para criar um cluster HDP 2.6.1.0.

  • Se o Ambari não estiver disponível, crie manualmente um cluster HDP 2.6.1.0.

Procedimento

  1. Baixe o pacote do HDP 2.6.1.0 com suporte ao OSS.

  2. Execute o comando a seguir para descompactar o pacote baixado:

    sudo tar -xvf hadoop-oss-hdp-2.6.1.0-129.tar

    Exemplo de resposta de sucesso:

    hadoop-oss-hdp-2.6.1.0-129/
    hadoop-oss-hdp-2.6.1.0-129/aliyun-java-sdk-ram-3.0.0.jar
    hadoop-oss-hdp-2.6.1.0-129/aliyun-java-sdk-core-3.4.0.jar
    hadoop-oss-hdp-2.6.1.0-129/aliyun-java-sdk-ecs-4.2.0.jar
    hadoop-oss-hdp-2.6.1.0-129/aliyun-java-sdk-sts-3.0.0.jar
    hadoop-oss-hdp-2.6.1.0-129/jdom-1.1.jar
    hadoop-oss-hdp-2.6.1.0-129/aliyun-sdk-oss-3.4.1.jar
    hadoop-oss-hdp-2.6.1.0-129/hadoop-aliyun-2.7.3.2.6.1.0-129.jar
  3. Modifique os diretórios dos pacotes JAR.

    Nota

    Neste tópico, todo o conteúdo delimitado por

    ${}

    representa variáveis de ambiente. Ajuste essas variáveis conforme o seu ambiente real.

    1. Mova o pacote Hadoop-aliyun-2.7.3.2.6.1.0-129.jar para o diretório ${/usr/hdp/current}/hadoop-client/. Execute o comando a seguir para verificar se o arquivo foi movido corretamente:

      sudo ls -lh /usr/hdp/current/hadoop-client/hadoop-aliyun-2.7.3.2.6.1.0-129.jar

      Exemplo de resposta de sucesso:

      -rw-r--r-- 1 root root 64K Oct 28 20:56 /usr/hdp/current/hadoop-client/hadoop-aliyun-2.7.3.2.6.1.0-129.jar
    2. Mova os demais pacotes jar para o diretório ${/usr/hdp/current}/hadoop-client/lib/. Execute o comando a seguir para confirmar a alteração:

      sudo ls -ltrh /usr/hdp/current/hadoop-client/lib

      Exemplo de resposta de sucesso:

      total 27M
      ......
      drwxr-xr-x 2 root root 4.0K Oct 28 20:10 ranger-hdfs-plugin-impl
      drwxr-xr-x 2 root root 4.0K Oct 28 20:10 ranger-yarn-plugin-impl
      drwxr-xr-x 2 root root 4.0K Oct 28 20:10 native
      -rw-r--r-- 1 root root 114K Oct 28 20:56 aliyun-java-sdk-core-3.4.0.jar
      -rw-r--r-- 1 root root 513K Oct 28 20:56 aliyun-sdk-oss-3.4.1.jar
      -rw-r--r-- 1 root root  13K Oct 28 20:56 aliyun-java-sdk-sts-3.0.0.jar
      -rw-r--r-- 1 root root 211K Oct 28 20:56 aliyun-java-sdk-ram-3.0.0.jar
      -rw-r--r-- 1 root root 770K Oct 28 20:56 aliyun-java-sdk-ecs-4.2.0.jar
      -rw-r--r-- 1 root root 150K Oct 28 20:56 jdom-1.1.jar
  4. Repita as operações anteriores em todos os nós do HDP.

  5. Adicione as configurações necessárias usando o Ambari. Se o cluster não for gerenciado pelo Ambari, modifique o arquivo core-site.xml. Na seção Custom core-site, adicione e configure as seguintes propriedades: fs.oss.endpoint, fs.oss.accessKeyId, fs.oss.accessKeySecret, fs.oss.impl, fs.oss.buffer.dir, fs.oss.connection.secure.enabled e fs.oss.connection.maximum.

    Parâmetro

    Descrição

    fs.oss.endpoint

    Especifique o endpoint da região onde está localizado o bucket que você deseja acessar.

    Exemplo: oss-cn-zhangjiakou-internal.aliyuncs.com.

    fs.oss.accessKeyId

    Insira o AccessKey ID usado para acessar o OSS.

    fs.oss.accessKeySecret

    Insira o AccessKey Secret usado para acessar o OSS.

    fs.oss.impl

    Defina a classe usada para implementar o sistema de arquivos do OSS com base no Hadoop. Configure o valor como org.apache.hadoop.fs.aliyun.oss.AliyunOSSFileSystem.

    fs.oss.buffer.dir

    Especifique o nome do diretório para armazenar arquivos temporários.

    Recomendamos definir este parâmetro como /tmp/oss.

    fs.oss.connection.secure.enabled

    Especifique se o HTTPS deve ser ativado. A ativação do HTTPS pode afetar o desempenho.

    Recomendamos definir este parâmetro como false.

    fs.oss.connection.maximum

    Especifique o número máximo de conexões com o OSS.

    Recomendamos definir este parâmetro como 2048.

    Para obter mais informações sobre outros parâmetros, consulte o módulo Hadoop-Aliyun.

  6. Reinicie o cluster conforme solicitado pelo Ambari.

  7. Teste a leitura e gravação de dados no OSS.

    1. Execute o comando a seguir para testar a leitura de dados do OSS:

      sudo hadoop fs -ls oss://${your-bucket-name}/
    2. Execute o comando a seguir para testar a gravação de dados no OSS:

      sudo hadoop fs -mkdir oss://${your-bucket-name}/hadoop-test

      Se for possível ler e gravar dados no OSS, as configurações foram aplicadas com sucesso. Caso contrário, verifique se as configurações estão corretas.

  8. Para executar jobs MapReduce, execute o comando a seguir para mover o pacote do HDP 2.6.1.0 para o caminho hdfs://hdp-master:8020/hdp/apps/2.6.1.0-129/mapreduce/mapreduce.tar.gz:

    Nota

    Este exemplo usa jobs MapReduce. Para saber como executar jobs de outros tipos, consulte a etapa e o código a seguir. Por exemplo, para executar jobs TEZ, mova o pacote do HDP 2.6.1.0 para o caminho

    hdfs://hdp-master:8020/hdp/apps/2.6.1.0-129/tez/tez.tar.gz

    .

    sudo su - hdfs
    cd ~
    hadoop fs -copyToLocal /hdp/apps/2.6.1.0-129/mapreduce/mapreduce.tar.gz
    hadoop fs -rm /hdp/apps/2.6.1.0-129/mapreduce/mapreduce.tar.gz
    cp mapreduce.tar.gz mapreduce.tar.gz.bak
    tar zxf mapreduce.tar.gz
    cp /usr/hdp/current/hadoop-client/hadoop-aliyun-2.7.3.2.6.1.0-129.jar hadoop/share/hadoop/tools/lib/
    cp /usr/hdp/current/hadoop-client/lib/aliyun-* hadoop/share/hadoop/tools/lib/
    cp /usr/hdp/current/hadoop-client/lib/jdom-1.1.jar hadoop/share/hadoop/tools/lib/
    tar zcf mapreduce.tar.gz hadoop
    hadoop fs -copyFromLocal mapreduce.tar.gz /hdp/apps/2.6.1.0-129/mapreduce/

Verificar as configurações

Teste o TeraGen e o TeraSort para validar se as configurações entraram em vigor.

  • Execute o comando a seguir para testar o TeraGen:

    sudo hadoop jar /usr/hdp/current/hadoop-mapreduce-client/hadoop-mapreduce-examples.jar teragen -Dmapred.map.tasks=100 10995116 oss://{bucket-name}/1G-input

    Exemplo de resposta de sucesso:

    18/10/28 21:32:38 INFO client.RMProxy: Connecting to ResourceManager at cdh-master/192.168.0.161:8050
    18/10/28 21:32:38 INFO client.AHSProxy: Connecting to Application History server at cdh-master/192.168.0.161:10200
    18/10/28 21:32:38 INFO aliyun.oss: [Server]Unable to execute HTTP request: Not Found
    [ErrorCode]: NoSuchKey
    [RequestId]: 5BD5BA7641FCE369BC1D052C
    [HostId]: null
    18/10/28 21:32:38 INFO aliyun.oss: [Server]Unable to execute HTTP request: Not Found
    [ErrorCode]: NoSuchKey
    [RequestId]: 5BD5BA7641FCE369BC1D052F
    [HostId]: null
    18/10/28 21:32:39 INFO terasort.TeraSort: Generating 10995116 using 100
    18/10/28 21:32:39 INFO mapreduce.JobSubmitter: number of splits:100
    18/10/28 21:32:39 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1540728986531_0005
    18/10/28 21:32:39 INFO impl.YarnClientImpl: Submitted application application_1540728986531_0005
    18/10/28 21:32:39 INFO mapreduce.Job: The url to track the job: http://cdh-master:8088/proxy/application_1540728986531_0005/
    18/10/28 21:32:39 INFO mapreduce.Job: Running job: job_1540728986531_0005
    18/10/28 21:32:49 INFO mapreduce.Job: Job job_1540728986531_0005 running in uber mode : false
    18/10/28 21:32:49 INFO mapreduce.Job:  map 0% reduce 0%
    18/10/28 21:32:55 INFO mapreduce.Job:  map 1% reduce 0%
    18/10/28 21:32:57 INFO mapreduce.Job:  map 2% reduce 0%
    18/10/28 21:32:58 INFO mapreduce.Job:  map 4% reduce 0%
    ...
    18/10/28 21:34:40 INFO mapreduce.Job:  map 99% reduce 0%
    18/10/28 21:34:42 INFO mapreduce.Job:  map 100% reduce 0%
    18/10/28 21:35:15 INFO mapreduce.Job: Job job_1540728986531_0005 completed successfully
    18/10/28 21:35:15 INFO mapreduce.Job: Counters: 36
    ...
  • Execute o comando a seguir para testar o TeraSort:

    sudo hadoop jar /usr/hdp/current/hadoop-mapreduce-client/hadoop-mapreduce-examples.jar terasort -Dmapred.map.tasks=100 oss://{bucket-name}/1G-input oss://{bucket-name}/1G-output

    Exemplo de resposta de sucesso:

    18/10/28 21:39:00 INFO terasort.TeraSort: starting
    ...
    18/10/28 21:39:02 INFO mapreduce.JobSubmitter: number of splits:100
    18/10/28 21:39:02 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1540728986531_0006
    18/10/28 21:39:02 INFO impl.YarnClientImpl: Submitted application application_1540728986531_0006
    18/10/28 21:39:02 INFO mapreduce.Job: The url to track the job: http://cdh-master:8088/proxy/application_1540728986531_0006/
    18/10/28 21:39:02 INFO mapreduce.Job: Running job: job_1540728986531_0006
    18/10/28 21:39:09 INFO mapreduce.Job: Job job_1540728986531_0006 running in uber mode : false
    18/10/28 21:39:09 INFO mapreduce.Job:  map 0% reduce 0%
    18/10/28 21:39:17 INFO mapreduce.Job:  map 1% reduce 0%
    18/10/28 21:39:19 INFO mapreduce.Job:  map 2% reduce 0%
    18/10/28 21:39:20 INFO mapreduce.Job:  map 3% reduce 0%
    ...
    18/10/28 21:42:50 INFO mapreduce.Job:  map 100% reduce 75%
    18/10/28 21:42:53 INFO mapreduce.Job:  map 100% reduce 80%
    18/10/28 21:42:56 INFO mapreduce.Job:  map 100% reduce 86%
    18/10/28 21:42:59 INFO mapreduce.Job:  map 100% reduce 92%
    18/10/28 21:43:02 INFO mapreduce.Job:  map 100% reduce 98%
    18/10/28 21:43:05 INFO mapreduce.Job:  map 100% reduce 100%
    ^@18/10/28 21:43:56 INFO mapreduce.Job: Job job_1540728986531_0006 completed successfully
    18/10/28 21:43:56 INFO mapreduce.Job: Counters: 54
    ...

Se os testes forem concluídos com êxito, as configurações estarão ativas.