OpenEuler22.04配置zookeeper+kafka三节点集群

OpenEuler22.04配置zookeeper+kafka三节点集群

  • [1. 基础环境](#1. 基础环境)
  • [2. 部署zookeeper集群](#2. 部署zookeeper集群)
    • [2.1 下载、解压](#2.1 下载、解压)
    • [2.2 配置](#2.2 配置)
    • [2.3 配置zookeeper服务](#2.3 配置zookeeper服务)
  • [3. 配置kafka集群](#3. 配置kafka集群)
    • [3.1 下载解压](#3.1 下载解压)
    • [3.2 配置](#3.2 配置)
    • [3.3 配置服务](#3.3 配置服务)
    • [3.4 kafka常用命令](#3.4 kafka常用命令)
  • [4. 其它](#4. 其它)

感觉OpenEuler的操作方式跟centos区别不大,下面的操作在centos下也可行

1. 基础环境

三主机节点IP:

192.168.8.10

192.168.8.11

192.168.8.12

配置一些所需的基础软件

bash 复制代码
yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel wget curl  lrzsz bash-completion

2. 部署zookeeper集群

下载:apache-zookeeper-3.8.4-bin.tar.gz

下载链接地址:https://zookeeper.apache.org/releases.html

2.1 下载、解压

bash 复制代码
cd /tmp/
wget https://www.apache.org/dyn/closer.lua/zookeeper/zookeeper-3.8.4/apache-zookeeper-3.8.4-bin.tar.gz
tar -xvf apache-zookeeper-3.8.4-bin.tar.gz
mv apache-zookeeper-3.8.4-bin /usr/local/
cd /usr/local/
ln -sv apache-zookeeper-3.8.4-bin zookeeper
cd /usr/local/zookeeper/conf/

2.2 配置

简单配置

bash 复制代码
mkdir -pv /usr/local/zookeeper/data
mkdir -pv /usr/local/zookeeper/logs
# 复制配置文件
cp zoo_sample.cfg zoo.cfg
vim  zoo.cfg

配置文件内容如下:

bash 复制代码
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/local/zookeeper/data
dataLogDir=/usr/local/zookeeper/logs
clientPort=2181
server.1=192.168.8.10:2888:3888
server.2=192.168.8.11:2888:3888
server.3=192.168.8.12:2888:3888

分别在3台主机上修改myid

bash 复制代码
/usr/local/zookeeper/data/myid

#server1 192.168.8.10 执行
echo "1" > /usr/local/zookeeper/data/myid
#server2 192.168.8.11 执行
echo "2" > /usr/local/zookeeper/data/myid
#server3 192.168.8.12 执行
echo "3" > /usr/local/zookeeper/data/myid

2.3 配置zookeeper服务

使用systemd管理服务

bash 复制代码
vim /usr/lib/systemd/system/zookeeper.service

服务配置文件如下

bash 复制代码
[Unit]
Description=zookeeper server daemon
After=zookeeper.target

[Service]
Type=forking
ExecStart=/usr/local/zookeeper/bin/zkServer.sh start
ExecReload=/usr/local/zookeeper/bin/zkServer.sh stop && sleep 2 && /usr/local/zookeeper/bin/zkServer.sh start
ExecStop=/usr/local/zookeeper/bin/zkServer.sh stop
Restart=always

[Install]

WantedBy=multi-user.target

配置完成后启动服务

bash 复制代码
systemctl start zookeeper
查看启动状态
systemctl status zookeeper
/usr/local/zookeeper/bin/zkServer.sh status

设置开机启动

bash 复制代码
systemctl enable zookeeper

3. 配置kafka集群

3.1 下载解压

下载:kafka_2.12-3.8.1.tgz

下载页面:https://kafka.apache.org/downloads.html

bash 复制代码
cd /tmp/
wget https://dlcdn.apache.org/kafka/3.8.1/kafka_2.12-3.8.1.tgz
tar -xvf kafka_2.12-3.8.1.tgz
mv kafka_2.12-3.8.1 /usr/local/
cd /usr/local/
ln -sv kafka_2.12-3.8.1 kafka
mkdir -pv /data/kafka/data/logs

3.2 配置

简单配置

bash 复制代码
cd /usr/local/kafka/config/
vim server.properties

第一台:192.168.8.10配置如下:

bash 复制代码
host.name=192.168.8.10
listeners=PLAINTEXT://192.168.8.10:9092
advertised.listeners=PLAINTEXT://192.168.8.10:9092

log.dirs=/data/kafka/data/logs
zookeeper.connect=192.168.8.10:2181,192.168.8.11:2181,192.168.8.12:2181


log.retention.hours=48
log.cleaner.enable=true

第2台:192.168.8.11配置如下:

bash 复制代码
host.name=192.168.8.11
listeners=PLAINTEXT://192.168.8.11:9092
advertised.listeners=PLAINTEXT://192.168.8.11:9092

log.dirs=/data/kafka/data/logs
zookeeper.connect=192.168.8.10:2181,192.168.8.11:2181,192.168.8.12:2181

第3台:192.168.8.12配置如下:

bash 复制代码
host.name=192.168.8.12
listeners=PLAINTEXT://192.168.8.12:9092
advertised.listeners=PLAINTEXT://192.168.8.12:9092

log.dirs=/data/kafka/data/logs
zookeeper.connect=192.168.8.10:2181,192.168.8.11:2181,192.168.8.12:2181

3.3 配置服务

使用systemd管理服务

bash 复制代码
vim /usr/lib/systemd/system/kafka.service

服务配置文件如下

bash 复制代码
[Unit]
Description=kafka server daemon
After=kafka.target

[Service]

Type=forking
ExecStart=/usr/local/kafka/bin/kafka-server-start.sh -daemon /usr/local/kafka/config/server.properties
ExecReload=/usr/local/kafka/bin/kafka-server-stop.sh && sleep 2 && /usr/local/kafka/bin/kafka-server-start.sh -daemon /usr/local/kafka/config/server.properties
ExecStop=/usr/local/kafka/bin/kafka-server-stop.sh
Restart=always

[Install]
WantedBy=multi-user.target

配置完成后启动服务

bash 复制代码
systemctl start kafka
查看启动状态
systemctl status kafka

设置开机启动

bash 复制代码
systemctl enable kafka

3.4 kafka常用命令

创建一个topic,test

bash 复制代码
bin/kafka-topics.sh --create --bootstrap-server 192.168.8.12:9092 --replication-factor 2 --partitions 3 --topic test

查看一个topic情况

bash 复制代码
./bin/kafka-topics.sh --describe --bootstrap-server 192.168.8.12:9092 --topic test

修改一个topic

bash 复制代码
bin/kafka-topics.sh --alter  --bootstrap-server 192.168.8.12:9092 --topic test  --partitions 8 

创建topic成功,查看topic列表

bash 复制代码
bin/kafka-topics.sh --list --bootstrap-server 192.168.8.12:9092

生产者producer测试发送消息

bash 复制代码
bin/kafka-console-producer.sh --broker-list 192.168.8.12:9092 --topic test

用另一个shell窗口,消费者consumer测试接收消息

bash 复制代码
bin/kafka-console-consumer.sh --bootstrap-server 192.168.8.12:9092 --topic test --from-beginning

能够正常收发信息,说明安装成功了

创建项目用的topic

bash 复制代码
bin/kafka-topics.sh --create --bootstrap-server 192.168.8.12:9092 --replication-factor 1 --partitions 1 --topic test-project
bin/kafka-topics.sh --create --bootstrap-server 192.168.8.12:9092 --replication-factor 1 --partitions 10 --topic test-project

查看topic消息消费情况

bash 复制代码
bin/kafka-consumer-groups.sh --bootstrap-server 192.168.8.12:9092 --list

查看topic消息组消费情况

bash 复制代码
bin/kafka-consumer-groups.sh --describe --bootstrap-server 192.168.8.12:9092 --group test-consumer

4. 其它

注意: 上面的配置都是不带用户认证的,只适合本机或局域网访问。如果考虑到安全性,主要添加主机防火墙和用户认证。

相关推荐
程序员泠零澪回家种桔子1 分钟前
分布式事务核心解析与实战方案
分布式
凯子坚持 c39 分钟前
CANN 生态中的分布式训练利器:深入 `collective-ops` 项目实现高效多卡协同
分布式
岁岁种桃花儿1 小时前
Kafka从入门到上天系列第一篇:kafka的安装和启动
大数据·中间件·kafka
惊讶的猫2 小时前
rabbitmq实践小案例
分布式·rabbitmq
禁默3 小时前
打破集群通信“内存墙”:手把手教你用 CANN SHMEM 重构 AIGC 分布式算子
分布式·重构·aigc
惊讶的猫4 小时前
rabbitmq初步介绍
分布式·rabbitmq
小镇敲码人4 小时前
华为CANN框架中HCCL仓库的全面解析:分布式通信的引擎
分布式·华为
User_芊芊君子5 小时前
【分布式训练】CANN SHMEM跨设备内存通信库:构建高效多机多卡训练的关键组件
分布式·深度学习·神经网络·wpf
酷酷的崽7985 小时前
CANN 开源生态解析(四):`cann-dist-train` —— 构建高效可扩展的分布式训练引擎
分布式·开源
惊讶的猫6 小时前
AMQP 与 RabbitMQ 四大模型
分布式·rabbitmq