准备工作:

  • JDK (Java Development Kit): 确保你的机器上已经安装了 Java 8 或更高版本。
  • 操作系统: Linux (推荐),macOS 或 Windows (可以使用 WSL)。
  • Apache Kafka 安装包: 从 Apache Kafka 官网下载最新版本的 Kafka 安装包 (例如: kafka_2.13-x.x.x.tgz)。
  • 网络连接: 确保你的机器可以访问互联网 (用于下载依赖)。

一、单机部署 (Standalone Mode):

  1. 下载 Kafka:

  2. 解压 Kafka:

    BASHtar -xzf kafka_2.13-x.x.x.tgz
    cd kafka_2.13-x.x.x
    • x.x.x 替换为你下载的版本号。
  3. 启动 Zookeeper:

    • Kafka 依赖于 Zookeeper,单机模式下,可以使用 Kafka 自带的 Zookeeper。
    bin/zookeeper-server-start.sh config/zookeeper.properties
    • 该命令会在后台启动 Zookeeper 服务。
  4. 启动 Kafka Broker:

    bin/kafka-server-start.sh config/server.properties
    • 该命令会在后台启动 Kafka Broker 服务。
  5. 创建 Topic:

    bin/kafka-topics.sh --create --topic my-topic --partitions 1 --replication-factor 1 --bootstrap-server localhost:9092
    • my-topic: 你要创建的 Topic 名称。
    • --partitions 1: 分区数量为 1。
    • --replication-factor 1: 副本数量为 1。
    • --bootstrap-server localhost:9092: Kafka Broker 的地址。
  6. 生产者 (Producer):

    bin/kafka-console-producer.sh --topic my-topic --bootstrap-server localhost:9092
    • 该命令会启动一个控制台生产者,你可以输入消息并发送到 Kafka。
  7. 消费者 (Consumer):

    bin/kafka-console-consumer.sh --topic my-topic --from-beginning --bootstrap-server localhost:9092
    • 该命令会启动一个控制台消费者,你可以接收并查看 Kafka 中的消息。
    • --from-beginning: 表示从 Topic 的开头开始消费。

二、集群部署 (Cluster Mode):

  1. 准备多台机器:

    • 你需要准备至少 3 台机器,用于部署 Kafka 集群。
    • 确保每台机器的 JDK 版本一致。
    • 确保每台机器之间可以互相通信。
  2. 下载 Kafka (每台机器):

    • 在每台机器上重复单机部署的步骤 1 和 2,下载并解压 Kafka。
  3. 配置 Zookeeper (集群):

    • 选择一台机器作为 Zookeeper 主节点,在主节点上修改 config/zookeeper.properties 文件:

      TEXTdataDir=/tmp/zookeeper
      clientPort=2181
      initLimit=5
      syncLimit=2
      server.1=zoo1:2888:3888
      server.2=zoo2:2888:3888
      server.3=zoo3:2888:3888
      • dataDir: Zookeeper 数据存储目录。
      • clientPort: Zookeeper 客户端连接端口。
      • server.1, server.2, server.3: Zookeeper 集群的节点地址,请替换为实际的 IP 地址或主机名。
      • zoo1, zoo2, zoo3 是主机名,你需要将它们解析到对应的IP地址。
    • 在其他 Zookeeper 节点上修改 config/zookeeper.properties 文件:

      • 只需要修改 dataDirserver 配置,确保 server 配置和主节点一致。
      • 在每个 Zookeeper 节点上创建 myid 文件:
      BASHecho "1" > /tmp/zookeeper/myid # zoo1节点
      echo "2" > /tmp/zookeeper/myid # zoo2节点
      echo "3" > /tmp/zookeeper/myid # zoo3节点
    • 启动 Zookeeper (每台机器):

      bin/zookeeper-server-start.sh config/zookeeper.properties
  4. 配置 Kafka Broker (每台机器):

    • 在每台机器上修改 config/server.properties 文件:
    TEXTbroker.id=0  # 每台机器的 broker.id 都不一样
    listeners=PLAINTEXT://192.168.1.101:9092 # 每台机器的 IP 地址不一样
    log.dirs=/tmp/kafka-logs
    zookeeper.connect=zoo1:2181,zoo2:2181,zoo3:2181 # Zookeeper 集群地址
    • broker.id: 每个 Broker 的唯一 ID,每台机器都应该不同 (例如:0, 1, 2)。
    • listeners: Kafka Broker 的监听地址,需要设置为每台机器的实际 IP 地址。
    • log.dirs: Kafka 日志存储目录。
    • zookeeper.connect: Zookeeper 集群的地址。
  5. 启动 Kafka Broker (每台机器):

    bin/kafka-server-start.sh config/server.properties
  6. 创建 Topic:

    bin/kafka-topics.sh --create --topic my-topic --partitions 3 --replication-factor 3 --bootstrap-server 192.168.1.101:9092,192.168.1.102:9092,192.168.1.103:9092
    • --partitions 3: 分区数量为 3。
    • --replication-factor 3: 副本数量为 3。
    • --bootstrap-server: Kafka Broker 的地址,多个地址之间用逗号分隔。
  7. 生产者 (Producer):

    bin/kafka-console-producer.sh --topic my-topic --bootstrap-server 192.168.1.101:9092,192.168.1.102:9092,192.168.1.103:9092
  8. 消费者 (Consumer):

    bin/kafka-console-consumer.sh --topic my-topic --from-beginning --bootstrap-server 192.168.1.101:9092,192.168.1.102:9092,192.168.1.103:9092

注意事项:

  • IP 地址和主机名: 请根据实际情况替换命令中的 IP 地址和主机名。
  • 防火墙: 确保你的防火墙允许 Kafka 和 Zookeeper 的端口通信。
  • 资源分配: 根据你的需求,合理分配 Kafka 和 Zookeeper 的资源。
  • 配置优化: 根据实际情况优化 Kafka 和 Zookeeper 的配置参数。
  • 版本: 请确保你下载的是最新版本的 Kafka 安装包。
分类: Linux 标签: 中间件kafka大数据

评论

-- 评论已关闭 --

目录