Como instalar o Apache Flink 1.7.2 em Multi-Node Cluster no Ubuntu 18.04 usando VirtualBox
Introdução
O Apache Flink é a ferramenta de ultima geração do Big Data, conhecido como o 4G do Big Data.
- É uma true stream processing framework , ou seja não corta a stream em micro-batches.
- O kernel ou core do Flink é um streaming runtime que também tem a capacidade de processamento distribuído, tolerância a falhas, etc.
- O Flink processa eventos a uma velocidade elevada constante com baixa latência.
- É uma framework de processamento de dados de larga escala com capacidade de processar dados gerados a grandes velocidades.
O Apache Flink é uma plataforma open source que pode responder aos seguintes requisitos de forma efectiva:
- Batch Processing
- Interactive processing
- Real-time stream processing
- Graph Processing
- Iterative Processing
- In-memory processing
O Flink é uma alternativa ao MapReduce, consegue processar dados 100 vezes mais rápido que o Mapreduce. É independente do Hadoop mas pode utilizar o HDFS para ler, escrever, guardar e processar dados. O Flink não tem um sistema de armazenamento de dados. Ele retira os dados do armazenamento distribuído.
Neste tutorial vamos instalar Apache Flink 1.7.2 em Multi-Node Cluster no Ubuntu 18.04 usando VirtualBox.
Pré-requisitos:
Hardware:
Processador com mais de 3 cores e +4GB de RAM.
Software:
É necessário que tenha o VirtualBox instalado.
Criar Rede Interna
Procurar a pasta de instalação da VirtualBox
Shift + Botão direito do rato
Colocar o seguinte comando
VBoxManage dhcpserver add --netname intnet --ip 10.0.1.1 --netmask 255.255.255.0 --lowerip 10.0.1.2 --upperip 10.0.1.200 --enable
Criar Máquina Virtual
Dentro da virtual box criar uma máquina Virtual
Após criar a máquina virtual colocar um adaptador de rede interna
Instalar o Ubuntu 18.04
Instale o Ubuntu com requisitos minimos
Instalar componentes
Após iniciar o Ubuntu, abrir o terminal
Passo 1. Instalar net utilities
sudo apt install net-tools
Passo 2. Instalar python-software-properties
sudo apt-get install software-properties-common
Passo 3. Adicionar repositório
sudo add-apt-repository ppa:webupd8team/java
Passo 4. Actualizar o source list
sudo apt-get update
Passo 5. Instalar o Java
sudo apt-get install oracle-java8-installer
Aceite as próximas 2 opções
Configurar SSH
Passo 1. Instalar o Open SSH Server-Client
sudo apt-get install openssh-server openssh-client
Passo 2. Gerar Key Pairs
ssh-keygen -t rsa -P ""
Passo 3. Configurar SSH sem password
cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys
Instalar o Apache Flink
Passo 1. Descarregar o Flink
sudo wget -P /home/flink/Desktop https://archive.apache.org/dist/flink/flink-1.7.2/flink-1.7.2-bin-hadoop28-scala_2.11.tgz
Passo 2. Mudar para o local onde descarregamos o Flink, neste caso o ambiente de trabalho
cd /home/flink/Desktop
Passo 3. Descompactar o ficheiro
sudo tar xzf flink-1.7.2-bin-hadoop28-scala_2.11.tgz
Passo 4. Mover o Flink para a pasta do utilizador
sudo mv flink-1.7.2 /home/flink/flink
Configurar o Apache Flink
Passo 1. Editar o ficheiro de configuração
Mudar para o seguinte directório e editar o ficheiro flink-conf.yaml
cd /home/flink/flink/conf
sudo gedit flink-conf.yaml
Para verificarmos o ip da placa de rede interna nossa máquina virtual usamos o comando
ifconfig
Colocar o ip do Master Node após jobmanager.rpc.address: e alterar os valores dos heap sizes do jobmanager e do taskmanager em flink-conf.yaml
jobmanager.rpc.address: 10.0.1.3
jobmanager.heap.size: 256m
taskmanager.heap.size: 256m
Passo 2. Clonar a Máquina Virtual para criar os 2 Slaves
Passo 3. Adicionar os ips de todos os Worker Nodes ou Slaves em conf/slaves em todas as máquinas.
cd /home/flink/flink/conf
sudo gedit slaves
Passo 4. Mudar o hostname dos Slaves
sudo gedit /etc/hostname
Colocar em cada um o respectivo hostname
flinkslave1flinkslave2
Passo 5. Reiniciar os Slaves
sudo reboot
Passo 6. Testar o ssh com todas as máquinas
ssh ip_do_master 10.0.1.3
exit
ssh ip_do_slave_1 10.0.1.4
exit
ssh ip_do_slave_2 10.0.1.6
exit
Iniciar o Apache Flink
No Master:
cd /home/flink/flink/
bin/start-cluster.sh
Verificar os daemons no Master
jps
Verificar os daemons nos Slaves
jps
Aceder a http://localhost:8081 no browser para visualizarmos o Dashboard
Se tudo estiver a correr bem, vamos ter 2 task managers com as duas slots livres.
Para terminar o cluster basta usar
bin/stop-cluster.sh
Exemplo: WordCount
Passo 1. Criar pasta data no desktop, criar e editar um ficheiro de texto sample
cd /home/flink/Desktop
sudo mkdir data
cd data
sudo gedit sample.txt
Passo 2. Adicionar o seguinte texto
Olá , com este ficheiro nos vamos testar se o flink consegue correr o Wordcount.
O Wordcount é o “hello world” dos sistemas distribuidos.
Passo 3. Correr o WordCount
Vamos usar o ficheiro sample.txt como input e um ficheiro output
bin/flink run /examples/batch/WordCount.jar --input /home/flink/Desktop/data/sample.txt --output /home/flink/Desktop/data/output
O output aparecerá na Máquina que ficou encarregue de executar o trabalho.
Verifique os Desktops de ambas as máquinas.
Resultado do WordCount:
Com isto terminamos o tutorial.