Projeto feito por Joao Saraiva e Diogo-Biscaia
O que é o Spark Cluster:
Um mecanismo implementado pelo Hadoop, que oferece um simples e expressivo modelo de programação que suporta um vasto nivel de aplicações, incluindo ETL, “machine learning”, processamento de streaming, e computação grafica.
Pré-requisitos:
- Ubuntu 18.04 (3 máquinas virtualizadas no VirtualBox ou outra plataforma);
Passo 1 (Maquina incial):
Para a maquina inicial vamos usar o linux e o ubuntu(64-bit).

Cuidado com a quantidade de ram escolhida pois se quiser as 3 maquinas a funcionar ao mesmo tempo vai usar muitos recursos e pode dar problemas.




Passo 2 (Clonagem e iniciação das maquinas):
Para iniciar-mos a criação das nossas maquinas vamos fazer o clone da maquina que acabamos de criar.


Para os dados do Network da maquina vamos alterar as configurações para poder usar o spark . Utilize as opções seguintes nas 3 maquinas:

Tendo a maquina a funcionar corretamente podemos passar á configuração da maquina no terminal do ubuntu.
Vamos alterar os nomes das maquinas para facilitar a sua configuração:
Para tal, acedemos a:
sudo nano /etc/hostname

Para o nosso master, ou seja a nossa maquina principal:

E para os slaves, ou maquinas secundarias:


Precisamos também de verificar o ip da maquina principal para fazermos a configuração das secundarias.
ip addr

Como é demonstrado pela imagem anterior o ip da maquina principal é 192.168.56.101 pelo que os ip’s das outras máquinas serão os seguintes:
Master → 192.168.56.101
Slave 1 → 192.168.56.102
Slave 2 →192.168.56.103
Para tal temos de inserir estes ips nas nossas máquinas. Usamos então o comando:
sudo nano /etc/hosts

A configuração deve ser semelhante á seguinte:

Neste momento resta-nos reiniciar as máquinas, da seguinte maneira.
sudo reboot
Vamos instalar o java 11 em todas as nossas máquinas.
Esta instalação é feita da seguinte maneira.
$ sudo apt-get install software_properties_common
$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt-get update
$ sudo apt-get install openjdk-11-jdk
Para verificar se ficou instalado:

Vamos também instalar o scala em todas as máquinas.

Vamos tambem precisar de instalar o openssh-server nas nossas máquinas.

Após a instalação vamos criar uma chave ssh:

Copiamos a chave publica para o ficheiro de chaves autorizadas.

Agora precisamos de copiar a chave para os slaves.
ssh-copy-id user@slave1
ssh-copy-id user@slave2


Para verificar se tudo correu como planeado vamos tentar conectarmo-nos aos nossos slaves a partir do master.


Passo 3 (Instalação do Spark):
Vamos então instalar o Apache Spark no master.

Após a instalação vamos extrair o ficheiro:

Vamos mover o Apache Spark para o diretório necessário.

Precisamos de editar o ficheiro .bashrc.

No final do ficheiro vamos adicionar o export.


Vamos mover o spark e copiar o template.

No fim do documento temos de inserir o seguinte.
export SPARK_MASTER_HOST='<MASTER-IP>'export JAVA_HOME=<Path_of_JAVA_installation>

Nota → este comando deve ser escrito todo na mesma linha para obtermos o pretendido.
Neste momento vamos adicionar os nossos Workers.

Precisamos de adicionar o seguinte:

Vamos iniciar o Apache Spark.

Para verificar se está a funcionar corretamente:

Se correu tudo como planeado basta irmos ao browser e no link https:IP_DO_MASTER:8080/ que no nosso caso é o seguinte https:192.168.56.101:8080/.

Se chegou a este ponto pode vangloriar-se porque acabou de instalar o Spark Cluster.