Apache Hadoop — Instalação e configuração de um cluster no Ubuntu 18 (Multi-Node)
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.
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.