Como instalar o Hadoop no UbuntuEtapas de download e instalação

⚡ Resumo Inteligente

Instalando o Apache Hadoop em Ubuntu São necessárias duas etapas: descompactar a versão em uma conta de sistema dedicada com SSH sem senha e, em seguida, editar quatro arquivos XML antes de formatar o HDFS e iniciar o cluster de nó único.

  • 🔘 Pré-requisitos: Uma corrida Ubuntu máquina e um suporte Java O kit de desenvolvimento deve estar instalado primeiro.
  • ☑️ Conta dedicada: Crie o grupo hadoop_ e a conta hduser_ para que os daemons nunca sejam executados como seu usuário de login.
  • SSH sem senha: O Hadoop inicia serviços daemon via SSH, portanto, o comando `ssh localhost` deve ser bem-sucedido sem solicitar senha.
  • 🧪 Quatro arquivos de configuração: Os arquivos hadoop-env.sh, core-site.xml, mapred-site.xml e hdfs-site.xml contêm todas as configurações alteradas neste passo a passo.
  • 🛠️ Primeiro início: Formate o NameNode uma vez, depois execute start-dfs.sh e start-yarn.sh e confirme os cinco daemons com jps.
  • 🧭 Desvio de versão: As capturas de tela utilizam o Hadoop 2.2.0, portanto, verifique a versão, as portas e os nomes das propriedades em comparação com o Hadoop 3.x.

Como instalar o Hadoop no Ubuntu

Neste tutorial, vamos guiá-lo passo a passo pelo processo de instalação do Apache Hadoop em um sistema Linux (UbuntuEste é um processo em duas etapas: primeiro, baixe e instale a versão e, em seguida, configure-a.

Existem dois pré-requisitos:

Observações sobre a versão Hadoop 3.x para esta configuração

As capturas de tela neste passo a passo foram feitas no Hadoop 2.2.0. A sequência de passos permanece inalterada nas versões atuais, mas alguns nomes e valores padrão foram alterados. Consulte a tabela abaixo antes de copiar qualquer comando literalmente.

Configuração ou etapa Neste tutorial (Hadoop 2.x) Hadoop 3.x atual
Arquivo de lançamentos hadoop-2.2.0.tar.gz hadoop-3.5.0.tar.gz, a primeira versão estável 3.5, publicada em 2 de abril de 2026
Propriedade padrão do sistema de arquivos fs.default.name na prosa, fs.defaultFS no XML fs.defaultFS só; fs.default.name está obsoleto
Propriedade MapReduce mapreduce.jobtracker.address mapreduce.framework.name definido para yarn; o empregoTracO ker deixa de existir assim que o YARN agenda o trabalho.
mapred-site.xml Copiado de mapred-site.xml.template Navios em etc/hadoop já existe, então a etapa de cópia é desnecessária.
Portabilidade da interface web do NameNode 50070 9870
Java Java 6 ou Java 7 Java 8 ou Java 11

Todo o resto neste guia funciona da mesma maneira no Hadoop 3: a conta dedicada, a chave SSH, os quatro arquivos de configuração e os scripts de inicialização e parada.

Parte 1) Baixe e instale o Hadoop

Etapa 1) Adicione um usuário do sistema Hadoop

Adicione um usuário do sistema Hadoop usando o comando abaixo.

sudo addgroup hadoop_

Terminal executando sudo addgroup hadoop_

sudo adduser --ingroup hadoop_ hduser_

O prompt adduser está coletando os detalhes para hduser_

Digite sua senha, nome e outros detalhes.

OBSERVAÇÃO: Existe a possibilidade de ocorrer o erro mencionado abaixo durante o processo de configuração e instalação.

“hduser não está no arquivo sudoers. Este incidente será relatado."

Mensagem de erro: hduser não está no arquivo sudoers

Esse erro pode ser resolvido fazendo login como usuário root.

Alternando para o usuário root no terminal

Execute o comando

sudo adduser hduser_ sudo

Adicionando hduser_ ao grupo sudo

Re-login as hduser_

Reiniciando o login como hduser_

Etapa 2) Configurar SSH

Para gerenciar os nós em um cluster, o Hadoop requer acesso SSH.

Primeiro, troque de usuário, digite o seguinte comando

su - hduser_

Trocar de usuário com su - hduser_

Este comando criará uma nova chave.

ssh-keygen -t rsa -P ""

ssh-keygen gerando um par de chaves RSA para hduser_

Habilite o acesso SSH à máquina local usando esta chave.

cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys

Adicionando id_rsa.pub ao arquivo authorized_keys

Agora teste a configuração SSH conectando-se ao localhost como o usuário 'hduser_'.

ssh localhost

Sessão SSH localhost bem-sucedida para hduser_

Observação: Se você vir o erro abaixo em resposta a 'ssh localhost', é possível que o SSH não esteja disponível neste sistema.

Falha ao tentar acessar localhost via SSH, apresentando erro de conexão recusada.

Para resolver isso –

Limpe o SSH usando,

sudo apt-get purge openssh-server

É uma boa prática realizar uma limpeza completa antes de iniciar a instalação.

apt-get purge remove um pacote openssh-server existente

Instale o SSH usando o comando-

sudo apt-get install openssh-server

apt-get instalando o pacote openssh-server

Etapa 3) Baixe o Hadoop

O próximo passo é baixar o Hadoop do Página de lançamentos do Apache Hadoop.

A página de versões do Apache Hadoop lista as versões disponíveis.

Selecione Estável

Listagem de diretórios para a versão estável do Hadoop

Selecione o arquivo tar.gz (não o arquivo que termina em src).

Optei por usar o arquivo binário tar.gz do Hadoop em vez do arquivo de origem.

Após a conclusão do download, navegue até o diretório que contém o arquivo tar.

O terminal foi aberto no diretório que contém o arquivo tar baixado.

Enter,

sudo tar xzf hadoop-2.2.0.tar.gz

Extractingindo o tarball do Hadoop com tar xzf

Agora, renomeie hadoop-2.2.0 para hadoop.

sudo mv hadoop-2.2.0 hadoop

Renomeando o extracpasta ted hadoop-2.2.0 para hadoop

Por fim, entregue a pasta à nova conta.

sudo chown -R hduser_:hadoop_ hadoop

chown atribuindo a pasta hadoop a hduser_ e hadoop_

Substitua pela versão que você realmente baixou. hadoop-2.2.0 nos três comandos acima.

Parte 2) Configurar o Hadoop

Passo 1) Modifique o arquivo ~/.bashrc

Adicione as seguintes linhas ao final do arquivo ~/.bashrc.

#Set HADOOP_HOME
export HADOOP_HOME=<Installation Directory of Hadoop>
#Set JAVA_HOME
export JAVA_HOME=<Installation Directory of Java>
# Add bin/ directory of Hadoop to PATH
export PATH=$PATH:$HADOOP_HOME/bin

Arquivo bashrc com as variáveis ​​de ambiente HADOOP_HOME, JAVA_HOME e PATH adicionadas.

Agora, execute essa configuração de ambiente usando o comando abaixo.

. ~/.bashrc

Executando o comando `source bashrc` para que as novas variáveis ​​de ambiente entrem em vigor.

Etapa 2) Configurações relacionadas ao HDFS

Defina a variável de ambiente JAVA_HOME no arquivo $HADOOP_HOME/etc/hadoop/hadoop-env.sh, conforme mostrado abaixo.

A linha JAVA_HOME padrão dentro de hadoop-env.sh

O arquivo hadoop-env.sh foi aberto no editor, mostrando a exportação JAVA_HOME.

Com

hadoop-env.sh JAVA_HOME substituído pelo valor real Java caminho de instalação

Existem dois parâmetros em $HADOOP_HOME/etc/hadoop/core-site.xml que precisam ser configurados:

1. 'hadoop.tmp.dir' – Usado para especificar um diretório que será usado pelo Hadoop para armazenar seus arquivos de dados.

2. 'fs.defaultFS' – Esta opção especifica o sistema de arquivos padrão. O nome antigo para a mesma propriedade, 'fs.default.name', está obsoleto.

Para definir esses parâmetros, abra core-site.xml

sudo gedit $HADOOP_HOME/etc/hadoop/core-site.xml

Abrindo core-site.xml com gedit

Copie as linhas abaixo entre os etiquetas.

<property>
<name>hadoop.tmp.dir</name>
<value>/app/hadoop/tmp</value>
<description>Parent directory for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS </name>
<value>hdfs://localhost:54310</value>
<description>The name of the default file system. </description>
</property>

O arquivo core-site.xml contém as propriedades hadoop.tmp.dir e fs.defaultFS.

Navegue até o diretório $HADOOP_HOME/etc/hadoop.

Terminal dentro do diretório de configuração do Hadoop /etc/hadoop

Agora, crie o diretório mencionado em core-site.xml.

sudo mkdir -p <Path of Directory used in above setting>

mkdir -p criando o caminho hadoop.tmp.dir

Conceda permissões ao diretório.

sudo chown -R hduser_:Hadoop_ <Path of Directory created in above step>

O comando `chown` concede ao usuário `hduser_` a propriedade do diretório temporário.

sudo chmod 750 <Path of Directory created in above step>

chmod 750 aplicado ao diretório temporário

Etapa 3) Configuração do MapReduce

Antes de começar com essas configurações, vamos definir o caminho HADOOP_HOME.

sudo gedit /etc/profile.d/hadoop.sh

E entre

export HADOOP_HOME=/home/guru99/Downloads/Hadoop

Script de perfil hadoop.sh exportando HADOOP_HOME

Em seguida, insira

sudo chmod +x /etc/profile.d/hadoop.sh

chmod +x torna o script de perfil hadoop.sh executável.

Saia do terminal e reinicie-o.

Digite `echo $HADOOP_HOME` para verificar o caminho.

echo $HADOOP_HOME imprimindo o caminho de instalação configurado

Agora copie os arquivos

sudo cp $HADOOP_HOME/etc/hadoop/mapred-site.xml.template $HADOOP_HOME/etc/hadoop/mapred-site.xml

Copiando mapred-site.xml.template para mapred-site.xml

Abra o arquivo mapred-site.xml

sudo gedit $HADOOP_HOME/etc/hadoop/mapred-site.xml

Abrindo mapred-site.xml com gedit

Adicione as configurações abaixo entre os e etiquetas.

<property>
<name>mapreduce.jobtracker.address</name>
<value>localhost:54311</value>
<description>MapReduce job tracker runs at this host and port.
</description>
</property>

O arquivo mapred-site.xml contém a tarefa MapReduce. tracpropriedade ker

Abra o arquivo $HADOOP_HOME/etc/hadoop/hdfs-site.xml conforme abaixo,

sudo gedit $HADOOP_HOME/etc/hadoop/hdfs-site.xml

Abrindo hdfs-site.xml com gedit

Adicione as configurações abaixo entre os e etiquetas.

<property>
<name>dfs.replication</name>
<value>1</value>
<description>Default block replication.</description>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/hduser_/hdfs</value>
</property>

O arquivo hdfs-site.xml contém as propriedades dfs.replication e dfs.datanode.data.dir.

Crie o diretório especificado na configuração acima.

sudo mkdir -p <Path of Directory used in above setting>
sudo mkdir -p /home/hduser_/hdfs

mkdir -p criando o diretório de dados do DataNode

Em seguida, conceda a propriedade e as permissões necessárias.

sudo chown -R hduser_:hadoop_ <Path of Directory created in above step>
sudo chown -R hduser_:hadoop_ /home/hduser_/hdfs

O comando `chown` concede ao usuário `hduser_` a propriedade do diretório de dados do DataNode.

sudo chmod 750 <Path of Directory created in above step>
sudo chmod 750 /home/hduser_/hdfs

A permissão chmod 750 foi aplicada ao diretório de dados do DataNode.

Etapa 4) Formate o HDFS

Antes de iniciar o Hadoop pela primeira vez, formate o HDFS usando o comando abaixo.

$HADOOP_HOME/bin/hdfs namenode -format

hdfs namenode -format saída formatando o novo sistema de arquivos

Etapa 5) Inicie o cluster Hadoop de nó único

Inicie o cluster Hadoop de nó único usando o comando abaixo.

$HADOOP_HOME/sbin/start-dfs.sh

O resultado do comando acima é mostrado abaixo.

Saída do script start-dfs.sh ao iniciar o NameNode e o DataNode

Em seguida, inicie os daemons do YARN.

$HADOOP_HOME/sbin/start-yarn.sh

Saída do start-yarn.sh: iniciando ResourceManager e NodeManager

Utilizando a ferramenta 'jps', verifique se todos os processos relacionados ao Hadoop estão em execução.

O comando jps lista os cinco daemons do Hadoop em execução.

Se o Hadoop tiver sido iniciado com sucesso, a saída do comando jps deverá listar NameNode, NodeManager, ResourceManager, SecondaryNameNode e DataNode.

Passo 6) Pareping Hadoop

Desligue o cluster na ordem inversa.

$HADOOP_HOME/sbin/stop-dfs.sh

Saída do stop-dfs.sh desligando os daemons do HDFS

$HADOOP_HOME/sbin/stop-yarn.sh

Saída do stop-yarn.sh: encerrando os serviços do YARN

Como verificar se o Hadoop está em execução e corrigir erros comuns

A saída do comando jps confirma que os processos foram iniciados, mas não que o cluster esteja utilizável. Quatro verificações adicionais resolvem essa questão.

  • Abra a interface web do NameNode em http://localhost:9870 (porta 50070 no Hadoop 2.x) e confirme se o resumo indica um nó ativo.
  • Abra a interface do ResourceManager em http://localhost:8088 para confirmar se o YARN aceitou o NodeManager.
  • Execute hdfs dfsadmin -report para capacidade, DataNodes ativos e quaisquer blocos com replicação insuficiente.
  • Escreva algo: hdfs dfs -mkdir /test seguido hdfs dfs -ls / Prova que o espaço de nomes aceita alterações.

A maioria das falhas na primeira tentativa se enquadra em uma de cinco categorias.

Sintoma Causar Fixar
A variável de ambiente JAVA_HOME não está definida e não foi encontrada. A variável é exportada em .bashrc, mas não em hadoop-env.sh. Defina também o caminho absoluto do JDK dentro do arquivo hadoop-env.sh.
Permissão negada (chave pública, senha) em ssh localhost O arquivo authorized_keys está faltando ou é muito permissivo. Adicione novamente o arquivo id_rsa.pub e, em seguida, execute o comando chmod 600 em ~/.ssh/authorized_keys.
Conexão recusada na porta 22 O servidor OpenSSH não está instalado ou não está em execução. Instale o openssh-server e inicie o serviço ssh.
DataNode ausente do arquivo jps após uma reformatação. Cluster Incompatibilidade de ID entre o NameNode formatado e o diretório DataNode antigo. Esvazie a pasta dfs.datanode.data.dir e formate-a novamente.
start-dfs.sh: comando não encontrado HADOOP_HOME e PATH nunca foram carregados no shell atual. Execute o arquivo . ~/.bashrc ou abra um novo terminal.

Perguntas Frequentes

Qualquer pessoa ativamente apoiada Ubuntu A versão LTS funciona, incluindo as versões 22.04 e 24.04. O Hadoop 3.x foi compilado e testado. Java 8 e Java 11, então instale um desses JDKs; os JDKs mais recentes não são totalmente suportados e os mais antigos Java A versão 7 não se aplica mais.

Os scripts start-dfs.sh e start-yarn.sh iniciam todos os daemons via SSH, mesmo quando o único host é localhost. Sem uma chave sem senha, os scripts travam na solicitação de senha e nenhum daemon é iniciado.

hadoop.tmp.dir é o caminho base de armazenamento temporário do qual o Hadoop deriva outros locais temporários. dfs.datanode.data.dir é onde um DataNode armazena arquivos de bloco reais. Aponte o segundo diretório para um armazenamento persistente, nunca para /tmp, ou os blocos desaparecerão na reinicialização.

Formate o DataNode uma vez, antes da primeira inicialização. Executar a formatação novamente apaga o namespace e deixa os diretórios DataNode existentes com um ID de cluster antigo, motivo pelo qual o DataNode se recusa a registrar e desaparece da saída do jps.

Sim, porém Windows São necessários os binários nativos winutils.exe e hadoop.dll para a versão correspondente. A maioria das pessoas evita isso executando o mesmo Ubuntu entra no WSL 2, que se comporta como um host Linux normal.

Para fins de aprendizado, sim: uma imagem pré-configurada dispensa a criação de usuários, chaves SSH e edição de XML. Ainda assim, vale a pena instalar manualmente pelo menos uma vez, pois isso demonstra qual arquivo controla cada configuração quando um cluster real apresenta problemas.

Modelos de aprendizado de máquina baseados em métricas do NameNode e do YARN preveem limites de capacidade, identificam tarefas com desempenho desequilibrado e sinalizam discos com falhas precocemente. Diversas plataformas também recomendam tamanhos de contêineres automaticamente, substituindo grande parte do ajuste manual dessa configuração que antes era necessário.

O Copilot gera rapidamente blocos de propriedades para core-site.xml e hdfs-site.xml e memoriza a grafia exata. Verifique cada sugestão com a documentação da sua versão, pois ele costuma propor propriedades obsoletas, como mapreduce.job.tracker.address ou fs.default.name.

Resuma esta postagem com: