In the second part of this series I will describe the steps to install a Kafka single node-single broker cluster on a Linux machine. Here I am referring to the latest Kafka stable version (at the time of writing this post), 0.9.0.1, Scala 2.11.
Prerequisites
The only prerequisite needed is a JDK 7+.
Installation
- Move to the opt folder of your system
cd /opt
and then download the binaries of the latest release there:
wget http://www.us.apache.org/dist/kafka/0.9.0.1/kafka_2.11-0.9.0.1.tgz
- Extract the archive content:
tar xzf kafka_2.11-0.9.0.1.tgz
- Create the KAFKA_HOME variable:
echo -e "export KAFKA_HOME=/opt/kafka_2.11-0.9.0.1" >> /root/.bash_profile
- Add the Kafka bin folder to the PATH:
echo -e "export PATH=$PATH:$KAFKA_HOME/bin" >> /root/.bash_profile
- Reload the bash profile for the user:
source /root/.bash_profile
Starting the server
- In order for the Kafka server to work properly you need to start ZooKeeper (https://zookeeper.apache.org/) first. Kafka comes with its own Zookeeper server. So a separate ZooKeeper installation isn't mandatory. Please note that if your default JDK is the IBM one you need to replace the JVM loggc option with the verbosegclog one in the $KAFKA_HOME/bin/zookeeper-server-start.sh script.
- Start the Zookeper server (in the example below I am using the default ZooKeeper's property file):
$KAFKA_HOME/bin/zookeeper-server-start.sh $KAFKA_HOME/config/zookeeper.properties
- If your default JDK is the IBM one you have to replace the JVM loggc option with the verbosegclog one in the $KAFKA_HOME/bin/kafka-server-start.sh script as well.
- Start the Kafka server broker (in the example below I am using the default Kafka broker's property file):
$KAFKA_HOME/bin/kafka-server-start.sh $KAFKA_HOME/config/server.properties
Testing the installation
And now the steps to test that everything is working properly.
- Create a topic:
$KAFKA_HOME/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic kafkatesting
- Check that the new topic is in the topic list:
$KAFKA_HOME/bin/kafka-topics.sh --list --zookeeper localhost:2181
- Run a producer for the new topic using the provided script:
$KAFKA_HOME/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic kafkatesting
and then type from the shell few messages for that topic to be sent to the server.
- From a different shell run a consumer for the new topic using the provided script:
$KAFKA_HOME/bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic kafkatesting --from-beginning
You should see the messages generated by the producer printed out to the consumer shell.
What's next?
In Part 3 of this series you will learn how to implement a producer using the Kafka Java APIs.
Comments
Post a Comment