Apache Hadoop — Instalação e configuração de um cluster no Ubuntu 18 (Single-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
Para verificar a versão do java use o comando:
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!