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. 其它

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

相关推荐
BYSJMG8 小时前
计算机毕设大数据方向:基于Spark+Hadoop的餐饮外卖平台数据分析系统【源码+文档+调试】
大数据·hadoop·分布式·python·spark·django·课程设计
PXM的算法星球11 小时前
ZooKeeper vs Redis:分布式锁的实现与选型指南
redis·分布式·zookeeper
THMAIL12 小时前
量化基金从小白到大师 - 金融数据获取大全:从免费API到Tick级数据实战指南
人工智能·python·深度学习·算法·机器学习·金融·kafka
寒士obj12 小时前
Redisson分布式锁:看门狗机制与续期原理
redis·分布式
Micrle_00712 小时前
java分布式场景怎么实现一个高效的 读-写锁
java·分布式
楠枬12 小时前
Curator 如何实现分布式锁
分布式·zookeeper
Badman13 小时前
分布式系统下的数据一致性-Redis分布式锁
redis·分布式·后端
武子康16 小时前
Java-118 深入浅出 MySQL ShardingSphere 分片剖析:SQL 支持范围、限制与优化实践
java·大数据·数据库·分布式·sql·mysql·性能优化
毕设源码-赖学姐17 小时前
【开题答辩全过程】以 基于Hadoop电商数据的可视化分析为例,包含答辩的问题和答案
大数据·hadoop·分布式
喂完待续18 小时前
【Big Data】Apache Kafka 分布式流处理平台的实时处理实践与洞察
分布式·kafka·消息队列·big data·数据处理·序列晋升