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

João Saraiva
5 min readMay 31, 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

Para verificar a versão do java use o comando:

user@ubuntu:~$ java -version

Caso não tenha o java instalado, basta executar os seguintes comandos:

user@ubuntu:~$ sudo apt-get install default-jre
user@ubuntu:~$ sudo apt-get install default-jdk

Passo 1) Configuração do utilizador Hadoop

Depois do java instalado, o primeiro passo é criar um utilizador Hadoop no sistema para acesso ao HDFS e MapReduce.

Para evitar problemas de segurança, é recomendável configurar um novo grupo de utilizadores do Hadoop.

user@ubuntu:~$ sudo addgroup hadoop

Para adicionar um utilizador Hadoop de nome hadoopusr:

user@ubuntu:~$ sudo addusr -–ingroup hadoop hadoopusr
user@ubuntu:~$ sudo adduser hadoopusr sudo

Passo 2) Instalação e configuração do SSH

De seguida vamos proceder à instalação e configuração do SSH.

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

user@ubuntu:~$ 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 um single-node, necessitamos de configurar o SSH para aceder ao localhost.

Vamos entrar com o utilizador hadoopusr:

O próximo passo é gerar uma chave publica SSH para o hadoopusr

hadoopusr@ubuntu:~$ ssh-keygen -t rsa -P “”

De seguida, vamos adicionar a chave gerada anteriormente para a lista de authorized_keys. Para isso, basta executar o seguinte comando:

hadoopusr@ubuntu:~$ cat $HOME/ .ssh/id_rsa.pub >> $HOME/ .ssh/authorized_keys

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

hadoopusr@ubuntu:~$ ssh localhost

No fim, deve executar o comando exit para terminar a ligação.

Passo 3) Instalação e configuração do Hadoop

Vamos agora proceder ao download do Hadoop 2.9.1.

A ficheiro ficará no ambiente de trabalho. Para isso, basta executar o seguinte comando:

hadoopusr@ubuntu:~$ sudo wget -P /home/user/Desktop http://mirrors.sonic.net/apache/hadoop/common/hadoop-2.9.1/hadoop-2.9.1.tar.gz

Mudamos o diretório para o Desktop para proceder à descompactação da pasta do Hadoop

hadoopusr@ubuntu:~$ cd /home/user/Desktop
hadoopusr@ubuntu:~$ sudo tar xvzf hadoop-2.9.1.tar.gz

Feita a descompactação, vamos mover a pasta para o diretório /usr/local/hadoop

hadoopusr@ubuntu:~$ sudo mv hadoop-2.9.1 /usr/local/hadoop

Vamos atribuir a propriedade da pasta ‘hadoop’ ao utilizador hadoopusr

hadoopusr@ubuntu:~$ sudo chown -R hadoopusr /usr/local

Para alteração de ficheiro pode ser usada o nano ou gedit, em geral o nano é mais simples de utilizar e causa menos problemas.

Procedamos agora à configuração de diversos ficheiros. A configuração do Apache Hadoop deverá começar pela definição das seguintes variáveis de ambiente que deverão estar no ficheiro ~/.bashrc.

hadoopusr@ubuntu:~$ sudo nano ~/.bashrc

Depois de executar o comando anterior, deve copiar as seguintes configurações para o final do ficheiro:

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

Clique em ‘Save’ e depois, para que a configuração seguinte tenha efeito na sessão corrente, basta que use o comando:

hadoopusr@ubuntu:~$ source ~/.bashrc

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

hadoopusr@ubuntu:~$ cd /usr/local/hadoop/etc/hadoop/
hadoopusr@ubuntu:~$ sudo nano hadoop-env.sh

Basta adicionar a seguinte linha ao ficheiro, colocando a que já lá está em comentário, utilizando um ‘#’ antes da frase.

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

Nota: Dependendo da versão do java que tem instalado na máquina, deve alterar o último nome do caminho (java-8-openjdk-amd64). Tipicamente, só necessita de alterar o número da versão do java.

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

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

Se conseguiu chegar até aqui, pode vangloriar-se para todos os seus amigos de que conseguiu instalar o Apache Hadoop com sucesso!

--

--