Apache Hadoop 2.9.1: Instalação e configuração de um cluster no Ubuntu 18.04 Single Node
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.