DEV Community

Sagar Lakshmipathy
Sagar Lakshmipathy

Posted on

Apache Kafka on Amazon Linux EC2

In this article, we will walk through the steps to set up Apache Kafka on an Amazon EC2 instance (Amazon Linux distribution). We'll start with updating the system, installing Java, and then proceed with the installation and configuration of Kafka. By the end, you'll have a running Kafka instance, ready for producing and consuming messages.

Prerequisites

An Amazon EC2 instance (running Amazon Linux 2 or a similar distribution)
Basic knowledge of using the terminal

Steps

Step 1: Update the System

First, ensure your system is up to date by running:

sudo yum update -y
Enter fullscreen mode Exit fullscreen mode

Step 2: Install Java

Apache Kafka requires Java to run. Install Java 11 using the following command:

sudo yum install java-11-amazon-corretto-devel -y
Enter fullscreen mode Exit fullscreen mode

Step 3: Download and Extract Kafka

Next, download Kafka from the official Apache archive and extract it:

wget https://archive.apache.org/dist/kafka/3.3.1/kafka_2.12-3.3.1.tgz
tar -xzf kafka_2.12-3.3.1.tgz
cd kafka_2.12-3.3.1
Enter fullscreen mode Exit fullscreen mode

Step 4: Start Zookeeper

Kafka requires Zookeeper to manage its cluster. Start Zookeeper with:

nohup bin/zookeeper-server-start.sh config/zookeeper.properties > zookeeper.log 2>&1 &
Enter fullscreen mode Exit fullscreen mode

Step 5: Configure Kafka

Edit the Kafka configuration file to set the advertised listeners. Replace ec2-xx-xxx-xx-xxx.us-west-2.compute.amazonaws.com with your EC2 instance's public DNS:

vi config/server.properties
Enter fullscreen mode Exit fullscreen mode

Add the following line:

advertised.listeners=PLAINTEXT://ec2-xx-xxx-xx-xxx.us-west-2.compute.amazonaws.com:9092
Enter fullscreen mode Exit fullscreen mode

Step 6: Start Kafka Server

Now, start the Kafka server:

nohup bin/kafka-server-start.sh config/server.properties > kafka-server.log 2>&1 &
Enter fullscreen mode Exit fullscreen mode

Step 7: Create a Topic

Create a new Kafka topic named test:

bin/kafka-topics.sh --create --topic test --bootstrap-server ec2-xx-xxx-xx-xxx.us-west-2.compute.amazonaws.com:9092 --partitions 1 --replication-factor 1
Enter fullscreen mode Exit fullscreen mode

Step 8: Produce Messages

Start a Kafka producer to send messages to the test topic:

bin/kafka-console-producer.sh --topic test --bootstrap-server ec2-xx-xxx-xx-xxx.us-west-2.compute.amazonaws.com:9092
Enter fullscreen mode Exit fullscreen mode

You can now type messages into the console, and they will be sent to the Kafka topic.

Step 9: Consume Messages

Start a Kafka consumer to read messages from the test topic:

bin/kafka-console-consumer.sh --topic test --bootstrap-server ec2-xx-xxx-xx-xxx.us-west-2.compute.amazonaws.com:9092 --from-beginning
Enter fullscreen mode Exit fullscreen mode

You should see the messages you produced earlier displayed in the console.

Conclusion

By following these steps, you've successfully set up Apache Kafka on an Amazon EC2 instance. You can now produce and consume messages, enabling you to build real-time data streaming applications. This setup forms the foundation for more advanced Kafka configurations and use cases.

Feel free to explore Kafka's extensive features and tailor the configuration to suit your specific requirements. Happy streaming!

Top comments (0)