Como instalar o Apache Kafka no Ubuntu 20.04

3 de março de 2021 Off Por sudoroot

Apache Kafka é uma plataforma de streaming de eventos distribuída de código aberto desenvolvida pela Apache Software Foundation. Isso foi escrito nas linguagens de programação Scala e Java. Você pode instalar o Kafka em qualquer plataforma Java compatível.

Este tutorial descreveu o tutorial passo a passo para instalar o Apache Kafka no sistema Ubuntu 20.04 LTS Linux. Você também aprenderá a criar tópicos no Kafka e a executar nós de produtor e consumidor.

Pré-requisitos

Você deve ter acesso de conta com privilégios sudo ao sistema Ubuntu 20.04 Linux.

Etapa 1 – Instalando o Java

O Apache Kafka pode ser executado em todas as plataformas Java com suporte. Para configurar o Kafka no sistema Ubuntu, você precisa instalar o java primeiro. Como sabemos, o Oracle java já está disponível comercialmente, por isso estamos usando sua versão open source OpenJDK.

Execute o comando abaixo para instalar o OpenJDK em seu sistema a partir dos PPAs oficiais.

atualização do apt sudo 
sudo apt install default-jdk

Verifique a versão Java ativa atual.

java --version 

versão openjdk "11.0.9.1" 2020-11-04
OpenJDK Runtime Environment (compilação 11.0.9.1 + 1-Ubuntu-0ubuntu1.20.04)
Servidor VM OpenJDK de 64 bits (compilação 11.0.9.1 + 1-Ubuntu-0ubuntu1.20.04, modo misto, compartilhamento)

Etapa 2 – Baixe o Apache Kafka mais recente

Baixe os arquivos binários do Apache Kafka de seu site oficial de download . Você também pode selecionar qualquer espelho próximo para fazer o download.

wget http://www-us.apache.org/dist/kafka/2.7.0/kafka_2.13-2.7.0.tgz

Em seguida, extraia o arquivo compactado

tar xzf kafka_2.13-2.7.0.tgz
mv kafka_2.13-2.7.0 / usr / local / kafka

Etapa 3 – Criação de arquivos de unidade Systemd

Agora, você precisa criar arquivos de unidade systemd para os serviços Zookeeper e Kafka. O que o ajudará a iniciar / interromper o serviço Kafka de maneira fácil.

Primeiro, crie um arquivo de unidade systemd para Zookeeper:

vim /etc/systemd/system/zookeeper.service

E adicione o seguinte conteúdo:

[Unidade]
Descrição = servidor Apache Zookeeper
Documentação = http: //zookeeper.apache.org
Requer = network.target remote-fs.target
Depois de = network.target remote-fs.target

[Serviço]
Tipo = simples
ExecStart = / usr / local / kafka / bin / zookeeper-server-start.sh /usr/local/kafka/config/zookeeper.properties
ExecStop = / usr / local / kafka / bin / zookeeper-server-stop.sh
Reiniciar = anormal

[Instalar]
WantedBy = multi-user.target

Salve o arquivo e feche-o.

A seguir, para criar um arquivo de unidade systemd para o serviço Kafka:

vim /etc/systemd/system/kafka.service

Adicione o conteúdo abaixo. Certifique-se de definir o caminho JAVA_HOME correto de acordo com o Java instalado em seu sistema.

[Unidade]
Descrição = Servidor Apache Kafka
Documentation = http: //kafka.apache.org/documentation.html
Requer = zookeeper.service

[Serviço]
Tipo = simples
Environment = "JAVA_HOME = / usr / lib / jvm / java-1.11.0-openjdk-amd64"
ExecStart = / usr / local / kafka / bin / kafka-server-start.sh /usr/local/kafka/config/server.properties
ExecStop = / usr / local / kafka / bin / kafka-server-stop.sh

[Instalar]
WantedBy = multi-user.target

Salve o arquivo e feche.

Recarregue o daemon systemd para aplicar as novas alterações.

systemctl daemon-reload

Etapa 4 – Inicie o serviço Kafka e Zookeeper

Primeiro, você precisa iniciar o serviço ZooKeeper e, em seguida, iniciar o Kafka. Use o comando systemctl para iniciar a instância do ZooKeeper de nó único.

sudo systemctl start zookeeper

Agora inicie o servidor Kafka e veja o status de execução:

sudo systemctl start kafka
sudo systemctl status kafka

Serviço Kafka no ubuntu

Tudo feito. A instalação do Kafka foi concluída com sucesso. A parte deste tutorial o ajudará a trabalhar com o servidor Kafka.

Etapa 5 – Criar um tópico no Kafka

O Kafka fornece vários scripts de shell pré-construídos para trabalhar nele. Primeiro, crie um tópico denominado “testTopic” com uma única partição com uma única réplica:

cd / usr / local / kafka
bin / kafka-topics.sh --create --zookeeper localhost: 2181 --fator de replicação 1 --partições 1 --topic testTopic

Criado o tópico testTopic.

O fator de replicação descreve quantas cópias de dados serão criadas. Como estamos executando com uma única instância, mantenha este valor 1.

Defina as opções de partições como o número de corretores pelos quais deseja que seus dados sejam divididos. Como estamos trabalhando com uma única corretora mantenha este valor 1.

Você pode criar vários tópicos executando o mesmo comando acima. Depois disso, você pode ver os tópicos criados no Kafka executando o comando abaixo:

bin / kafka-topics.sh --list --zookeeper localhost: 2181

[resultado]
testTopic

Como alternativa, em vez de criar tópicos manualmente, você também pode configurar seus brokers para criar tópicos automaticamente quando um tópico inexistente for publicado.

Etapa 6 – enviar e receber mensagens no Kafka

O “produtor” é o processo responsável por colocar os dados em nosso Kafka. O Kafka vem com um cliente de linha de comando que obtém a entrada de um arquivo ou da entrada padrão e a envia como mensagens para o cluster Kafka. O Kafka padrão envia cada linha como uma mensagem separada.

Vamos executar o produtor e, em seguida, digitar algumas mensagens no console para enviar ao servidor.

bin / kafka-console-producer.sh --broker-list localhost: 9092 --topic testTopic

> Bem-vindo ao kafka
> Este é o meu primeiro tópico
>

Você pode sair deste comando ou manter este terminal em execução para mais testes. Agora abra um novo terminal para o processo do consumidor Kafka na próxima etapa.

Etapa 7 – Uso do consumidor Kafka

O Kafka também tem um consumidor de linha de comando para ler dados do cluster Kafka e exibir mensagens na saída padrão.

bin / kafka-console-consumer.sh --bootstrap-server localhost: 9092 --topic testTopic --from-begin

Bem vindo ao kafka
Este é o meu primeiro tópico

Agora, se você ainda estiver executando o produtor Kafka (Etapa # 6) em outro terminal. Basta digitar algum texto no terminal do produtor. ficará imediatamente visível no terminal do consumidor. Veja a captura de tela abaixo do produtor e consumidor Kafka trabalhando:

Conclusão

Este tutorial ajudou você a instalar e configurar o serviço Apache Kafka em um sistema Ubuntu. Além disso, você aprendeu a criar um novo tópico no servidor Kafka e a executar um processo de produção e consumidor de amostra com o Apache Kafka.