kafka集群及zookeeper集群搭建

本文详细介绍如何在三台CentOS虚拟机上搭建Zookeeper集群及Kafka集群,并分享了部署过程中可能遇到的问题及其解决办法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在搭建kafka集群之前首先需要搭建kafka集群,因为kafka需要依赖zookeeper
1.搭建zookeeper集群
   1.1.准备三台机器,可以是虚拟机,笔者使用的Vmware虚拟出了三台机器,使用的CentOS6.5镜像,ip地址如下:
   192.168.74.79
   192.168.74.80
   192.168.74.81
   修改/etc/hosts添加主机名,如下:

   192.168.74.79 node-01
   192.168.74.80 node-02
   192.168.74.81 node-03
  
   1.2.下载zookeeper二进制tar包,笔者使用的是zookeeper-3.4.6.tar.gz,可去zookeeper官网自行下载,下载完了后,上传到虚拟主机,在
   /usr/local下创建目录zookeeper并解压到该目录下
   # mkdir /usr/local/zookeeper
   # tar -zxvf zookeeper-3.4.6.tar.gz
  
   1.3.在/usr/local/zookeeper目录下创建data和logs目录用于记录zookeeper存放数据和日志记录
 
  # mkdir data logs
  
   1.4.cd 到zookeeper-3.4.6目录下,将conf目录下的zoo_sample.cfg文件复制一份并重命名为zoo.cfg
   # cp zoo_sample.cfg zoo.cfg
  
   1.5.修改zoo.cfg,需要修改和新增的内容如下:
   #修改成上面创建的data目录路径
   dataDir=/usr/local/zookeeper/data   
   #新增   
   dataLogDir=/usr/local/zookeeper/logs
   #新增
   server.1=node-01:2881:3881           
   server.2=node-02:2881:3881
   server.3=node-03:2881:3881
  
   1.6.其他机器按照上面步骤操作,启动zookeeper,cd到bin,./zkServer.sh start,查看zookeeper状态,./zkServer.sh status
   
2.搭建kafka集群
   还是zookeeper所使用的三台服务器,步骤如下:
   2.1.去官网下载kafka二进制安装tar包,笔者使用的是kafka_2.11-0.10.2.0.tgz,在/usr/local下创建kafka目录并解压到kafka目录下
   # mkdir /usr/local/kafka
   # tar -zxvf kafka_2.11-0.10.2.0.tgz
  
   2.2.进入到/usr/local/kafka/kafka_2.11-0.10.2.0/config目录下,修改server.properties
   #kafka唯一主机标识,不同机器中的kafka不能相同
   broker.id=0
   host.name=192.168.74.79
   log.dirs=/usr/local/kafka/kafkalogs
   zookeeper.connect=192.168.74.79:2181,192.168.74.80:2181,192.168.74.81:2181
   其他机器也是一样,记住broker.id不能再为0了
  

    2.3.启动kafka,bin/kafka-server-start.sh -daemon config/server.properties,通过jps查看kafka进程

   25052 Jps
   6622 Kafka

3.kafka集群搭建遇到的那些坑:

1、如果你的kafka中的server.properties文件中的broker.id=0不修改,启动时会报错,按照顺序依次修改成0,1,2......

2、server.properties文件中如果没有host.name就要加上,否则通过kafka api会无法访问

3、使用bin/kafka-server-stop.sh在centOS6.5关闭失效,使用kill -s TERM $(jps -l | grep 'kafka\.Kafka' | awk '{print $1}')关闭

4、使用bin/kafka-server-start config/server.properties & 当关闭控制台后kafka就会自动关闭,所以应该使用bin/kafka-server-start -daemon config/server.properties &作为后台程序运行
### KafkaZooKeeper 集群部署教程及配置指南 #### 使用 Docker 进行 KafkaZookeeper集群化部署 对于希望简化环境设置并提高可移植性的开发者来说,Docker 提供了一种理想的方式来进行 Kafka 及其依赖组件 Zookeeper集群部署。通过容器技术,可以实现一致性和便捷性,在任何支持 Docker 的环境中都能迅速复制相同的服务架构。 #### 准备工作 确保本地机器已安装 Docker 并能够正常运行多容器应用程序。如果尚未完成此步骤,则需先下载并安装最新版本的 Docker Desktop 或适用于服务器的操作系统版 Docker Engine[^1]。 #### 创建 Docker Compose 文件 为了更方便地管理和启动多个关联的服务实例,推荐采用 `docker-compose.yml` 来描述整个系统的构成。下面给出一个简单的例子: ```yaml version: '3' services: zookeeper-1: image: wurstmeister/zookeeper ports: - "2181" environment: ZOO_MY_ID: 1 ZOO_SERVERS: server.1=zookeeper-1:2888:3888;2181 server.2=zookeeper-2:2888:3888;2181 server.3=zookeeper-3:2888:3888;2181 zookeeper-2: image: wurstmeister/zookeeper ports: - "2182" environment: ZOO_MY_ID: 2 ZOO_SERVERS: server.1=zookeeper-1:2888:3888;2181 server.2=zookeeper-2:2888:3888;2181 server.3=zookeeper-3:2888:3888;2181 zookeeper-3: image: wurstmeister/zookeeper ports: - "2183" environment: ZOO_MY_ID: 3 ZOO_SERVERS: server.1=zookeeper-1:2888:3888;2181 server.2=zookeeper-2:2888:3888;2181 server.3=zookeeper-3:2888:3888;2181 kafka-broker-1: image: wurstmeister/kafka depends_on: - zookeeper-2 - zookeeper-3 ports: - "9092" environment: KAFKA_ZOOKEEPER_CONNECT: zookeeper-1:2181,zookeeper-2:2182,zookeeper-3:2183 KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092 ``` 上述 YAML 定义了一个由三节点组成的 Zookeeper 集群以及连接到该集群的一个 Kafka 经纪人 (broker)。 #### 启动服务 保存文件后,在命令行工具中切换至包含 `docker-compose.yml` 文件所在的目录,并执行如下指令来初始化所有指定的服务: ```bash docker-compose up -d ``` 这将会以后台模式启动所有的容器,并使它们保持持续运行状态直到手动停止为止。此时应该可以通过访问各自映射出来的端口号来验证各个组件是否成功上线。 #### 测试消息发送接收功能 一旦确认集群已经稳定运作之后,就可以尝试向新建立的主题发布一些测试数据包以检验整体性能表现了。这里建议利用官方提供的 CLI 工具或者第三方图形界面客户端来进行这项操作[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值