Skip to content

Instantly share code, notes, and snippets.

@cronosnull
Created May 29, 2019 09:40
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save cronosnull/59101eb96f71093b0c7619a66b0c4ca1 to your computer and use it in GitHub Desktop.
Save cronosnull/59101eb96f71093b0c7619a66b0c4ca1 to your computer and use it in GitHub Desktop.
Install kafka statndalone.
#!/bin/bash
# This script install kafka 2.2.0
# on a centos 7 machine
## RUN AS SUDO
if [[ $EUID -gt 0 ]]
then
echo "Please run as root/sudo"
exit 1
fi
# Install dependencies
yum install java-11-openjdk wget
# Download and untar kafka
wget https://www-eu.apache.org/dist/kafka/2.2.0/kafka_2.12-2.2.0.tgz
tar xzvf kafka_2.12-2.2.0.tgz -C /opt
cd /opt/ || exit
ln -s kafka_2.12-2.2.0 kafka
# Create a new user to run kafka
# (for security kafka should not run as a privilegied user)
useradd kafka
chown -R kafka:kafka kafka*
# Create the systemd services (zookeeper and kafka)
cat > /etc/systemd/system/zookeeper.service <<EOF
[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
EOF
cat > /etc/systemd/system/kafka.service <<EOF
[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
EOF
# Enable and start the services:
systemctl daemon-reload
systemctl enable zookeeper.service
systemctl enable kafka.service
systemctl start zookeeper service
systemctl start kafka service
firewall-cmd --permanent --zone=public --add-port=9092/tcp
firewall-cmd --reload
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment