企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
*kafka*依赖*zookeeper*,因此在安装*kafka*之前先安装*zookeeper*。 *kafka*和*zookeeper*均依赖*jvm*环境,因此需要先配置*jvm*环境,本文<u>默认*jvm*环境已经配置完成</u>。 本文服务器信息:*192.168.8.222*、*192.168.8.223*、*192.168.8.224* #### 准备工作 为了端口可以通信,而且在内网环境,因此可直接关闭防火墙。 ```bash systemctl stop firewalld # 关闭防火墙 systemctl disable firewalld # 关闭开机时启动防火墙 ``` 创建*/opt/pluto*目录,计划将软件全部安装在此目录中。 ```bash mkdir -p /opt/pluto ``` #### *zookeeper*安装 先在第一台服务器上配置,再分发给其他服务器。 ```bash tar -zxvf zookeeper-3.4.14.tar.gz -C /opt/pluto # 解压压缩包 ``` ```bash mkdir -p /opt/pluto/zookeeper-3.4.14/data # 创建data目录 ``` ```bash cp /opt/pluto/zookeeper-3.4.14/conf/zoo_sample.cfg /opt/pluto/zookeeper-3.4.14/conf/zoo.cfg # cp ``` ![zoo.cfg](https://img.kancloud.cn/f6/0b/f60b9c5ddaed5fab699080e08bec0fc6_317x179.jpg) ```bash # 将dataDir=/tmp/zookeeper替换成dataDir=/opt/pluto/zookeeper-3.4.14/data sed -i '/dataDir=\/tmp\/zookeeper/cdataDir=\/opt\/pluto\/zookeeper-3.4.14\/data' /opt/pluto/zookeeper-3.4.14/conf/zoo.cfg ``` 在 *zoo.cfg* 文件的尾部添加集群信息,格式:*server.A=B:C:D* ```bash echo "server.1=192.168.8.222:2888:3888" >>/opt/pluto/zookeeper-3.4.14/conf/zoo.cfg echo "server.2=192.168.8.223:2888:3888" >>/opt/pluto/zookeeper-3.4.14/conf/zoo.cfg echo "server.3=192.168.8.224:2888:3888" >>/opt/pluto/zookeeper-3.4.14/conf/zoo.cfg ``` *A*-节点编号 *B*-节点地址 *C*-选举端口 *D*-数据同步端口 将配置完成的 */opt/pluto/zookeeper-3.4.14* 文件夹分发到另外两台服务器相同的位置。 ```bash scp -r /opt/pluto/zookeeper-3.4.14/ root@192.168.8.223:/opt/pluto/ scp -r /opt/pluto/zookeeper-3.4.14/ root@192.168.8.224:/opt/pluto/ ``` 最后,在每台服务器的 */opt/pluto/zookeeper-3.4.14/data* 目录中创建一个名为 *myid* 的文件,标识服务器身份。 ```bash echo "1" >/opt/pluto/zookeeper-3.4.14/data/myid # 在第1台服务器上执行 ``` ```bash echo "2" >/opt/pluto/zookeeper-3.4.14/data/myid # 在第2台服务器上执行 ``` ```bash echo "3" >/opt/pluto/zookeeper-3.4.14/data/myid # 在第3台服务器上执行 ``` 至此,所有的*zookeeper*配置均已经完成。 启动 *zookeeper* 服务,分别在服务器上执行启动命令: ```bash cd /opt/pluto/zookeeper-3.4.14/ # 此步骤是为了使zookeeper.out文件创建在zookeeper-3.4.14目录中 /opt/pluto/zookeeper-3.4.14/bin/zkServer.sh start ``` ```bash /opt/pluto/zookeeper-3.4.14/bin/zkServer.sh status # 查看服务状态 ``` #### *kafka*安装 先在第一台服务器上配置,再分发给其他服务器。 ```bash tar -zxvf kafka_2.11-2.3.1.tgz -C /opt/pluto/ ``` ```bash mkdir -p /opt/pluto/kafka_2.11-2.3.1/kafka-logs # 创建kafka-logs目录 ``` 修改配置文件 */opt/pluto/kafka_2.11-2.3.1/config/server.properties* ①、修改 *log.dirs* ![kafka.cfg1](https://img.kancloud.cn/f4/f7/f4f758d926bbb48bb8f1dcf3fc790456_721x98.jpg) */tmp/kafka-logs* ==> */opt/pluto/kafka_2.11-2.3.1/kafka-logs* ②、修改 *zookeeper.connect* ![kafka.cfg2](https://img.kancloud.cn/d3/ce/d3ceefa0528826d5bd863eeab1f85995_753x178.jpg) *localhost:2181* ==> *192.168.8.222:2181,192.168.8.223:2181,192.168.8.224:2181* ③、修改 *listeners* ④、修改 *broker.id* 这两步等安装包分发完再配置。 分发安装包 ```bash scp -r /opt/pluto/kafka_2.11-2.3.1/ root@192.168.8.223:/opt/pluto/ scp -r /opt/pluto/kafka_2.11-2.3.1/ root@192.168.8.224:/opt/pluto/ ``` ③、修改 *listeners* ![kafka.cfg3](https://img.kancloud.cn/2c/da/2cdabd9ed0b040e973bcbbe628012258_752x188.jpg) 将 *#listeners=PLAINTEXT://:9092* 修改为: 第1台服务器:*listeners=PLAINTEXT://192.168.8.222:9092* 第2台服务器:*listeners=PLAINTEXT://192.168.8.223:9092* 第3台服务器:*listeners=PLAINTEXT://192.168.8.224:9092* ④、修改 *broker.id* ![kafka.cfg4](https://img.kancloud.cn/ae/e9/aee9497fa1c1bcf7844e190686e86efd_576x87.jpg) 将 *broker.id=0* 修改为: 第1台服务器:*broker.id=0* 第2台服务器:*broker.id=1* 第3台服务器:*broker.id=2* 至此,所有的*kafka*配置均已经完成。 启动 *kafka* 服务,分别在服务器上执行启动命令: > USAGE: /opt/pluto/kafka_2.11-2.3.1/bin/kafka-server-start.sh [-daemon] server.properties [--override property=value]* ```bash /opt/pluto/kafka_2.11-2.3.1/bin/kafka-server-start.sh -daemon /opt/pluto/kafka_2.11-2.3.1/config/server.properties ``` 可使用 `jps` 查看*kafka*进程信息 ```bash /opt/pluto/kafka_2.11-2.3.1/bin/kafka-topics.sh --zookeeper 192.168.8.222:2181 --create --topic gosuncn --partitions 3 --replication-factor 2 # 创建主题 gosuncn ``` ```bash /opt/pluto/kafka_2.11-2.3.1/bin/kafka-topics.sh --zookeeper 192.168.8.222:2181 --list # All主题 ``` ```bash /opt/pluto/kafka_2.11-2.3.1/bin/kafka-topics.sh --zookeeper 192.168.8.222:2181 --describe --topic gosuncn # 主题具体描述 ``` ```bash /opt/pluto/kafka_2.11-2.3.1/bin/kafka-console-consumer.sh --bootstrap-server 192.168.8.222:9092 --topic gosuncn # 消费者端 ``` ```bash /opt/pluto/kafka_2.11-2.3.1/bin/kafka-console-producer.sh --broker-list 192.168.8.222:9092 --topic gosuncn # 生产者端 ```