Apache Hadoop — Ubuntu 18.04(Master-Slave)

Tiago Santos
4 min readJun 4, 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.

  • Hadoop MapReduce

Modelo de programação para processamento em larga escala.

A figura seguinte representa o modelo de programação MapReduce

Network

VirtualBox Network Adapter 2

Instalar SSH

Abra o terminal e escreva:

sudo apt get install ssh

Instalar PDSH ]

sudo apt install pdsh

BASHRC File

nano. bashrc

No fim do docomento adicione:

export PDSH_RCMD_TYPE=ssh

Nova Chave

ssh-keygen -t rsa -P “”

Copie a chave publica to authorized_keys:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

Para ver se esta tudo ligado:

ssl localhost

Instalar JAVA 8

Para instalar o JAVA8

sudo apt install opnejdk-8-jdk

Confira a versão.

java -version

Download Hadoop 3.2.1

sudo wget -P ~ https://mirrors.sonic.net/apache/hadoop/common/hadoop-3.2.1/hadoop-3.2.1.tar.gz

De seguida é necessário extrair o ficheiro

tar xzf hadoop-3.2.1.tar.gz
mv hadoop-3.2.1 hadoop

Ver o Java’s path

ls /usr/lib/jvm/java-8-openjdk-amd64/

Editar hadoop-env.sh

Path:

nano ~/hadoop/etc/hadoop/hadoop-env.sh

Adicionar a seguinte linha:

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

Mudar o diretorio do hadoop para /usr/local/hadoop:

sudo mv hadoop /usr/local/hadoop

Editar Environment

Path:

sudo nano /etc/environment

Adicionar antes das aspas:

:/usr/local/hadoop/bin:/usr/local/hadoop/sbin

Adicionar por baixo:

JAVA_HOME=”/usr/lib/jvm/java-8-openjdk-amd64/jre”

Criar um novo user

Para mudar os privilegios usar:

sudo usermod -aG hadoopuser hadoopusersudo chown hadoopuser:root -R /usr/local/hadoop/

Mudar as permissões do diretorio:

sudo chmod g+rwx -R /usr/local/hadoop/sudo adduser hadoopuser sudo

Ver IP

ip addr

Usar a linha acima para ver o seu IP o meu é 192.168.56.103.

Configure Hostnames for the Machines

sudo nano /etc/hosts

Adcionar os IP’s seguintes com o nome como na figura a baixo

Cloning

É necessario agora clonar a maquina, vamos criar dois clones.

Configurar Hostnames

Primaria

sudo nano /etc/hostname

Secondaria

sudo nano /etc/hostname

Copiar a SSH Keys

Na maquina principal mudar para hadoopuser

Criar uma nova chave:

ssh-keygen -t rsa

Copiar a chave para todas as maquinas:

ssh-copy-id hadoopuser@hadoop-primaryssh-copy-id hadoopuser@hadoop-secondary-1ssh-copy-id hadoopuser@hadoop-secondary-2

Editar core-site.xml

sudo nano /usr/local/hadoop/etc/hadoop/core-site.xml<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop-primary:9000</value>
</property>

Editar hdfs-site.xml

sudo nano /usr/local/hadoop/etc/hadoop/hdfs-site.xml

Adicionar a seguinte configuração:

<property>
<name>dfs.namenode.name.dir</name>
<value>/usr/local/hadoop/data/nameNode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/usr/local/hadoop/data/dataNode</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
sudo nano /usr/local/hadoop/etc/hadoop/workers

Adiconar hostnames:

hadoop-secondary-1
hadoop-secondary-2

Copie a configuração da primaria para as secondarias

Secondaria 1

scp /usr/local/hadoop/etc/hadoop/* hadoop-secondary-1:/usr/local/hadoop/etc/hadoop/

Secondaria 2

scp /usr/local/hadoop/etc/hadoop/* hadoop-secondary-2:/usr/local/hadoop/etc/hadoop/

Para ler e executar:

source /etc/environmenthdfs namenode -format

Arrancar com o serviço dfs:

start-dfs.sh

Note: User o JPS para ver se esta tudo a correr com os conformes

Configuração do Yarn

Primaria

Usar os seguintes códigos:

export HADOOP_HOME=”/usr/local/hadoop”export HADOOP_COMMON_HOME=$HADOOP_HOMEexport HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoopexport HADOOP_HDFS_HOME=$HADOOP_HOMEexport HADOOP_MAPRED_HOME=$HADOOP_HOMEexport HADOOP_YARN_HOME=$HADOOP_HOME

Secondarias

On the Secondary’s machines we will add some configurations in some files:

[ yarn-site.xml ]

sudo nano /usr/local/hadoop/etc/hadoop/yarn-site.xml

Adicionar a seguinte configuração:

<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop-primary</value>
</property>

Arrancar o serviço:

start-yarn.sh

para verificar a lista:

yarn node -list

Na maquina principal abrir o browser e abrir o seguint URL: hadoop-primary:8088/cluster

Nodes

--

--