GNU/Linux >> Znalost Linux >  >> Linux

Jak nainstalovat kafka na RHEL 8

Apache Kafka je distribuovaná streamovací platforma. S jeho bohatou sadou API (Application Programming Interface) můžeme ke Kafkovi jako zdroji dat připojit většinou cokoli a na druhé straně můžeme nastavit velké množství spotřebitelů, kteří budou dostávat páru záznamů ke zpracování. Kafka je vysoce škálovatelný a ukládá toky dat spolehlivým a odolným způsobem. Z hlediska konektivity může Kafka sloužit jako most mezi mnoha heterogenními systémy, které se zase mohou spolehnout na své schopnosti přenášet a uchovávat poskytovaná data.

V tomto tutoriálu nainstalujeme Apache Kafka na Red Hat Enterprise Linux 8, vytvoříme systemd jednotkové soubory pro snadnou správu a otestujte funkčnost pomocí dodaných nástrojů příkazového řádku.

V tomto tutoriálu se naučíte:

  • Jak nainstalovat Apache Kafka
  • Jak vytvořit systémové služby pro Kafku a Zookeeper
  • Jak otestovat Kafku pomocí klientů příkazového řádku

Konzumace zpráv na téma Kafka z příkazového řádku.

Požadavky na software a použité konvence

Softwarové požadavky a konvence příkazového řádku systému Linux
Kategorie Požadavky, konvence nebo použitá verze softwaru
Systém Red Hat Enterprise Linux 8
Software Apache Kafka 2.11
Jiné Privilegovaný přístup k vašemu systému Linux jako root nebo prostřednictvím sudo příkaz.
Konvence # – vyžaduje, aby dané linuxové příkazy byly spouštěny s právy root buď přímo jako uživatel root, nebo pomocí sudo příkaz
$ – vyžaduje, aby dané linuxové příkazy byly spouštěny jako běžný neprivilegovaný uživatel

Jak nainstalovat kafka na Redhat 8 krok za krokem

Apache Kafka je napsán v Javě, takže vše, co potřebujeme, je nainstalovat OpenJDK 8, abychom mohli pokračovat v instalaci. Kafka spoléhá na Apache Zookeeper, distribuovanou koordinační službu, která je také napsána v Javě a je dodávána s balíčkem, který si stáhneme. Instalace služeb HA (High Availability) do jednoho uzlu sice ničí jejich účel, ale kvůli Kafkovi nainstalujeme a spustíme Zookeeper.

  1. Chcete-li stáhnout Kafku z nejbližšího zrcadla, musíme se podívat na oficiální stránku pro stahování. Můžeme zkopírovat URL z .tar.gz soubor odtud. Použijeme wget a vloženou URL pro stažení balíčku do cílového počítače:
    # wget https://www-eu.apache.org/dist/kafka/2.1.0/kafka_2.11-2.1.0.tgz -O /opt/kafka_2.11-2.1.0.tgz
  2. Zadáme /opt adresář a rozbalte archiv:
    # cd /opt
    # tar -xvf kafka_2.11-2.1.0.tgz

    A vytvořte symbolický odkaz s názvem /opt/kafka který ukazuje na nyní vytvořený /opt/kafka_2_11-2.1.0 adresář, který nám usnadní život.

    ln -s /opt/kafka_2.11-2.1.0 /opt/kafka
  3. Vytváříme neprivilegovaného uživatele, který bude spouštět oba zookeeper a kafka služby.
    # useradd kafka
  4. A nastavte nového uživatele jako vlastníka celého adresáře, který jsme extrahovali, rekurzivně:
    # chown -R kafka:kafka /opt/kafka*
  5. Vytváříme soubor jednotky /etc/systemd/system/zookeeper.service s následujícím obsahem:
    [Unit]
    Description=zookeeper
    After=syslog.target network.target
    
    [Service]
    Type=simple
    
    User=kafka
    Group=kafka
    
    ExecStart=/opt/kafka/bin/zookeeper-server-start.sh /opt/kafka/config/zookeeper.properties
    ExecStop=/opt/kafka/bin/zookeeper-server-stop.sh
    
    [Install]
    WantedBy=multi-user.target

    Všimněte si, že kvůli symbolickému odkazu, který jsme vytvořili, nemusíme psát číslo verze třikrát. Totéž platí pro další soubor jednotky pro Kafku, /etc/systemd/system/kafka.service , který obsahuje následující řádky konfigurace:

    [Unit]
    Description=Apache Kafka
    Requires=zookeeper.service
    After=zookeeper.service
    
    [Service]
    Type=simple
    
    User=kafka
    Group=kafka
    
    ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
    ExecStop=/opt/kafka/bin/kafka-server-stop.sh
    
    [Install]
    WantedBy=multi-user.target
  6. Musíme znovu načíst systemd aby si přečetl nové soubory jednotek:
    # systemctl daemon-reload
  7. Nyní můžeme spustit naše nové služby (v tomto pořadí):
    # systemctl start zookeeper
    # systemctl start kafka

    Pokud vše půjde dobře, systemd by měl hlásit provozní stav o stavu obou služeb, podobně jako níže uvedené výstupy:

    # systemctl status zookeeper.service
      zookeeper.service - zookeeper
       Loaded: loaded (/etc/systemd/system/zookeeper.service; disabled; vendor preset: disabled)
       Active: active (running) since Thu 2019-01-10 20:44:37 CET; 6s ago
     Main PID: 11628 (java)
        Tasks: 23 (limit: 12544)
       Memory: 57.0M
       CGroup: /system.slice/zookeeper.service
                11628 java -Xmx512M -Xms512M -server [...]
    
    # systemctl status kafka.service
      kafka.service - Apache Kafka
       Loaded: loaded (/etc/systemd/system/kafka.service; disabled; vendor preset: disabled)
       Active: active (running) since Thu 2019-01-10 20:45:11 CET; 11s ago
     Main PID: 11949 (java)
        Tasks: 64 (limit: 12544)
       Memory: 322.2M
       CGroup: /system.slice/kafka.service
                11949 java -Xmx1G -Xms1G -server [...]
  8. Volitelně můžeme povolit automatické spouštění při spouštění pro obě služby:
    # systemctl enable zookeeper.service
    # systemctl enable kafka.service
  9. Abychom otestovali funkčnost, připojíme se ke Kafkovi s jedním produkčním a jedním spotřebitelským klientem. Zprávy poskytnuté výrobcem by se měly objevit na konzole spotřebitele. Ale předtím potřebujeme médium, na kterém si tyto dvě zprávy vyměňují. Vytváříme nový kanál dat s názvem topic v podmínkách Kafky, kde bude poskytovatel zveřejňovat a kde se spotřebitel přihlásí k odběru. Téma nazveme
    FirstKafkaTopic . Použijeme kafka uživatel k vytvoření tématu:

    $ /opt/kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic FirstKafkaTopic
  10. Spustíme spotřebitelského klienta z příkazového řádku, který se přihlásí k odběru (v tomto okamžiku prázdného) tématu vytvořeného v předchozím kroku:
    $ /opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic FirstKafkaTopic --from-beginning

    Konzolu a v ní spuštěného klienta necháme otevřenou. Tato konzole je místo, kde obdržíme zprávu, kterou zveřejníme s produkčním klientem.

  11. Na jiném terminálu spustíme produkčního klienta a publikujeme nějaké zprávy k tématu, které jsme vytvořili. Můžeme se zeptat Kafky na dostupná témata:
    $ /opt/kafka/bin/kafka-topics.sh --list --zookeeper localhost:2181
    FirstKafkaTopic

    A připojte se k tomu, ke kterému je spotřebitel přihlášen, a poté odešlete zprávu:

    $ /opt/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic FirstKafkaTopic
    > new message published by producer from console #2

    Na spotřebitelském terminálu by se měla zakrátko objevit zpráva:

    $ /opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic FirstKafkaTopic --from-beginning
     new message published by producer from console #2

    Pokud se zpráva objeví, náš test je úspěšný a naše instalace Kafka funguje podle očekávání. Mnoho klientů by mohlo poskytovat a využívat jeden nebo více záznamů tématu stejným způsobem, dokonce i s nastavením jednoho uzlu, které jsme vytvořili v tomto tutoriálu.


Linux
  1. Jak nainstalovat phpMyAdmin na RHEL 8 / CentOS 8

  2. Jak nainstalovat P7Zip na RHEL 8 / CentOS 8

  3. jak nainstalovat gcc 4.9.2 na RHEL 7.4

  1. Jak nainstalovat ntfs-3g na RHEL 8 / CentOS 8

  2. Jak nainstalovat PHP-mbstring na RHEL 8 / CentOS 8

  3. Jak nainstalovat phantomjs na RHEL 8 / CentOS 8

  1. Jak nainstalovat Dropbox na RHEL 8 / CentOS 8

  2. Jak nainstalovat kompas na RHEL 8 / CentOS 8

  3. Jak nainstalovat Puppet na RHEL 8 / CentOS 8