Skip to content

Instantly share code, notes, and snippets.

@nathanleclaire
Last active June 21, 2017 00:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nathanleclaire/43f2d9b38eb1d16e2ee2ac05cd9d1317 to your computer and use it in GitHub Desktop.
Save nathanleclaire/43f2d9b38eb1d16e2ee2ac05cd9d1317 to your computer and use it in GitHub Desktop.

invoke as root:

#!/bin/sh

set -e

apt-get update

# alt: 'apt-get install -y zookeeperd' might set up the service as well

apt-get install -y zookeeper

cat >/etc/systemd/system/zookeeper.service << EOF
[Unit]
Description=Apache ZooKeeper
Requires=network.target remote-fs.target
After=network.target remote-fs.target

[Service]
Type=forking
User=zookeeper
Group=zookeeper
ExecStart=/usr/share/zookeeper/bin/zkServer.sh start
ExecStop=/usr/share/zookeeper/bin/zkServer.sh stop
ExecReload=/usr/share/zookeeper/bin/zkServer.sh restart
WorkingDirectory=/var/lib/zookeeper
Restart=on-failure
SyslogIdentifier=kafka

[Install]
WantedBy=multi-user.target
EOF

mkdir /opt/kafka /etc/kafka /var/lib/kafka
wget http://apache.claz.org/kafka/0.10.2.0/kafka_2.11-0.10.2.0.tgz -O /tmp/kafka.tgz
tar -xvf /tmp/kafka.tgz -C /opt/kafka --strip-components 1

cp /opt/kafka/config/server.properties /etc/kafka/server.properties

cat >/etc/systemd/system/kafka.service << EOF
[Unit]
Description=Apache Kafka server (broker)
Documentation=http://kafka.apache.org/documentation.html
Requires=zookeeper.service network.target remote-fs.target
After=zookeeper.service network.target remote-fs.target
ConditionPathExists=/etc/kafka/server.properties
ConditionPathExists=/var/lib/kafka

[Service]
Type=simple
PIDFile=/var/run/kafka.pid
User=kafka
Group=kafka
ExecStart=/opt/kafka/bin/kafka-server-start.sh /etc/kafka/server.properties
ExecStop=/opt/kafka/bin/kafka-server-stop.sh
WorkingDirectory=/var/lib/kafka
Restart=on-failure
SyslogIdentifier=kafka

[Install]
WantedBy=multi-user.target
EOF

systemctl daemon-reload
systemctl start zookeeper
systemctl start kafka
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment