Apache Hadoop 2.9.1: Instalação e configuração de um cluster no Ubuntu 18.04 Single Node

Leandro Gomes
9 min readMay 21, 2021

A configuração que vamos fazer no hadoop vai ser sigle-node.

Começamos por criar uma VM (Virtual Machin), por exemplo a VirtualBox e depois Ubuntu, depois de instalarmos a VM e fazermos o download do ficheiro iso para o Ubuntu vamos criar a VM, da seguinte forma.

Agora vamos configurar a nossa VM antes de proceder à instalação do Ubuntu, selecionando o ficheiro iso que transferimos, como mostra a imagem seguinte.

Na janela que abre clicamos em add, procuramos o ficheiro iso do Ubuntu e clicamos em choose e depois em ok.

Agora vamos instalar o Ubuntu selecionando a nossa VM e depois clicando em Start, ou clicando duas vezes na VM.

Selecionamos o idioma e clicamos em install Ubuntu.

Depois selecionamos o layout do teclado, para termos a certeza de que selecionamos o correto podemos escrever alguns caracteres especiais, onde diz type here to test your keyboard, depois de selecionado o layout correto, podemos sel clicamos em continue.

Depois deixamos a seleção por default e clicamos em continue.

Agora também deixamos a seleção por default e clicamos em install Now.

Depois clicamos em continue para prosseguir com a instalação.

Agora selecionamos a nossa região e clicamos continue.

De seguida preenchemos os seguintes campos com o nosso nome, uma password, selecionamos para fazer login automaticamente e por fim clicamos em continue, como na imagem seguinte.

Depois vamos clicar em restart now, para reiniciar a nossa maquina.

De seguida clicamos em next.

Depois clicamos next.

Depois vai nos perguntar se queremos fazer o upgrade do ubuntu para uma nova versão, selecionamos Don’t Upgrade.

Depois clicamos ok.

Depois caso não queiramos aceitar enviar as informações do sistema, selecionamos no, don’t send system info e clicamos next.

Para finalizar clicamos em done.

E já podemos usar a nossa maquina.

Abrimos um terminal e vamos instalar o java na nossa maquina, para isso executamos o seguinte coimando:

sudo apt install openjdk-8-jdk

Agora vamos confirmar se temos o java instalado e se é a versão correta, executando o seguinte comando:

java -version

Agora vamos desligar a VM e clona-la, para termos um backup já com o java devidamente instalado, assim se correr alguma coisa mal já não voltamos a estaca zero.

Para isso vamos clicar com o botão do lado direito do rato na nossa maquina e selecionar a opção clone como mostra a figura seguinte:

Depois vamos renomear o clone e clicar em next,

Esperar que o clone seja criado e a partir daqui trabalhamos nele, e a maquina que estavamos a usar antes é o nosso backup.

Agora vamos ligar a maquina clonada e começar a configuração do hadoop.

O primeiro passo é criar um utilizador Hadoop no sistema para acesso ao HDFS (Hadoop Distributed File System) e ao MapReduce.

Para evitar problemas de segurança, devemos configurar um novo grupo de utilizadores do Hadoop:

sudo addgroup hadoop

Agora vamos adicionar um utilizador Hadoop de nome hadoopusr.

Executando o seguinte comando:

sudo adduser --ingroup hadoop hadoopusr

E depois o seguinte:

sudo adduser hadoopusr sudo

O segundo passo é fazer a instalação e configuração do SSH.

Para instalar o OpenSSH Server, basta executar o seguinte comando:

sudo apt-get install openssh-server

O Hadoop usa o SSH para aceder aos nós, neste caso, como estamos a fazer uma configuração para single-node, temos que configurar o SSH para aceder ao localhost.

Vamos entrar com o utilizador hadoopusr:

su - hadoopusr

Depois vamos gerar uma chave publica SSH para o hadoopusr, para isso executamos o seguinte comando:

ssh-keygen -t rsa -P ""

Agora temos que adicionar a chave que foi gerada à lista de authorized_keys, executando o seguinte comando:

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

Agora vamos verificar a configuração do SSH, deve utilizar o seguinte comando:

ssh localhost

Para terminar a ligação agora basta executar o comando:

exit

O terceiro passo é a instalação e a configuração do Hadoop, começamos por fazer o download do Hadoop 2.9.1, este ficheiro ficará no Desktop, se executarmos o seguinte comando:

sudo wget -P /home/leandro/Desktop/ https://archive.apache.org/dist/hadoop/common/hadoop-2.9.1/hadoop-2.9.1.tar.gz

Agora vamos para o Desktop e vamos descompactar a pasta do Hadoop, executando os comandos seguintes:

cd /home/leandro/Desktopsudo tar xvzf hadoop-2.9.1.tar.gz

Depois de fazer a descompactação temos que mover a pasta para o diretório /usr/local/hadoop:

sudo mv hadoop-2.9.1 /urs/local/hadoop

O passo seguinte é atribuir a propriedade da pasta “hadoop” ao utilizador hadupusr:

sudo chown -R hadoopusr /usr/local

Agora vamos configurar alguns ficheiros, para configurarmos o Apache Hadoop, começando por definir as variaveis de ambiente no ficheiro ~/.bashrc:

sudo gedit ~/.bashrc

Caso dê o seguinte erro ao tentar editar o ficheiro com o comando anterior.

Execute o seguinte comando:

sudo nano ~/.bashrc

Uma vez com o documento aberto deve colocar no fim do mesmo o seguinte código:

export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS=""
export HADOOP_CLASSPATH=${JAVA_HOME}/lib/tools.jar

Depois de acrescentar o código anterior clicamos (crtl + x), para sair depois vai nos perguntar se queremos gravar as alterações escrevemos (y) e clicamos enter, depois enter outra vez.

Vamos agora fazer com que a configuração que fizemos tenha efeito, para isso executamos o seguinte comando:

source ~/.bashrc

Vamos agora editar o ficheiro hadoop-env.sh e definir a variável de ambiente JAVA_HOME:

cd /usr/local/hadoop/etc/hadoop/
sudo nano hadoop-env.sh

O ultimo nome do caminho (java-8-openjdk-amd64), deve coincidir com a versão do java que temos instalada na maquina, que no meu caso é a versão 8.

O Apache Hadoop tem bastantes ficheiros para configuração, uma vez que vamos configurar um nó de um cluster, temos apenas que configurar os seguintes ficheiros.

Primeiro - core-site.xml:

sudo nano core-site.xml

Dentro da tag <configuration> colocar a seguinte propriedade:

<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>

segundo - hdfs-site.xml:

sudo nano hdfs-site.xml

Dentro da tag <configuration> colocar as seguintes propriedades:

<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop_tmp/hdfs/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop_tmp/hdfs/datanode</value>
</property>

Terceiro - Yarn-site.xml:

sudo nano yarn-site.xml

Dentro da tag <configuration> colocar as seguintes propriedades:

<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>

Quarto - mapred-site.xml.

Vamos fazer uma copia do ficheiro mapred-site.xml.template e ao novo ficheiro damos o nome de mapred-site.xml, para isso usamos o seguinte comando:

sudo cp /usr/local/hadoop/etc/hadoop/mapred-site.xml.template /usr/local/hadoop/etc/hadoop/mapred-site.xml

Depois de criado o ficheiro mapred-site.xml, vamos edita-lo:

sudo nano mapred-site.xml

Dentro da tag <configuration> colocar as seguintes propriedades:

<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>

vamos agora criar as pastas para o namenode e o datanode, executando os seguintes comandos:

sudo mkdir -p /usr/local/hadoop_space/hdfs/namenode
sudo mkdir -p /usr/local/hadoop_space/hdfs/datanode

Já acabamos as configurações necessárias, agora vamos atribuir a propriedade da pasta “hadoop_space” ao utilizador hadoopusr e de seguida formatar o namenode usando o comando seguinte:

sudo chown -R hadoopusr /usr/local/hadoop_space
cd
hdfs namenode -format

Agora vamos iniciar os serviços do hadoop, para isso executamos os comando seguinte:

start-all.sh

Para vermos se todos os serviços iniciaram corretamente executamos o seguinte comando:

jps

Para aceder à interface de gestão do Apache Hadoop basta abrir o browser e inserir o seguinte url.

 http://localhost:8088/cluster

Acabamos de criar um cluster single-node, com sucesso.

--

--

Leandro Gomes

Estudante de Engenharia Informática do Instituto Politécnico da Guarda.