Apache Hadoop — Instalação e configuração de um cluster no Ubuntu 18 (Multi-Node)

João Saraiva
7 min readJun 2, 2021

O Apache Hadoop é uma framework desenvolvida em Java, para computação distribuída, usada para processamento de grandes quantidades de informação.

Para melhor entender o que vai ser feito neste tutorial, deve saber que o Hadoop está dividido em duas partes essenciais:

  • Hadoop Distributed File System (HDFS)

Sistema de ficheiros distribuído que armazena dados em máquinas dentro do cluster.

Pré-requisitos:

  • Ubuntu 18.04 (Máquina virtualizada no VirtualBox ou outra plataforma)
  • Java instalado

Máquina Virtual

O primeiro passo a ser realizado neste tutorial será o download da VirtualBox para a criação das nossas três máquinas e de seguida o download da versão do ubuntu dita préviamente.

Já com a nossa VirtualBox aberta, vamos começar por criar uma máquina para backup para não ter a necessidade de efetuar novamente as instalações caso haja algum problema mais tarde. Para isso vamos clicar em Add.

Add ( + )

Vamos atribuir 2048 MB de RAM a esta máquina.

As proximas definições vão ser deixadas como apareciam em default.

Os próximos passos vão consistir em instalar o ubunto 18.04 na nossa máquina virtual. Para tal vamos a Settings Storage → Clicar no “cd” → Choose/Create a Virtual Optical Disk…

De seguida vamos clicar em Add e vamos até à localização do ficheiro “iso” do ubunto que realizamos o download.

Após escolher o nosso “iso” e aplicar clicando em “choose” vamos iniciar a nossa Máquina Virtual. Quando a nossa máquina iniciar, vamos clicar em install ubuntu.

No próximo passo vamos escolher o layout do nosso teclado.

As três próximas opções vão ficar default.

De seguida pressionamos “Install now” e de seguida “Continue”.

Neste passo vamos escolher a região onde nos encontramos devido ao fuso horário.

A seguir vamos criar o nosso utilizador do ubuntu.

Agora é só esperar pela instalação e de seguida reiniciar a nossa Máquina.

Por fim vamos fazer o download do Hadoop, para isso basta utilizar o comando que se segue, caso o mesmo não dê procure um novo link para fazer o download do mesmo.

sudo wget https://mirrors.sonic.net/apache/hadoop/common/hadoop-3.2.1/hadoop-3.2.1.tar.gz

No passo seguinte, deve fazer o clone da maquina 2 vezes para obtermos os slaves da nossa maquina.

Para isso basta clicar com o botao direito do rato na maquina e fazer o full clone.

Após o clone ser finalizado vamos configurar a nossa Network para isso vamos a Settings Network Adapter 2 e colocar tudo como se apresenta na imagem a baixo.

De seguida vamos iniciar o nosso Ubuntu master.

Primeiramente vamos instalar o ssh e de seguida o pdsh.

Para isso vamos usar os comando seguintes:

sudo apt install ssh 
sudo apt install pdsh

De seguida vamos abrir o ficheiro .bashrc

nano .bashrc

Neste ficheiro vamos adicionar o export que está no final para a utilização do ssh e do pdsh.

Depois vamos criar uma nova chave SSH.

ssh-keygen -t -rsa -P ""

Por fim vamos verificar a configuração ssh, conectando a mesma ao localhost.

ssh localhost

Agora vamos instalar o Hadoop 3.2.1 que previamente realizamos o download e que se apresenta no nosso Desktop. Para tal primeiro vamos descompactar o ficheiro e vamos renomear a pasta para hadoop para ser mais facil acessar à mesma.

O passo que se segue consiste em abrir o ficheiro hadoop-env.sh, tirar de comentário a linha que contém o export JAVA_HOME e por fim adicionar o que se segue.

De seguida vamos mover a pasta hadoop para a diretória /usr/local/hadoop

Depois de mudar a pasta para a diretória pretendida e sair da pasta desktop, vamos aceder ao ficheiro environment e adicionar o que falta ao que já está no ficheiro.

Por fim vamos verificar o ip address do nosso master.

ip addr

Com este ip podemos saber que a nossa configuração será a que se segue:

  • master: 192.168.56.101
  • slave1: 192.168.56.102
  • slave2: 192.168.56.103

Para tal vamos colocar esta configuração no nosso ficheiro hosts.

sudo nano /etc/hosts

Criação dos Slaves

Neste ponto vamos fechar o nosso master e vamos passar para a clonagem do master para criar os nosso dois slaves. Na clonagem de ambos os slaves não esquecer de colocar a opção generate new MAC address for all network adapters para que estes assim fiquem com addresses diferentes e full clone tal como fizemos na primeira.

De seguida vamos colocar as três máquinas a trabalhar em simultâneo e alterar o hostname das mesmas. Não esquecer que o hostname das mesmas deve ser igual ao nome atribuido no ficheiro hosts do master.

sudo nano /etc/hostname

Após alterar o hostname de todas as máquinas vamos realizar o reboot em todas com o comando que se segue:

sudo reboot

Continuação das configurações do master

O primeiro passo é mudar para o utilizador hadoopuser.

su - hadoopuser

De seguida vamos criar uma chave ssh.

ssh-keygen -t -rsa -P ""

Para copiar a chave que foi gerada para todos os utilizadores use o comando:

ssh-copy-id hadoopuser@master

Após copiar a chave para todos os utilizadores, vamos alterar o ficheiro core-site.xml, onde vamos acrescentar a seguinte propriedade.

sudo nano /usr/local/hadoop/etc/hadoop/core-site.xml

De seguida vamos editar o ficheiro hdfs-site.xml e acrescentar as propriedades que se seguem.

sudo nano /usr/local/hadoop/etc/hadoop/hdfs-site.xml

O terceiro ficheiro a editar vai ser o ficheiro designado de workers

sudo nano /usr/local/hadoop/etc/hadoop/workers

O próximo passo vai ser em atribuir as configurações que fizemos até agora no mastar para os slaves para tal basta executar dois comandos.

De seguida vamos abrir o ficheiro .bashrc no hadoopuser e inserir o export no fim do ficheiro.

nano .bashrc

Após gravar a alteração realizada no ficheiro .bashrc vamos formatar o hdfs file system.

source .bashrc
source /etc/environment

Após concluir esta formatação vamos iniciar o dfs.

De seguida no browser vamos ao url master:9870, caso obtemos o que se segue, excelente, os slaves estão a funcionar!

No nosso master vamos iniciar o yarn.

Para visualizar novamente se tudo se encontra a funcionar vamos novamente aos slaves com o mesmo utilizador e vamos executar o comando jps.

Para concluir o nosso tutorial, no browser, vamos aceder ao url master:8088 e caso o resultado seja igual à imagem que se segue a baixo, podemos dar por concluído o nosso trabalho! Caso algo dê errado, verifique com atenção todos os passos efetuados.

--

--