Todos os produtos
Search
Central de documentação

Elastic Compute Service:Build a Hadoop environment

Última atualização: Jul 03, 2026

Implante clusters Hadoop distribuídos ou pseudodistribuídos em instâncias ECS Linux para armazenamento e processamento de big data.

Contexto

O Apache Hadoop é um framework para processamento distribuído de grandes conjuntos de dados em clusters de computadores. Ele escala de um único servidor para milhares de máquinas, cada uma fornecendo computação e armazenamento locais. O Hadoop detecta e trata falhas na camada de aplicação, oferecendo alta disponibilidade sem depender de redundância de hardware.

Os componentes principais do Hadoop são o Hadoop Distributed File System (HDFS) e o MapReduce:

  • HDFS: sistema de arquivos distribuído para armazenar e ler dados de aplicações.

  • MapReduce: framework de computação distribuída que divide tarefas nas fases Map e Reduce e usa um agendador de tarefas (JobTracker) para executá-las nos nós do cluster.

Recurso

Modo pseudodistribuído

Modo totalmente distribuído

Número de nós

Nó único. Todos os serviços são executados em uma única máquina.

Vários nós. Os serviços são distribuídos entre múltiplas máquinas.

Utilização de recursos

Utiliza os recursos de uma única máquina.

Aproveita recursos de computação e armazenamento de várias máquinas.

Tolerância a falhas

Baixa. Um único ponto de falha torna todo o cluster indisponível.

Alta. Suporta replicação de dados e configurações de alta disponibilidade.

Cenários

  • Desenvolvimento e testes

  • Aprendizado e treinamento

  • Projetos pequenos

  • Ambientes de produção

  • Cenários de alta disponibilidade e tolerância a falhas

  • Multiusuário e multitarefa

  • Armazenamento e processamento de dados em grande escala

Implantação rápida

Clique em Run Now para abrir o Terraform Explorer, onde é possível visualizar e executar código Terraform para criar automaticamente um ambiente Hadoop em uma instância ECS.

Pré-requisitos

As instâncias ECS devem atender aos seguintes requisitos:

Ambiente

Requisito

Instância

Pseudodistribuído

1 instância

Distribuído

3 ou mais instâncias

Nota

Adicione as instâncias a um conjunto de implantação que utilize a estratégia High Availability para melhorar a disponibilidade e simplificar o gerenciamento do cluster.

Sistema operacional

Linux

Endereço IP público

A instância deve ter um endereço IP público atribuído ou estar associada a um Elastic IP Address (EIP).

Grupo de segurança da instância

Permita tráfego de entrada nas portas 22, 443, 8088 (interface web do Hadoop YARN) e 9870 (interface web do Hadoop NameNode).

Nota

Para implantações distribuídas, permita também tráfego na porta 9868 (interface web do Hadoop Secondary NameNode).

Consulte Gerenciar regras de grupo de segurança.

Java Development Kit (JDK)

Este tópico utiliza Hadoop 3.2.4 e Java 8. Para outras versões, consulte Hadoop Java Versions.

Versão do Hadoop

Versão do Java

Hadoop 3.3

Java 8 e Java 11

Hadoop 3.0.x~3.2.x

Java 8

Hadoop 2.7.x~2.10.x

Java 7 e Java 8

Procedimento

Distribuído

Nota

Planeje os nós antes de implantar o Hadoop. Este exemplo utiliza três instâncias: hadoop001 é o nó master, enquanto hadoop002 e hadoop003 são nós worker.

Componente funcional

hadoop001

hadoop002

hadoop003

HDFS

  • NameNode

  • DataNode

DataNode

  • SecondaryNameNode

  • DataNode

YARN

NodeManager

  • ResourceManager

  • NodeManager

NodeManager

Etapa 1: Instale o JDK

Importante

Instale o JDK em todos os nós.

  1. Conecte-se à instância ECS como usuário comum.

    Consulte Conectar-se a uma instância Linux usando o Workbench.

    Importante

    A comunidade Hadoop não recomenda executar o Hadoop como usuário root devido a problemas de segurança e permissão. Utilize um usuário não root, como ecs-user.

  2. Baixe o pacote de instalação do JDK 1.8.

    wget https://download.java.net/openjdk/jdk8u41/ri/openjdk-8u41-b04-linux-x64-14_jan_2020.tar.gz
  3. Descompacte o pacote de instalação do JDK 1.8.

    tar -zxvf openjdk-8u41-b04-linux-x64-14_jan_2020.tar.gz
  4. Mova e renomeie a pasta de instalação do JDK.

    Este exemplo renomeia a pasta de instalação do JDK para java8. É possível usar um nome diferente.

    sudo mv java-se-8u41-ri/ /usr/java8
  5. Configure as variáveis de ambiente do Java.

    Se a pasta de instalação do JDK foi renomeada, substitua java8 nos comandos a seguir pelo nome real.

    sudo sh -c "echo 'export JAVA_HOME=/usr/java8' >> /etc/profile"
    sudo sh -c 'echo "export PATH=\$PATH:\$JAVA_HOME/bin" >> /etc/profile'
    source /etc/profile
  6. Verifique se o JDK foi instalado corretamente.

    java -version

    A saída a seguir indica uma instalação bem-sucedida.

    image

Etapa 2: Configure login SSH sem senha

Importante

Execute esta operação em todas as instâncias.

Configure o login SSH sem senha para que os nós possam se conectar sem autenticação por senha, simplificando o gerenciamento do cluster.

  1. Configure os nomes de host e a resolução de hosts.

    sudo vim /etc/hosts

    Adicione as informações <Primary private IP address> <Hostname> de todas as instâncias ao arquivo /etc/hosts. Por exemplo:

    <Primary private IP address> hadoop001
    <Primary private IP address> hadoop002
    <Primary private IP address> hadoop003
  2. Crie uma chave pública e uma chave privada.

    ssh-keygen -t rsa

    image

  3. Execute ssh-copy-id <Hostname>, substituindo o nome do host pelo nome correto. Por exemplo:

    Em hadoop001, execute ssh-copy-id hadoop001, ssh-copy-id hadoop002 e ssh-copy-id hadoop003. Após cada comando, insira yes e a senha da instância correspondente.

    ssh-copy-id hadoop001
    ssh-copy-id hadoop002
    ssh-copy-id hadoop003

    O login sem senha estará configurado quando a saída corresponder à imagem abaixo.

    image

Etapa 3: Instale o Hadoop

Importante

Execute os comandos a seguir em todas as instâncias.

  1. Baixe o pacote de instalação do Hadoop.

    wget http://mirrors.cloud.aliyuncs.com/apache/hadoop/common/hadoop-3.2.4/hadoop-3.2.4.tar.gz
  2. Descompacte o pacote de instalação do Hadoop em /opt/hadoop.

    sudo tar -zxvf hadoop-3.2.4.tar.gz -C /opt/
    sudo mv /opt/hadoop-3.2.4 /opt/hadoop
  3. Configure as variáveis de ambiente do Hadoop.

    sudo sh -c "echo 'export HADOOP_HOME=/opt/hadoop' >> /etc/profile"
    sudo sh -c "echo 'export PATH=\$PATH:/opt/hadoop/bin' >> /etc/profile"
    sudo sh -c "echo 'export PATH=\$PATH:/opt/hadoop/sbin' >> /etc/profile"
    source /etc/profile
  4. Modifique os arquivos de configuração yarn-env.sh e hadoop-env.sh.

    sudo sh -c 'echo "export JAVA_HOME=/usr/java8" >> /opt/hadoop/etc/hadoop/yarn-env.sh'
    sudo sh -c 'echo "export JAVA_HOME=/usr/java8" >> /opt/hadoop/etc/hadoop/hadoop-env.sh'
  5. Verifique se o Hadoop foi instalado corretamente.

    hadoop version

    A saída a seguir indica uma instalação bem-sucedida.

    image

Etapa 4: Configure o Hadoop

Importante

Modifique os arquivos de configuração do Hadoop em todos os nós.

  1. Modifique o arquivo de configuração do Hadoop core-site.xml.

    1. Abra o arquivo para edição.

      sudo vim /opt/hadoop/etc/hadoop/core-site.xml
    2. No nó <configuration></configuration>, insira o conteúdo a seguir.

         <!--Specify the NameNode address-->
         <property>
               <name>fs.defaultFS</name>
               <value>hdfs://hadoop001:8020</value>
         </property>
         <!--Specify the directory to store files generated by Hadoop-->
         <property>
               <name>hadoop.tmp.dir</name>
               <value>/opt/hadoop/data</value>
         </property>
         <!--Configure the static user for HDFS web logon as hadoop-->
         <property>
                <name>hadoop.http.staticuser.user</name>
                <value>hadoop</value>
         </property>
  2. Modifique o arquivo de configuração do Hadoop hdfs-site.xml.

    1. Abra o arquivo para edição.

      sudo vim /opt/hadoop/etc/hadoop/hdfs-site.xml
    2. No nó <configuration></configuration>, insira o conteúdo a seguir.

          <!-- NameNode web endpoint -->
          <property>
              <name>dfs.namenode.http-address</name>  
              <value>hadoop001:9870</value>
          </property>
          <!-- Secondary NameNode web endpoint -->
          <property>
              <name>dfs.namenode.secondary.http-address</name>
              <value>hadoop003:9868</value>
          </property>
  3. Modifique o arquivo de configuração do Hadoop yarn-site.xml.

    1. Abra o arquivo para edição.

      sudo vim /opt/hadoop/etc/hadoop/yarn-site.xml
    2. No nó <configuration></configuration>, insira o conteúdo a seguir.

           <!--The method for NodeManager to obtain data is shuffle-->
           <property>
      	 <name>yarn.nodemanager.aux-services</name>
      	 <value>mapreduce_shuffle</value>
           </property>
      
          <!--Specify the YARN (ResourceManager) address-->     
          <property>
      	 <name>yarn.resourcemanager.hostname</name>
      	 <value>hadoop002</value>
          </property> 
          
          <!--Specify the whitelist of environment variables that NodeManager can pass to containers-->
          <property>
          	<name>yarn.nodemanager.env-whitelist</name>
          	<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
          </property>
  4. Modifique o arquivo de configuração do Hadoop mapred-site.xml.

    1. Abra o arquivo para edição.

      sudo vim /opt/hadoop/etc/hadoop/mapred-site.xml
    2. No nó <configuration></configuration>, insira o conteúdo a seguir.

         <!--Tell Hadoop to run MapReduce (MR) on YARN-->
         <property>
      	 <name>mapreduce.framework.name</name>
      	 <value>yarn</value>
         </property>
  5. Modifique o arquivo de configuração do Hadoop workers.

    1. Abra o arquivo para edição.

      sudo vim /opt/hadoop/etc/hadoop/workers
    2. No arquivo workers, insira as informações das instâncias.

      hadoop001
      hadoop002
      hadoop003

Etapa 5: Iniciar o Hadoop

  1. Inicialize o namenode.

    Aviso

    Inicialize o namenode nas três instâncias apenas durante a primeira inicialização.

    hadoop namenode -format
  2. Inicie o Hadoop.

    Importante
    • A comunidade Hadoop não recomenda executar o Hadoop como usuário root devido a problemas de segurança e permissão. Utilize um usuário não root, como ecs-user.

    • Caso seja necessário executar o Hadoop como root, compreenda o modelo de controle de acesso e os riscos associados antes de modificar os arquivos de configuração a seguir.

      Nota: Executar o Hadoop como root introduz graves riscos de segurança, incluindo, mas não se limitando a, violações de dados, maior vulnerabilidade a malware que pode obter privilégios de root e problemas inesperados de permissão. Consulte a documentação oficial do Hadoop.

    Modifique os arquivos de configuração para permitir que o usuário root inicie os serviços do Hadoop.

    Os arquivos de configuração a seguir geralmente estão no diretório /opt/hadoop/sbin.

    1. Nos arquivos start-dfs.sh e stop-dfs.sh, adicione os parâmetros a seguir.

      HDFS_DATANODE_USER=root
      HADOOP_SECURE_DN_USER=hdfs
      HDFS_NAMENODE_USER=root
      HDFS_SECONDARYNAMENODE_USER=root

      image

    2. Nos arquivos start-yarn.sh e stop-yarn.sh, adicione os parâmetros a seguir.

      YARN_RESOURCEMANAGER_USER=root
      HADOOP_SECURE_DN_USER=yarn
      YARN_NODEMANAGER_USER=root

      image

    1. Em hadoop001, execute start-dfs.sh para iniciar o serviço HDFS.

      Este script inicia o NameNode, SecondaryNameNode e DataNode.

      start-dfs.sh

      O HDFS estará em execução quando a saída do comando jps corresponder à imagem abaixo.

      image

    2. Em hadoop002, execute start-yarn.sh para iniciar o serviço YARN.

      Este script inicia o ResourceManager e o NodeManager.

      start-yarn.sh

      O YARN estará em execução quando a saída corresponder à imagem abaixo.

      image

  3. Visualize os processos iniciados nos três nós.

    jps

    Os processos iniciados são mostrados a seguir.

    image

  4. No navegador, insira http://<Public IP address of hadoop002 ECS instance>:8088 para acessar a interface web do YARN.

    Visualize o uso de recursos do cluster, o status dos jobs MapReduce e informações de fila.

    Importante

    Permita tráfego de entrada na porta 8088 no grupo de segurança. Caso contrário, a interface web ficará inacessível. Consulte Adicionar uma regra de grupo de segurança.

    image

  5. No navegador, insira http://<Public IP address of hadoop001 ECS instance>:9870 para acessar a interface web do NameNode. Insira http://<Public IP address of hadoop003 ECS instance>:9868 para acessar a interface web do SecondaryNameNode.

    Visualize o status do HDFS, a integridade do cluster, os nós ativos e os logs do NameNode.

    A página a seguir indica que o ambiente distribuído foi criado com sucesso.

    Importante

    Permita tráfego de entrada na porta 9870 no grupo de segurança. Caso contrário, a interface web ficará inacessível. Consulte Adicionar uma regra de grupo de segurança.

    image

Pseudodistribuído

Etapa 1: Instale o JDK

  1. Conecte-se à instância ECS como usuário comum.

    Consulte Conectar-se a uma instância Linux usando o Workbench.

    Importante

    A comunidade Hadoop não recomenda executar o Hadoop como usuário root devido a problemas de segurança e permissão. Utilize um usuário não root, como ecs-user.

  2. Baixe o pacote de instalação do JDK 1.8.

    wget https://download.java.net/openjdk/jdk8u41/ri/openjdk-8u41-b04-linux-x64-14_jan_2020.tar.gz
  3. Descompacte o pacote de instalação do JDK 1.8.

    tar -zxvf openjdk-8u41-b04-linux-x64-14_jan_2020.tar.gz
  4. Mova e renomeie a pasta de instalação do JDK.

    Este exemplo renomeia a pasta de instalação do JDK para java8. É possível usar um nome diferente.

    sudo mv java-se-8u41-ri/ /usr/java8
  5. Configure as variáveis de ambiente do Java.

    Se a pasta de instalação do JDK foi renomeada, substitua java8 nos comandos a seguir pelo nome real.

    sudo sh -c "echo 'export JAVA_HOME=/usr/java8' >> /etc/profile"
    sudo sh -c 'echo "export PATH=\$PATH:\$JAVA_HOME/bin" >> /etc/profile'
    source /etc/profile
  6. Verifique se o JDK foi instalado corretamente.

    java -version

    A saída a seguir indica uma instalação bem-sucedida.

    image

Etapa 2: Configure login SSH sem senha

Nota

Um único nó também requer login SSH sem senha. Caso contrário, a inicialização do NameNode e do DataNode falhará com um erro de permissão negada.

  1. Crie uma chave pública e uma chave privada.

    ssh-keygen -t rsa

    image

  2. Adicione a chave pública ao arquivo authorized_keys.

    cd .ssh
    cat id_rsa.pub >> authorized_keys

Etapa 3: Instale o Hadoop

  1. Baixe o pacote de instalação do Hadoop.

    wget http://mirrors.cloud.aliyuncs.com/apache/hadoop/common/hadoop-3.2.4/hadoop-3.2.4.tar.gz
  2. Descompacte o pacote de instalação do Hadoop em /opt/hadoop.

    sudo tar -zxvf hadoop-3.2.4.tar.gz -C /opt/
    sudo mv /opt/hadoop-3.2.4 /opt/hadoop
  3. Configure as variáveis de ambiente do Hadoop.

    sudo sh -c "echo 'export HADOOP_HOME=/opt/hadoop' >> /etc/profile"
    sudo sh -c "echo 'export PATH=\$PATH:/opt/hadoop/bin' >> /etc/profile"
    sudo sh -c "echo 'export PATH=\$PATH:/opt/hadoop/sbin' >> /etc/profile"
    source /etc/profile
  4. Modifique os arquivos de configuração yarn-env.sh e hadoop-env.sh.

    sudo sh -c 'echo "export JAVA_HOME=/usr/java8" >> /opt/hadoop/etc/hadoop/yarn-env.sh'
    sudo sh -c 'echo "export JAVA_HOME=/usr/java8" >> /opt/hadoop/etc/hadoop/hadoop-env.sh'
  5. Verifique se o Hadoop foi instalado corretamente.

    hadoop version

    A saída a seguir indica uma instalação bem-sucedida.

    image

Etapa 4: Configure o Hadoop

  1. Modifique o arquivo de configuração do Hadoop core-site.xml.

    1. Abra o arquivo para edição.

      sudo vim /opt/hadoop/etc/hadoop/core-site.xml
    2. No nó <configuration></configuration>, insira o conteúdo a seguir.

          <property>
              <name>hadoop.tmp.dir</name>
              <value>file:/opt/hadoop/tmp</value>
              <description>location to store temporary files</description>
          </property>
          <property>
              <name>fs.defaultFS</name>
              <value>hdfs://localhost:9000</value>
          </property>
  2. Modifique o arquivo de configuração do Hadoop hdfs-site.xml.

    1. Abra o arquivo para edição.

      sudo vim /opt/hadoop/etc/hadoop/hdfs-site.xml
    2. No nó <configuration></configuration>, insira o conteúdo a seguir.

          <property>
              <name>dfs.replication</name>
              <value>1</value>
          </property>
          <property>
              <name>dfs.namenode.name.dir</name>
              <value>file:/opt/hadoop/tmp/dfs/name</value>
          </property>
          <property>
              <name>dfs.datanode.data.dir</name>
              <value>file:/opt/hadoop/tmp/dfs/data</value>
          </property>

Etapa 5: Iniciar o Hadoop

  1. Inicialize o namenode.

    hadoop namenode -format
  2. Inicie o Hadoop.

    Importante
    • A comunidade Hadoop não recomenda executar o Hadoop como usuário root devido a problemas de segurança e permissão. Utilize um usuário não root, como ecs-user.

    • Caso seja necessário executar o Hadoop como root, compreenda o modelo de controle de acesso e os riscos associados antes de modificar os arquivos de configuração a seguir.

      Nota: Executar o Hadoop como root introduz graves riscos de segurança, incluindo, mas não se limitando a, violações de dados, maior vulnerabilidade a malware que pode obter privilégios de root e problemas inesperados de permissão. Consulte a documentação oficial do Hadoop.

    Modifique os arquivos de configuração para permitir que o usuário root inicie os serviços do Hadoop.

    Os arquivos de configuração a seguir geralmente estão no diretório /opt/hadoop/sbin.

    1. Nos arquivos start-dfs.sh e stop-dfs.sh, adicione os parâmetros a seguir.

      HDFS_DATANODE_USER=root
      HADOOP_SECURE_DN_USER=hdfs
      HDFS_NAMENODE_USER=root
      HDFS_SECONDARYNAMENODE_USER=root

      image

    2. Nos arquivos start-yarn.sh e stop-yarn.sh, adicione os parâmetros a seguir.

      YARN_RESOURCEMANAGER_USER=root
      HADOOP_SECURE_DN_USER=yarn
      YARN_NODEMANAGER_USER=root

      image

    1. Inicie o serviço HDFS.

      Este script inicia o NameNode, SecondaryNameNode e DataNode.

      start-dfs.sh

      O HDFS estará em execução quando a saída corresponder à imagem abaixo.

      image

    2. Inicie o serviço YARN.

      Este script inicia o ResourceManager, o NodeManager e o ApplicationHistoryServer.

      start-yarn.sh

      O YARN estará em execução quando a saída corresponder à imagem abaixo.

      image

  3. Visualize os processos iniciados.

    jps

    Os processos iniciados são mostrados a seguir.

    image

  4. No navegador, insira http://<Public IP address of the ECS instance>:8088 para acessar a interface web do YARN.

    Visualize o uso de recursos do cluster, o status dos jobs MapReduce e informações de fila.

    Importante

    Permita tráfego de entrada na porta 8088 no grupo de segurança. Caso contrário, a interface web ficará inacessível. Consulte Adicionar uma regra de grupo de segurança.

    image

  5. No navegador, insira http://<Public IP address of the ECS instance>:9870 para acessar a interface web do NameNode.

    Visualize o status do HDFS, a integridade do cluster, os nós ativos e os logs do NameNode.

    A página a seguir indica que o ambiente pseudodistribuído foi criado com sucesso.

    Importante

    Permita tráfego de entrada na porta 9870 no grupo de segurança. Caso contrário, a interface web ficará inacessível. Consulte Adicionar uma regra de grupo de segurança.

    image.png

Mais operações

Crie um grupo consistente de snapshots

Para Hadoop distribuído, utilize um grupo consistente de snapshots para garantir a consistência dos dados em todo o cluster. Consulte Criar um grupo consistente de snapshots.

Operações relacionadas ao Hadoop

Para operações do HDFS, consulte Comandos comuns do HDFS.

Referências