Apache Hadoop — Ubuntu 18.04(Master-Slave)
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