Modius - Techblog

  • Ansible
  • Docker
  • DevOps
  • Gastautor werden
  • Newsletter abonnieren
  • Über Mich
  • Kontakt

systemctl für Kafka und Zookeeper

Veröffentlicht am 19. September 2018 von Christian Piazzi Hinterlasse ein Kommentar , Aktualisiert am 19. September 2018
Geschätzte Lesezeit: 1 Minute

Im letzten Artikel habe ich gezeigt wie man Kafka mit Zookeeper auf einem Raspberry Pi installiert. Will man Kafak nicht nur zum Testen verwenden ist es sinnvoll, sowohl Kafka wie Zookeeper über systemctl verfügbar zu machen. Dafür werden wir für beide Anwendungen einen eigenen User auf dem Raspberry Pi (Affiliate Link) anlegen und anschließend ein Startskript für Systemctl erstellen.

Inhaltsverzeichnis

Anlegen des Kafka und Zookeeper Users

Kafka und Zookeeper sollen jeweils unter einem eigenen User gestartet werden. Diese beiden User müssen mit dem Befehl adduser angelegt werden.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
adduser kafka
Adding user `kafka' ...
Adding new group `kafka' (1001) ...
Adding new user `kafka' (1001) with group `kafka' ...
Creating home directory `/home/kafka' ...
Copying files from `/etc/skel' ...
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for kafka
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n] y
 
 
adduser zookeeper
Adding user `zookeeper' ...
Adding new group `zookeeper' (1002) ...
Adding new user `zookeeper' (1002) with group `zookeeper' ...
Creating home directory `/home/zookeeper' ...
Copying files from `/etc/skel' ...
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for zookeeper
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n] y

Anschließend müssen den Anwendungsordnern die neuen User als Besitzter hinterlegt werden. Dies kann man mit den folgenden beiden Befehlen realisieren:

1
2
chown kafka:kafka -R /usr/local/kafka/
chown zookeeper:zookeeper -R /usr/local/zookeeper

Damit sind die Vorbereitungen für die Startscripte abgeschlossen

Erstellen des Zookeper systemctl Startskriptes

Für das Zookeeper Startskript legt man als erstes eine Datei unter /etc/systemd/system/ mit dem Namen zookeeper.service an. Diese Datei wird dann mit dem folgenden Inhalt befüllt:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[Unit]
Description=ZooKeeper Service
Documentation=http://zookeeper.apache.org
Requires=network.target
After=network.target
 
[Service]
Type=forking
User=zookeeper
Group=zookeeper
ExecStart=/usr/local/zookeeper/bin/zkServer.sh start /usr/local/zookeeper/conf/zoo.cfg
ExecStop=/usr/local/zookeeper/bin/zkServer.sh stop /usr/local/zookeeper/conf/zoo.cfg
ExecReload=/usr/local/zookeeper/bin/zkServer.sh restart /usr/local/zookeeper/conf/zoo.cfg
WorkingDirectory=/usr/local/zookeeper
 
[Install]
WantedBy=default.target

Nach dem anlegen einer systemctl Datei müssen wir einen daemon-reload machen, damit die Datei unter systemctl zur Verfügung steht. Dieser sieht wie folgt aus:

1
systemctl daemon-reload

Nun kann man Zookeeper über systemctl starten und anschließend prüfen, ob Zookeeper ohne Fehler gestatet ist.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
systemctl start  zookeeper
systemctl status  zookeeper
● zookeeper.service - ZooKeeper Service
   Loaded: loaded (/etc/systemd/system/zookeeper.service; disabled)
   Active: active (running) since Sat 2018-09-15 10:03:01 UTC; 6s ago
     Docs: http://zookeeper.apache.org
  Process: 5018 ExecStart=/usr/local/zookeeper/bin/zkServer.sh start /usr/local/zookeeper/conf/zoo.cfg (code=exited, status=0/SUCCESS)
Main PID: 5027 (java)
   CGroup: /system.slice/zookeeper.service
           └─5027 java -Dzookeeper.log.dir=/usr/local/zookeeper/logs -Dzookeeper.root.logger=INFO,CONSOLE -cp /usr/local/zookeeper/bin/../build/classes:/usr/local/zookeeper/bin/....
 
Sep 15 10:03:00 devpi zkServer.sh[5018]: ZooKeeper JMX enabled by default
Sep 15 10:03:00 devpi zkServer.sh[5018]: Using config: /usr/local/zookeeper/conf/zoo.cfg
Sep 15 10:03:01 devpi zkServer.sh[5018]: Starting zookeeper ... STARTED
Sep 15 10:03:01 devpi systemd[1]: Started ZooKeeper Service.

Erstellen des Kafka systemctl Startskriptes

Für das Kafka Startskript legt man als erstes eine Datei unter /etc/systemd/system/ mit dem Namen kafka.service an. Diese wird dann mit folgendem Inhalt befüllt:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[Unit]
Description=Apache Kafka server (broker)
Documentation=http://kafka.apache.org/documentation.html
Requires=network.target remote-fs.target
After=network.target remote-fs.target zookeeper.service
 
[Service]
Type=simple
User=kafka
Group=kafka
Environment=JAVA_HOME=/usr/lib/jvm/jdk-8-oracle-arm32-vfp-hflt
ExecStart=/usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties
ExecStop=/usr/local/kafka/bin/kafka-server-stop.sh
 
[Install]
WantedBy=multi-user.target

Auch hier muss man nach dem anlegen der systemctl Datei einen daemon-reload machen.

1
systemctl daemon-reload

Anschließend kann Kafka gestartet werden.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
systemctl start kafka
systemctl status kafka
● kafka.service - Apache Kafka server (broker)
   Loaded: loaded (/etc/systemd/system/kafka.service; disabled)
   Active: active (running) since Sat 2018-09-15 10:09:29 UTC; 14s ago
     Docs: http://kafka.apache.org/documentation.html
Main PID: 5049 (java)
   CGroup: /system.slice/kafka.service
           └─5049 /usr/lib/jvm/jdk-8-oracle-arm32-vfp-hflt/bin/java -Xmx256M -Xms128M -client -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:+CMSScave...
 
Sep 15 10:09:40 devpi kafka-server-start.sh[5049]: [2018-09-15 10:09:40,535] INFO [GroupMetadataManager brokerId=0] Removed 0 expired offsets in 34 milliseconds. (kafka...taManager)
Sep 15 10:09:40 devpi kafka-server-start.sh[5049]: [2018-09-15 10:09:40,580] INFO [ProducerId Manager 0]: Acquired new producerId block (brokerId:0,blockStartProducerId...IdManager)
Sep 15 10:09:40 devpi kafka-server-start.sh[5049]: [2018-09-15 10:09:40,682] INFO [TransactionCoordinator id=0] Starting up. (kafka.coordinator.transaction.TransactionCoordinator)
Sep 15 10:09:40 devpi kafka-server-start.sh[5049]: [2018-09-15 10:09:40,688] INFO [Transaction Marker Channel Manager 0]: Starting (kafka.coordinator.transaction.Transa...elManager)
Sep 15 10:09:40 devpi kafka-server-start.sh[5049]: [2018-09-15 10:09:40,690] INFO [TransactionCoordinator id=0] Startup complete. (kafka.coordinator.transaction.Transac...ordinator)
Sep 15 10:09:40 devpi kafka-server-start.sh[5049]: [2018-09-15 10:09:40,890] INFO [/config/changes-event-process-thread]: Starting (kafka.common.ZkNodeChangeNotificatio...essThread)
Sep 15 10:09:40 devpi kafka-server-start.sh[5049]: [2018-09-15 10:09:40,931] INFO [SocketServer brokerId=0] Started processors for 1 acceptors (kafka.network.SocketServer)
Sep 15 10:09:40 devpi kafka-server-start.sh[5049]: [2018-09-15 10:09:40,946] INFO Kafka version : 2.0.0 (org.apache.kafka.common.utils.AppInfoParser)
Sep 15 10:09:40 devpi kafka-server-start.sh[5049]: [2018-09-15 10:09:40,947] INFO Kafka commitId : 3402a8361b734732 (org.apache.kafka.common.utils.AppInfoParser)
Sep 15 10:09:40 devpi kafka-server-start.sh[5049]: [2018-09-15 10:09:40,953] INFO [KafkaServer id=0] started (kafka.server.KafkaServer)
Hint: Some lines were ellipsized, use -l to show in full.

Kategorie: Big Data Tags: init, Kafka, script, systemctl, systemd, Zookeeper

Über Christian Piazzi

Ich blogge hier über alles, was mir so in meinem ITler Altag über den Weg läuft =)
Man findet mich privat bei Google+ und Twitter

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Kategorien

  • Linux
  • Internet, Bloggen & Co
  • Programmierung
  • Sicherheit
  • Netzwerk & Co
  • Mikrokontroller
  • Windows

Neueste Kommentare

  • Prometheus Installation unter Ubuntu - Modius - Techblog bei Prometheus Installation unter CentOS
  • Rainer bei Docker Container – anzeigen, starten, stoppen und löschen
  • Rainer Wohlfarth bei Docker Container – anzeigen, starten, stoppen und löschen
  • Rainer Wohlfarth bei Docker Container – anzeigen, starten, stoppen und löschen
  • Rainer Wohlfarth bei Docker Container – anzeigen, starten, stoppen und löschen

Werbung

Archive

Kontakt, Datenschutz und Impressum

  • Kontakt
  • Datenschutz
  • Impressum

Schlagwörter

Anleitung Ansible Apache Apple App Store Automatisierung Blogparade C++ Centos centos 7 CentOS7 Container Datenbank DevOps Docker Dr. Racket Dr. Scheme funktional Gastartikel Google HowTo httpd Icinga2 Icinga 2 Installation itsm Linux Minecraft Monitoring mooc MySQL owncloud PHP Plugin Programmierung python Raspberry Pi Schritt für Schritt Server Sicherheit Tutorial Ubuntu Update Windows Wordpress

Copyright © 2025 · Outreach Pro on Genesis Framework · WordPress · Anmelden