kafka集群部署

kafka集群部署

一、环境规划

组成安装节点版本
java1.8192.168.15.139 192.168.8.135 192.168.8.1361.8.0_212
kafka192.168.15.139 192.168.8.135 192.168.8.1363.1.0
zookeeper192.168.15.139 192.168.8.135 192.168.8.1363.1.0kafka自带
efak-web192.168.15.1392.1.0

二、安装kafka和zookeeper

1.下载kafka3.0以上版本,自带zookeeper

cd /usr/local
wget https://dlcdn.apache.org/kafka/3.1.0/kafka_2.13-3.1.0.tgz --no-check-certificate
tar -zxvf kafka_2.13-3.1.0.tgz(我这里解压了两次)
cd kafka_2.13-3.1.0/

2.编辑配置文件

vim config/server.properties
broker.id=0
listeners=PLAINTEXT://192.168.15.139:9092
log.dirs=/usr/local/kafka_2.13-3.1.0/kafka-logs
zookeeper.connect=192.168.15.139:2181,192.168.8.135:2181,192.168.8.136:2181

把kafka的包同步到另外两个节点

scp -r kafka_2.13-3.1.0 root@192.168.8.135:/usr/local/
scp -r kafka_2.13-3.1.0 root@192.168.8.136:/usr/local/

其它两个节点配置文件修改为

broker.id=1
listeners=PLAINTEXT://192.168.8.135:9092
log.dirs=/usr/local/kafka_2.13-3.1.0/kafka-logs
zookeeper.connect=192.168.15.139:2181,192.168.8.135:2181,192.168.8.136:2181
broker.id=2
listeners=PLAINTEXT://192.168.8.136:9092
log.dirs=/usr/local/kafka_2.13-3.1.0/kafka-logs
zookeeper.connect=192.168.15.139:2181,192.168.8.135:2181,192.168.8.136:2181

3.配置环境变量(三个节点都需要)

# 添加环境变量
vi /etc/profile
# 新增环境变量配置
export KAFKA_HOME=/usr/local/kafka_2.13-3.1.0
export PATH=$PATH:$KAFKA_HOME/bin
# 使得环境变量立刻生效
source /etc/profile

3.启动zookeeper

bin/zookeeper-server-start.sh -daemon ./config/zookeeper.properties &

4.启动kafka

bin/kafka-server-start.sh -daemon ./config/server.properties &

5.常用命令


#topic创建
./kafka-topics.sh --create --bootstrap-server IP:9092 --replication-factor 1 --partitions 1 --topic test1
 
#当前topic列表查看
./kafka-topics.sh --list --bootstrap-server IP:9092
 
#修改topic的partition数
kafka-topics.sh --bootstrap-server IP:9092 --alter --topic mytest --partitions 5
 
#topic对应的消息查看
./kafka-topics.sh --describe --bootstrap-server IP:9092
 
#topic删除
./kafka-topics.sh --delete --bootstrap-server IP:9092  --topic test1
 
#查看消费者组列表
./kafka-consumer-groups.sh --bootstrap-server 127.0.0.1:9092 --list
#查看消费者组的消费情况:
./kafka-consumer-groups.sh --describe --bootstrap-server 127.0.0.1:9092 --group invoiceUpload


三、安装kafka管理工具

1.下载并解压efak

mkdir -p /usr/local/kafka_2.13-3.1.0/efak
wget https://codeload.github.com/smartloli/kafka-eagle-bin/tar.gz/refs/tags/v2.1.0
tar -zxvf efak-web-2.1.0-bin.tar.gz

2.编辑system-config.properties

修改的地方看中文注释处

######################################
我们只有一个集群,把clustre2注释,cluster1.zk.list修改为zookeeper的集群节点,和kafka配置文件上的一致
######################################
efak.zk.cluster.alias=cluster1
cluster1.zk.list=192.168.15.139:2181,192.168.8.135:2181,192.168.8.136:2181
#cluster2.zk.list=xdn10:2181,xdn11:2181,xdn12:2181

######################################
# zookeeper enable acl
######################################
cluster1.zk.acl.enable=false
cluster1.zk.acl.schema=digest
cluster1.zk.acl.username=test
cluster1.zk.acl.password=test123

######################################
# broker size online list
######################################
cluster1.efak.broker.size=20

######################################
# zk client thread limit
######################################
kafka.zk.limit.size=16

######################################
# EFAK webui port
######################################
efak.webui.port=8048

######################################
# EFAK enable distributed
######################################
efak.distributed.enable=false
efak.cluster.mode.status=master
efak.worknode.master.host=localhost
efak.worknode.port=8085

######################################
# kafka jmx acl and ssl authenticate
######################################
cluster1.efak.jmx.acl=false
cluster1.efak.jmx.user=keadmin
cluster1.efak.jmx.password=keadmin123
cluster1.efak.jmx.ssl=false
cluster1.efak.jmx.truststore.location=/data/ssl/certificates/kafka.truststore
cluster1.efak.jmx.truststore.password=ke123456

######################################
# kafka offset storage
######################################
cluster1.efak.offset.storage=kafka
cluster2.efak.offset.storage=zk

######################################
# kafka jmx uri
######################################
cluster1.efak.jmx.uri=service:jmx:rmi:///jndi/rmi://%s/jmxrmi

######################################
# kafka metrics, 15 days by default
######################################
efak.metrics.charts=true
efak.metrics.retain=15

######################################
# kafka sql topic records max
######################################
efak.sql.topic.records.max=5000
efak.sql.topic.preview.records.max=10

######################################
# delete kafka topic token
######################################
efak.topic.token=keadmin

######################################
# kafka sasl authenticate
######################################
cluster1.efak.sasl.enable=false
cluster1.efak.sasl.protocol=SASL_PLAINTEXT
cluster1.efak.sasl.mechanism=SCRAM-SHA-256
cluster1.efak.sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required username="kafka" password="kafka-eagle";
cluster1.efak.sasl.client.id=
cluster1.efak.blacklist.topics=
cluster1.efak.sasl.cgroup.enable=false
cluster1.efak.sasl.cgroup.topics=
cluster2.efak.sasl.enable=false
cluster2.efak.sasl.protocol=SASL_PLAINTEXT
cluster2.efak.sasl.mechanism=PLAIN
cluster2.efak.sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="kafka" password="kafka-eagle";
cluster2.efak.sasl.client.id=
cluster2.efak.blacklist.topics=
cluster2.efak.sasl.cgroup.enable=false
cluster2.efak.sasl.cgroup.topics=

######################################
# kafka ssl authenticate
######################################
cluster3.efak.ssl.enable=false
cluster3.efak.ssl.protocol=SSL
cluster3.efak.ssl.truststore.location=
cluster3.efak.ssl.truststore.password=
cluster3.efak.ssl.keystore.location=
cluster3.efak.ssl.keystore.password=
cluster3.efak.ssl.key.password=
cluster3.efak.ssl.endpoint.identification.algorithm=https
cluster3.efak.blacklist.topics=
cluster3.efak.ssl.cgroup.enable=false
cluster3.efak.ssl.cgroup.topics=

######################################
# 如果不用MySQL的话,把sqlite 注释放开
######################################
efak.driver=org.sqlite.JDBC
efak.url=jdbc:sqlite:/usr/local/kafka_2.13-3.1.0/efak/db/ke.db
efak.username=root
efak.password=anychat

######################################
#mysql的版本要8.0以上我的是5.7不符合,用自带的sqlite
######################################
#efak.driver=com.mysql.cj.jdbc.Driver
#efak.url=jdbc:mysql://127.0.0.1:3306/ke?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull
#efak.username=root
#efak.password=anychat


3.启动

# 进入启动命令文件夹
cd /usr/local/kafka_2.13-3.1.0/efak/efak-web-2.1.0/bin
# 授权
chmod 777 ke.sh
# 启动 服务
ke.sh start
# 重启
ke.sh restart
# 停止服务
ke.sh stop

4.访问

ip:8048
admin/123456

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值