Ako nainštalovať Apache Kafka s CMAK na CentOS
Na tejto stránke
- Predpoklady
- Začíname
- Nainštalujte Java
- Stiahnite si Kafku
- Vytvorte systémový súbor pre Kafku a Zookeeper
- Nainštalujte a nakonfigurujte CMAK
- Spustite služby CMAK
- Nakonfigurujte SELinux a Firewall
- Prístup k webovému používateľskému rozhraniu CMAK
- Pridajte svoju prvú tému na Kafku
- Záver
Apache Kafka je bezplatná a open source platforma na streamovanie, ktorá sa používa na analýzu streamovania, integráciu údajov a kritické aplikácie. V porovnaní s ActiveMQ a RabbitMQ má Kafka lepšiu priepustnosť, vstavané delenie, replikáciu a odolnosť voči chybám. Kafka je distribuovaný agent správ, ktorý dokáže efektívne narábať s obrovskými objemami informácií v reálnom čase.
CMAK známy aj ako "Cluster Manager" sa používa na správu klastra Kafka vyvinutého spoločnosťou Yahoo. Pomocou CMAK môžete spravovať viacero klastrov a kontrolovať stav klastrov vrátane tém, spotrebiteľov, ofsetov, maklérov, distribúcie replík, distribúcie oddielov a mnohých ďalších.
V tomto návode si ukážeme, ako nainštalovať streamovaciu platformu Apache Kafka s CMAK na server CentOS 8.
Predpoklady
- Server so systémom CentOS 8.
- Na serveri je nakonfigurované heslo root.
Začíname
Najprv sa odporúča aktualizovať systémové balíky na najnovšiu verziu. Všetko môžete aktualizovať pomocou nasledujúceho príkazu:
dnf update -y
Po aktualizácii všetkých balíkov nainštalujte ďalšie požadované závislosti pomocou nasledujúceho príkazu:
dnf install git unzip -y
Po dokončení môžete prejsť na ďalší krok.
Nainštalujte Java
Kafka je založená na Jave, takže Java musí byť nainštalovaná na vašom serveri. Ak nie je nainštalovaný, môžete ho nainštalovať pomocou nasledujúceho príkazu:
dnf install java-11-openjdk-devel -y
Po nainštalovaní Java môžete overiť nainštalovanú verziu Java pomocou nasledujúceho príkazu:
java --version
Mali by ste dostať nasledujúci výstup:
openjdk 11.0.8 2020-07-14
OpenJDK Runtime Environment (build 11.0.8+10-post-CentOS-0centos8)
OpenJDK 64-Bit Server VM (build 11.0.8+10-post-CentOS-0centos8, mixed mode, sharing)
Po dokončení môžete prejsť na ďalší krok.
Stiahnite si Kafku
Pred stiahnutím Kafky vytvorte adresár na uloženie Kafky. Môžete ho vytvoriť pomocou nasledujúceho príkazu:
mkdir /usr/local/kafka-server
Ďalej zmeňte adresár na kafka-server a stiahnite si najnovšiu verziu Kafky pomocou nasledujúceho príkazu:
cd /usr/local/kafka-server
wget https://downloads.apache.org/kafka/2.6.0/kafka_2.13-2.6.0.tgz
Po dokončení sťahovania rozbaľte stiahnutý súbor pomocou nasledujúceho príkazu:
tar -xvzf kafka_2.13-2.6.0.tgz --strip 1
Po dokončení môžete prejsť na ďalší krok.
Vytvorte systémový súbor pre Kafku a Zookeeper
Ďalej budete musieť vytvoriť servisný súbor systemd na správu služby Zookeeper a Kafka.
Najprv vytvorte súbor služby Zookeeper pomocou nasledujúceho príkazu:
nano /etc/systemd/system/zookeeper.service
Pridajte nasledujúce riadky:
[Unit]
Description=Apache Zookeeper Server
Requires=network.target remote-fs.target
After=network.target remote-fs.target
[Service]
Type=simple
ExecStart=/usr/local/kafka-server/bin/zookeeper-server-start.sh /usr/local/kafka-server/config/zookeeper.properties
ExecStop=/usr/local/kafka-server/bin/zookeeper-server-stop.sh
Restart=on-abnormal
[Install]
WantedBy=multi-user.target
Po dokončení uložte a zatvorte súbor.
Potom vytvorte súbor služby Kafka pomocou nasledujúceho príkazu:
nano /etc/systemd/system/kafka.service
Pridajte nasledujúce riadky:
[Unit]
Description=Apache Kafka Server
Documentation=http://kafka.apache.org/documentation.html
Requires=zookeeper.service
After=zookeeper.service
[Service]
Type=simple
Environment="JAVA_HOME=/usr/lib/jvm/jre-11-openjdk"
ExecStart=/usr/local/kafka-server/bin/kafka-server-start.sh /usr/local/kafka-server/config/server.properties
ExecStop=/usr/local/kafka-server/bin/kafka-server-stop.sh
Restart=on-abnormal
[Install]
WantedBy=multi-user.target
Uložte a zatvorte súbor a potom znovu načítajte démona systemd pomocou nasledujúceho príkazu:
systemctl daemon-reload
Potom spustite obe služby a povoľte ich spustenie pri zavádzaní pomocou nasledujúceho príkazu:
systemctl enable --now zookeeper
systemctl enable --now kafka
systemctl start zookeeper
systemctl start kafka
Potom skontrolujte stav oboch služieb pomocou nasledujúceho príkazu:
systemctl status zookeeper kafka
Mali by ste vidieť nasledujúci výstup:
? zookeeper.service - Apache Zookeeper Server
Loaded: loaded (/etc/systemd/system/zookeeper.service; enabled; vendor preset: disabled)
Active: active (running) since Sat 2020-08-29 08:48:42 EDT; 30s ago
Main PID: 26722 (java)
Tasks: 31 (limit: 12523)
Memory: 68.8M
CGroup: /system.slice/zookeeper.service
??26722 java -Xmx512M -Xms512M -server -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35 -XX:+ExplicitGCIn>
Aug 29 08:48:44 centos8 zookeeper-server-start.sh[26722]: [2020-08-29 08:48:44,326] INFO maxSessionTimeout set to 60000 (org.apache.zookeeper.>
Aug 29 08:48:44 centos8 zookeeper-server-start.sh[26722]: [2020-08-29 08:48:44,327] INFO Created server with tickTime 3000 minSessionTimeout 6>
Aug 29 08:48:44 centos8 zookeeper-server-start.sh[26722]: [2020-08-29 08:48:44,344] INFO Using org.apache.zookeeper.server.NIOServerCnxnFactor>
Aug 29 08:48:44 centos8 zookeeper-server-start.sh[26722]: [2020-08-29 08:48:44,348] INFO Configuring NIO connection handler with 10s sessionle>
Aug 29 08:48:44 centos8 zookeeper-server-start.sh[26722]: [2020-08-29 08:48:44,355] INFO binding to port 0.0.0.0/0.0.0.0:2181 (org.apache.zook>
Aug 29 08:48:44 centos8 zookeeper-server-start.sh[26722]: [2020-08-29 08:48:44,391] INFO zookeeper.snapshotSizeFactor = 0.33 (org.apache.zooke>
Aug 29 08:48:44 centos8 zookeeper-server-start.sh[26722]: [2020-08-29 08:48:44,397] INFO Snapshotting: 0x0 to /tmp/zookeeper/version-2/snapsho>
Aug 29 08:48:44 centos8 zookeeper-server-start.sh[26722]: [2020-08-29 08:48:44,401] INFO Snapshotting: 0x0 to /tmp/zookeeper/version-2/snapsho>
Aug 29 08:48:44 centos8 zookeeper-server-start.sh[26722]: [2020-08-29 08:48:44,431] INFO Using checkIntervalMs=60000 maxPerMinute=10000 (org.a>
Aug 29 08:48:53 centos8 zookeeper-server-start.sh[26722]: [2020-08-29 08:48:53,030] INFO Creating new log file: log.1 (org.apache.zookeeper.se>
? kafka.service - Apache Kafka Server
Loaded: loaded (/etc/systemd/system/kafka.service; enabled; vendor preset: disabled)
Active: active (running) since Sat 2020-08-29 08:48:50 EDT; 22s ago
Docs: http://kafka.apache.org/documentation.html
Main PID: 27100 (java)
Tasks: 66 (limit: 12523)
Memory: 306.4M
CGroup: /system.slice/kafka.service
??27100 /usr/lib/jvm/jre-11-openjdk/bin/java -Xmx1G -Xms1G -server -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancy>
Aug 29 08:48:56 centos8 kafka-server-start.sh[27100]: [2020-08-29 08:48:56,733] INFO [Transaction Marker Channel Manager 0]: Starting (kafka.c>
Aug 29 08:48:56 centos8 kafka-server-start.sh[27100]: [2020-08-29 08:48:56,747] INFO [ExpirationReaper-0-AlterAcls]: Starting (kafka.server.De>
Aug 29 08:48:56 centos8 kafka-server-start.sh[27100]: [2020-08-29 08:48:56,846] INFO [/config/changes-event-process-thread]: Starting (kafka.c>
Aug 29 08:48:56 centos8 kafka-server-start.sh[27100]: [2020-08-29 08:48:56,877] INFO [SocketServer brokerId=0] Starting socket server acceptor>
Aug 29 08:48:57 centos8 kafka-server-start.sh[27100]: [2020-08-29 08:48:57,236] INFO [SocketServer brokerId=0] Started data-plane acceptor and>
Aug 29 08:48:57 centos8 kafka-server-start.sh[27100]: [2020-08-29 08:48:57,237] INFO [SocketServer brokerId=0] Started socket server acceptors>
Aug 29 08:48:57 centos8 kafka-server-start.sh[27100]: [2020-08-29 08:48:57,246] INFO Kafka version: 2.6.0 (org.apache.kafka.common.utils.AppIn>
Aug 29 08:48:57 centos8 kafka-server-start.sh[27100]: [2020-08-29 08:48:57,246] INFO Kafka commitId: 62abe01bee039651 (org.apache.kafka.common>
Nainštalujte a nakonfigurujte CMAK
Ďalej budete musieť nainštalovať CMAK na správu klastra Apache Kafka. Môžete si ho stiahnuť z úložiska Git pomocou nasledujúceho príkazu:
cd /root
git clone https://github.com/yahoo/CMAK.git
Po stiahnutí budete musieť upraviť súbor application.conf a definovať hostiteľov zookeepera.
nano ~/CMAK/conf/application.conf
Zmeňte nasledujúce riadky:
cmak.zkhosts="localhost:2181"
Po dokončení uložte a zatvorte súbor. Potom vytvorte súbor zip na nasadenie aplikácie.
cd ~/CMAK/
./sbt clean dist
Mali by ste vidieť nasledujúci výstup:
model contains 640 documentable templates
[info] Main Scala API documentation successful.
[info] LESS compiling on 1 source(s)
[success] All package validations passed
[info] Your package is ready in /root/CMAK/target/universal/cmak-3.0.0.5.zip
[success] Total time: 150 s (02:30), completed 29-Aug-2020, 8:55:40 AM
Potom rozbaľte súbor zip, ktorý ste vytvorili v predchádzajúcom kroku, pomocou nasledujúceho príkazu:
cd ~/CMAK/target/universal
unzip cmak-3.0.0.5.zip
Po dokončení môžete prejsť na ďalší krok.
Spustite služby CMAK
Teraz zmeňte adresár na ~/CMAK/target/universal/cmak-3.0.0.5 a spustite službu CMAK pomocou nasledujúceho príkazu:
cd ~/CMAK/target/universal/cmak-3.0.0.5
bin/cmak
V tomto bode sa spustí CMAK a počúva na porte 9000.
Nakonfigurujte SELinux a Firewall
V predvolenom nastavení je SELinux povolený v CentOS 8. Takže budete musieť nakonfigurovať SELinux pre CMAK. Môžete ho nakonfigurovať pomocou nasledujúceho príkazu:
chcon -t httpd_sys_rw_content_t ~/CMAK/target/universal/cmak-3.0.0.5 -R
setsebool -P httpd_can_network_connect 1
Ďalej budete musieť povoliť port 9000 cez firewall. Môžete to urobiť pomocou nasledujúceho príkazu:
firewall-cmd --permanent --zone public --add-port 9000/tcp
firewall-cmd --reload
Po dokončení môžete prejsť na ďalší krok.
Prístup k webovému používateľskému rozhraniu CMAK
Teraz otvorte webový prehliadač a prejdite na CMAK pomocou adresy URL http://your-server-ip:9000. Mali by ste vidieť nasledujúcu stránku:
Na obrazovke vyššie by ste mali vidieť, že nie je k dispozícii žiadny klaster. Takže najprv budete musieť vytvoriť nový klaster.
Kliknite na Cluster => Add Cluster. Mali by ste vidieť nasledujúcu obrazovku:
Zadajte názov klastra, hostiteľa zookeepera, ďalšie požadované informácie a kliknite na tlačidlo Uložiť. Mali by ste vidieť nasledujúcu obrazovku:
Po dokončení môžete prejsť na ďalší krok.
Pridajte svoju prvú tému na Kafku
Ďalej budete musieť vytvoriť tému na Kafka, aby ste otestovali funkčnosť. Ak to chcete urobiť, otvorte iný terminál, zmeňte adresár na kafka-server a vytvorte novú tému zadaním názvu témy a faktora replikácie spustením nasledujúceho príkazu:
cd /usr/local/kafka-server
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic MyNewTopic
Teraz prejdite na panel CMAK a kliknite na Tému. Na nasledujúcej obrazovke by ste mali vidieť tému, ktorú ste predtým vytvorili:
Kliknite na číslo témy. Na nasledujúcej obrazovke by ste mali vidieť svoju novovytvorenú tému:
Teraz kliknite na názov svojej témy. Na nasledujúcej obrazovke by ste mali vidieť všetky informácie o vašej téme:
Záver
Gratulujem! úspešne ste nainštalovali Apache Kafka s CMAK na server CentOS 8. Teraz môžete začať skúmať CMAK pre viac funkcií. Ak máte nejaké otázky, neváhajte sa ma opýtať.