Setting Up ZooKeeper, Kafka, and Schema Registry
NOTE |
Windows is currently not a supported platform for running Confluent Kafka, ensure that your OS is on the list of supported operating systems: https://docs.confluent.io/4.0.0/installation/installing_cp.html#system-requirements
|
Before proceeding, you must install and setup the following prerequisites:
q Java JDK 64-bit, version 1.7 or later
q System Environment variable JAVA_HOME set to the Java JDK 64-bit
Steps:
1. Download one of the Confluent Kafka archives from http://confluent.io/download.
2. Extract the contents of the archive to a new location.
3. Below are the top-level folders of the archive:
confluent-3.1.1/bin/ # Driver scripts for starting/stopping services
confluent-3.1.1/etc/ # Configuration files
confluent-3.1.1/share/java/ # Jars
4. Start the ZooKeeper, Kafka and Schema Registry processes in the correct order. Make sure the previous process has been started before continuing to the next one.
· Start ZooKeeper
$ ./bin/zookeeper-server-start ./etc/kafka/zookeeper.properties
· Start the Kafka broker
$ ./bin/kafka-server-start ./etc/kafka/server.properties
· Start Schema Registry
$ ./bin/schema-registry-start ./etc/schema-registry/schema-registry.properties
When these three processes have been started, you can now connect Panopticon Streams to your local Kafka cluster to execute and deploy your applications.
For more details, refer to the Confluent Kafka Installation-and Quick Start guides:
· https://docs.confluent.io/3.1.1/installation.html
· https://docs.confluent.io/3.1.1/quickstart.html
NOTE |
When connecting to a Kafka broker on a separate machine, exposing different IP addresses internally and externally, you need to configure KAFKA_ADVERTISED_LISTENERS. This is typically the case when running Kafka in a Docker container. The symptoms of the missing configuration are: · Panopticon Streams can connect to ZooKeeper and the Kafka Broker · No data is written to topics In [Kafka]/etc/kafka/server.properties, uncomment advertised.listeners and replace “your.host.name” with the externally exposed host name or IP address. # Hostname and port the broker will advertise to producers and consumers. If not set, # it uses the value for "listeners" if configured. Otherwise, it will use the value # returned from java.net.InetAddress.getCanonicalHostName(). advertised.listeners=PLAINTEXT://your.host.name:9092 When using the Confluent Docker image, you can pass the KAFKA_ADVERTISED_LISTENERS as a parameter: docker run -d --restart=always \ --net=confluent \ --name=kafka \ -p 9092:9092 \ -e KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 \ -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://your.host.name:9092 \ -e KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1 \ confluentinc/cp-kafka:5.1.0
|