Instalar e configurar um cluster Apache Spark no Hadoop Ubuntu 18.04 (Multi-Node)

Vagner Bom Jesus
7 min readJun 1, 2021

Neste artigo, fornecerei instruções passo a passo sobre como instalar o Apache Spark em um cluster em dois Slave.

Apache Spark é uma estrutura de processamento de dados que pode executar rapidamente tarefas de processamento em conjuntos de dados muito grandes e também pode distribuir tarefas de processamento de dados em vários computadores, por conta própria ou em conjunto com outras ferramentas de computação distribuídas.

Arquitetura Spark

O Apache Spark segue uma arquitetura mestre / escravo com dois daemons principais e um gerenciador de cluster.

  • Master Daemon — (Processo Master / Driver)
  • Worker Daemon — (processo escravo)
  • Gerenciador de clusters

Um cluster de faísca tem um único mestre e qualquer número de escravos / trabalhadores. O driver e os executores executam seus processos Java individuais e os usuários podem executá-los no mesmo cluster spark horizontal ou em máquinas separadas.

Pré-requisitos:

  • Ubuntu 18.04 instalado numa máquina virtual

1º Passo:

Configuração da rede..:

Adapter 1
Adapter 2

1º Passo:

Agora, para instalar o Java, precisamos fazer algumas coisas. Siga estes comandos e dê permissão quando necessário:

 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
sudo apt-get install software_properties_common
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update

Para verificar se o java está instalado, execute o seguinte comando.

java -version

2º Passo:

Agora vamos instalar o Scala. Use este comando:

sudo apt-get install scala
install scala

Para verificar se o Scala foi instalado corretamente e a versão, execute este comando:

scala -version
version scala

Como você pode ver, o Scala versão 2.11.12 agora está instalado em minha máquina.

3º Passo:

Vamos configurar o SSH, mas esta etapa é apenas no mestre, precisamos instalar o Open SSH Server-Client , use o comando:

sudo apt-get install openssh-server openssh-client

Digite “Y” e depois Enter para continuar o processo de instalação.

4º Passo:

Crie 2 clones da Máquina Virtual

Certifique-se de que a opção “Generate new MAC addresses for all network adapters” de rede esta selecionado. Além disso, escolha a opção “Full Clone”.

Generate new MAC addresses for all network adapters
Full Clone

5º Passo:

Vamos alterar o hostname em cada máquina virtual. Abra o arquivo e digite o nome da máquina. Use este comando:

sudo nano /etc/hostname
hostname
master
slave1
slave2

6º Passo:

Agora vamos descobrir qual é o nosso endereço IP. Para fazer isso, basta digitar o comando:

ip addr
ip addr

Podemos ver que o ip da maquina é 192.168.56.101

Então a nossa configuração vai ser

  • master: 192.168.56.101
  • slave1: 192.168.56.102
  • slave2: 192.168.56.103

7º Passo:

Abra o ficheiro hosts no editor nano. O ficheiro está localizado no diretório /etc.

sudo nano /etc/hosts

Para guardar as alterações que você fez, pressione Ctrl + O, depois pressione Enter, para guardar com o mesmo nome. Para sair do editor de texto nano, pressione Ctrl + X.

Reinicie a máquina para a configuração ter efeito em todas as máquinas.

sudo reboot

8º Passo:

Crie uma chave ssh com o comando abaixo:

ssh-keygen -t rsa -P ""
ssh-keygen

9º Passo:

Use o seguinte comando para tornar esta chave autorizada:

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

Copiamos a chave ssh para todos os utilizadores

ssh-copy-id user@master
ssh-copy-id user@slave1
ssh-copy-id user@slave2
user@master
user@slave1 and user@slave2

10º Passo:

Vamos verificar se deu tudo certo, tente conectar nos escravos:

ssh slave1 
ssh slave2
slave1
slave2

Como você pode ver tudo correu bem, para sair basta digitar o comando:

exit

11º Passo:

Agora vamos baixar a versão mais recente do Apache Spark.

NOTA: Tudo dentro desta etapa deve ser feito em todas as máquinas virtuais.

Use o seguinte comando:

wget http://www-us.apache.org/dist/spark/spark-3.1.1/spark-3.1.1-bin-hadoop2.7.tgz

Esta é a versão mais recente no momento da redação deste artigo, ela pode ter mudado se você tentar mais tarde. De qualquer forma, acho que você ainda será bom usando este.

Extraia o arquivo Apache Spark que você acabou de baixar

Use o seguinte comando para extrair o arquivo Spark tar:

tar xvf spark-3.1.1-bin-hadoop2.7.tgz
spark-3.1.1-bin-hadoop2.7.tgz

Mover arquivos de software Apache Spark

Use o seguinte comando para mover os arquivos do software spark para o respectivo diretório ( /usr/local/bin ):

sudo mv spark-3.1.1-bin-hadoop2.7 /usr/local/spark
spark-3.1.1-bin-hadoop2.7 /usr/local/spark

Configure o ambiente para Apache Spark

Edite o arquivo .bashrc usando este comando:

sudo nano ~/.bashrc

Adicione a seguinte linha ao arquivo. Isso adiciona o local onde o arquivo do software spark está localizado à variável PATH.

export PATH = $PATH:/usr/local/spark/bin

Para guardar as alterações que você fez, pressione Ctrl + O, depois pressione Enter, para guardar com o mesmo nome. Para sair do editor de texto nano, pressione Ctrl + X.

Agora precisamos usar o seguinte comando para fornecer o arquivo ~ / .bashrc :

source ~/.bashrc
source ~/.bashrc

12º Passo:

Configuração master do Apache Spark (execute esta etapa apenas na máquina master)

Editar spark-env.sh

Mova para a pasta spark conf, crie uma cópia do modelo de spark-env.sh e renomeie-o.

cd /usr/local/spark/conf cp spark-env.sh.template spark-env.sh
spark-env.sh

13º Passo:

Agora edite o arquivo de configuração spark-env.sh.

$ sudo vim spark-env.sh

E adicione os seguintes parâmetros:

export SPARK_MASTER_HOST = '<MASTER-IP>' export JAVA_HOME = <Path_of_JAVA_installation>
spark-env.sh

14º Passo:

Adicionar Workers

Edite o arquivo de configuração em ( /usr/local/spark/conf).

sudo nano slaves

15º Passo:

Vamos tentar iniciar nosso Apache Spark Cluster, espero que esteja tudo bem!

Para iniciar o cluster Spark, execute o seguinte comando no master:

cd /usr/local/spark./sbin/start-all.sh

Não vou parar, mas caso você queira parar o cluster, este é o comando:

./sbin/stop-all.sh

16º Passo:

Para verificar se os serviços foram iniciados usamos o comando:

jps

17º Passo:

Navegue na IU do Spark para saber sobre seu cluster. Para fazer isso, vá para o seu navegador e digite:

master:8080/

Como está demonstrado na imagem anterior verificamos que é possível ver os ip’s dos nossos workers, em que vemos o nosso slave 1, slave 2 e o nosso master. Que demonstra que estão os 3 a trabalhar em simultâneo.

18º Passo:

Usando o Spark shell com o comando:

spark-shell

Para sair de uma sessão Scala do Spark, você pode digitar o comando :q e de seguida Enter.

Navegue na IU do Spark . Para fazer isso, vá para o seu navegador e digite:

master:4040/

Se desligarmos o nosso slave2 e efetuarmos o start (como demonstrado anteriormente), no browser verificamos o seguinte.

Conclusão:

Com isto chegamos ao fim.

Espero que você tenha sucesso, e este artigo seja útil.

Qualquer dúvida fique à vontade para me perguntar.

Bibliografia:

[1]: How to Install Spark on Ubuntu (link)

[2]: How to Install Apache Spark on Ubuntu 20.04 (link)

--

--