Install Confluent Platform using ZIP and TAR Archives

This topic provides instructions for installing a production-ready Confluent Platform configuration in a multi-node environment with a replicated ZooKeeper ensemble.

With this installation method, you connect to every node manually, download the archive, and run the Confluent Platform installation commands.


You must complete these steps for each node in your cluster.

Before installing Confluent Platform, your environment must meet the prerequisites as described in software and hardware requirements.

Get the Software

  1. Go to the installation page. You may be prompted to enter your name, company, email address, and accept license terms before you can access the page.

    Once you are on the installation page, choose your archive package or download a package directly by using the curl command.

    Confluent Platform
    • ZIP

      curl -O
    • TAR

      curl -O
    Confluent Platform using only Confluent Community components
    • ZIP

      curl -O
    • TAR

      curl -O
  2. Extract the contents of the archive. For ZIP files, run this command in a terminal.


    For TAR files run this command:

    tar xzf confluent-7.3.8.tar.gz

    You should have these directories:

    Folder Description
    /bin/ Driver scripts for starting and stopping services
    /etc/ Configuration files
    /lib/ Systemd services
    /libexec/ Multi-platform CLI binaries
    /share/ Jars and licenses
    /src/ Source files that require a platform-dependent build

Optionally configure CONFLUENT_HOME

To more easily use the Confluent CLI and additional Confluent tools, you can optionally configure the CONFLUENT_HOME variable and add the Confluent Platform \bin folder to the path.

  1. Set the environment variable for the Confluent Platform home directory.

    export CONFLUENT_HOME=<The directory where Confluent is installed>
  2. Add the Confluent Platform bin directory to your PATH

  3. Test that you set the CONFLUENT_HOME variable correctly by running the confluent command:

    confluent --help

    Your output should show the available commands for managing Confluent Platform.

Configure Confluent Platform


You can store passwords and other configuration data securely by using the confluent secret commands. For more information, see Secrets Management.

Configure Confluent Platform with the individual component properties files. By default these are located in <path-to-confluent>/etc/. You must minimally configure the following components.


These instructions assume you are running ZooKeeper in replicated mode. A minimum of three servers are required for replicated mode, and you must have an odd number of servers for failover. For more information, see the ZooKeeper documentation.

  1. Navigate to the ZooKeeper properties file (/etc/kafka/ file and modify as shown.


    This configuration is for a three node ensemble. This configuration file should be identical across all nodes in the ensemble. tickTime, dataDir, and clientPort are all set to typical single server values. The initLimit and syncLimit govern how long following ZooKeeper servers can take to initialize with the current leader and how long they can be out of sync with the leader. In this configuration, a follower can take 10000 ms to initialize and can be out of sync for up to 4000 ms based on the tickTime being set to 2000ms.

    The server.* properties set the ensemble membership. The format is

    • myid is the server identification number. There are three servers that each have a different myid with values 1, 2, and 3 respectively. The myid is set by creating a file named myid in the dataDir that contains a single integer in human readable ASCII text. This value must match one of the myid values from the configuration file. You will see an error if another ensemble member is already started with a conflicting myid value.
    • leaderport is used by followers to connect to the active leader. This port should be open between all ZooKeeper ensemble members.
    • electionport is used to perform leader elections between ensemble members. This port should be open between all ZooKeeper ensemble members.

    The autopurge.snapRetainCount and autopurge.purgeInterval have been set to purge all but three snapshots every 24 hours.

  2. Navigate to the ZooKeeper log directory (e.g., /var/lib/zookeeper/) and create a file named myid. The myid file consists of a single line that contains the machine ID in the format <machine-id>. When the ZooKeeper server starts up, it knows which server it is by referencing the myid file. For example, server 1 will have a myid value of 1.


In a production environment, multiple brokers are required. During startup brokers register themselves in ZooKeeper to become a member of the cluster.

Navigate to the Apache Kafka® properties file (/etc/kafka/ and customize the following:

  • Connect to the same ZooKeeper ensemble by setting the zookeeper.connect in all nodes to the same value. Replace all instances of localhost to the hostname or FQDN (fully qualified domain name) of your node. For example, if your hostname is zookeeper:

  • Configure the broker IDs for each node in your cluster using one of these methods.

    • Dynamically generate the broker IDs: add and comment out For example:

      ############################# Server Basics #############################
      # The ID of the broker. This must be set to a unique integer for each broker.
    • Manually set the broker IDs: set a unique value for on each node.

  • Configure how other brokers and clients communicate with the broker using listeners, and optionally advertised.listeners.

    • listeners: Comma-separated list of URIs and listener names to listen on.
    • advertised.listeners: Comma-separated list of URIs and listener names for other brokers and clients to use. The advertised.listeners parameter ensures that the broker advertises an address that is accessible from both local and external hosts.

    For more information, see Production Configuration Options.

  • Configure security for your environment.

Control Center

  1. Navigate to the Control Center properties file (/etc/confluent-control-center/ and customize the following:

    # host/port pairs to use for establishing the initial connection to the Kafka cluster
    # location for Control Center data
    # the Confluent license
    # ZooKeeper connection string with host and port of a ZooKeeper servers

    This configuration is for a three node multi-node cluster. For more information, see Control Center configuration details. For information about Confluent Platform licenses, see Managing Confluent Platform Licenses in Control Center.

  2. Navigate to the Kafka server configuration file (/etc/kafka/ and enable Confluent Metrics Reporter.

    ##################### Confluent Metrics Reporter #######################
    # Confluent Control Center and Confluent Auto Data Balancer integration
    # Uncomment the following lines to publish monitoring data for
    # Confluent Control Center and Confluent Auto Data Balancer
    # If you are using a dedicated metrics cluster, also adjust the settings
    # to point to your metrics Kafka cluster.
    # Uncomment the following line if the metrics cluster has a single broker
  3. Add these lines to the Kafka Connect properties file (/etc/kafka/ to add support for the interceptors.

    # Interceptor setup

Schema Registry

Navigate to the Schema Registry properties file (/etc/schema-registry/ and specify the following properties:

# Specify the address the socket server listens on, e.g. listeners = PLAINTEXT://

# The host name advertised in ZooKeeper. This must be specified if your running Schema Registry
# with multiple nodes.

# List of Kafka brokers to connect to, e.g. PLAINTEXT://hostname:9092,SSL://hostname2:9092

This configuration is for a three node multi-node cluster. For more information, see Running Schema Registry in Production.

Start Confluent Platform

Install Confluent Platform by using Kafka CLI commands.


ZooKeeper, Kafka, and Schema Registry must be started in this specific order, and must be started before any other components.

  1. Start ZooKeeper. Run this command in its own terminal.

    <path-to-confluent>/bin/zookeeper-server-start <path-to-confluent>/etc/kafka/
  2. Start Kafka. Run this command in its own terminal.

    <path-to-confluent>/bin/kafka-server-start <path-to-confluent>/etc/kafka/
  3. Start Schema Registry. Run this command in its own terminal.

    <path-to-confluent>/bin/schema-registry-start <path-to-confluent>/etc/schema-registry/
  4. Start other Confluent Platform components as desired.

    • Control Center

      <path-to-confluent>/bin/control-center-start <path-to-confluent>/etc/confluent-control-center/
    • Kafka Connect

      <path-to-confluent>/bin/connect-distributed <path-to-confluent>/etc/schema-registry/
    • Confluent REST Proxy

      <path-to-confluent>/bin/kafka-rest-start <path-to-confluent>/etc/kafka-rest/
    • ksqlDB

      <path-to-confluent>/bin/ksql-server-start <path-to-confluent>/etc/ksqldb/


  1. Remove the Confluent directory. For example, if you have Confluent Platform 7.3.8 installed:

    rm -rf confluent-7.3.8
  2. Remove the Confluent Platform data files.

    rm -rf /var/lib/<confluent-platform-data-files>

Next Steps

Try out the Quick Start for Confluent Platform.