什么行业应该做网站,网站百度收录快,简单的网站,wordpress编辑新页面文章目录 一、简介二、单机部署2.1 上传压缩包2.2 解压压缩包2.3 修改配置文件#xff08;1#xff09;配置zookeeper地址#xff08;2#xff09;修改kafka运行日志(数据)存储路径 2.4 配置环境变量2.5 启动/关闭2.6 测试#xff08;1#xff09;查看当前服务器中的所有… 文章目录 一、简介二、单机部署2.1 上传压缩包2.2 解压压缩包2.3 修改配置文件1配置zookeeper地址2修改kafka运行日志(数据)存储路径 2.4 配置环境变量2.5 启动/关闭2.6 测试1查看当前服务器中的所有topic2创建topic等增删改查操作未测试担心后面升级为集群模式时出问题。 三、集群部署3.0 清空log.dirs目录并删除zookeeper的kafka节点3.1 同步到其他机器1同步Kafka软件2修改其他机器的broker.id3配置其他机器的环境变量 3.2 启动/停止集群3.3 测试1查看当前服务器中的所有topic2创建topic3删除topic4发送消息5消费消息6查看某个Topic的详情7修改分区数 四、监控kafka-eagle单机模式4.0 上传并解压kafka-eagle压缩包4.1 修改Kafka集群配置1暴露JMX端口2调大Kafka内存3分发配置 4.2 配置kafka-eagle4.2.1 修改配置文件1配置zk地址2Kafka Offset的存储地址3配置MySQL地址4其他配置 4.2.2 配置环境变量 4.3 启动4.3.1 启动Kafka集群4.3.2 启动kafka-eagle4.3.3 关闭kafka-eagle 4.4 测试 一、简介 Kafka官网https://kafka.apache.org/intro Kafka是Scala开发的运行依赖JVM所以安装Kafka前需要先安装JDK。 二、单机部署 Kafka集群化部署需要分布式协调服务来帮助Kafka实现高可用分布式协调服务可以使用通用解决方案Zookeeper或Kafka内部实现的KRaft。ZooKeeper充当的角色是帮助提供公平的选举机制选举leader等作用。本例采用的模式是Kafka with ZooKeeper参考资料丰富。 2.1 上传压缩包
2.2 解压压缩包
[hadoophadoop102 software]$ tar -zxvf kafka_2.11-2.4.1.tgz -C /opt/module/2.3 修改配置文件
[hadoophadoop102 config]$ vim server.properties1配置zookeeper地址
zookeeper.connecthadoop102:2181,hadoop103:2181,hadoop104:2181/kafka2修改kafka运行日志(数据)存储路径
log.dirs/opt/module/kafka_2.11-2.4.1/datas2.4 配置环境变量
[hadoophadoop102 config]$ sudo vim /etc/profile.d/my_env.sh新增内容
#KAFKA_HOME
export KAFKA_HOME/opt/module/kafka_2.11-2.4.1
export PATH$PATH:$KAFKA_HOME/bin使环境变量生效
[hadoophadoop102 config]$ source /etc/profile2.5 启动/关闭
[hadoophadoop102 config]$ cd /opt/module/kafka_2.11-2.4.1/
[hadoophadoop102 kafka_2.11-2.4.1]$ bin/kafka-server-start.sh -daemon config/server.properties
[hadoophadoop102 kafka_2.11-2.4.1]$ bin/kafka-server-stop.sh stop2.6 测试
1查看当前服务器中的所有topic 两种查看方式一种是连kafka查看一种是连zookeeper看topic信息存zookeeper上了 [hadoophadoop102 kafka_2.11-2.4.1]$ bin/kafka-topics.sh --zookeeper hadoop102:2181/kafka --list
[hadoophadoop102 kafka_2.11-2.4.1]$ bin/kafka-topics.sh --bootstrap-server hadoop102:9092 --list2创建topic等增删改查操作未测试担心后面升级为集群模式时出问题。
三、集群部署 从Kafka单机模式升级到Kafka集群模式一定要先清空log.dirs目录否则其他机器会启动失败。需要清空zookeeper中kafka信息吗 3.0 清空log.dirs目录并删除zookeeper的kafka节点
[hadoophadoop102 kafka_2.11-2.4.1]$ rm -r datas/
# 启动zookeeper客户端
[zk: localhost:2181(CONNECTED) 5] deleteall /kafka3.1 同步到其他机器
1同步Kafka软件
[hadoophadoop102 ~]$ mytools_rsync /opt/module/kafka_2.11-2.4.1/2修改其他机器的broker.id 不同机器的brokerid不能相同 [hadoophadoop103 config]$ vim server.properties
# 修改内容broker.id1
[hadoophadoop104 config]$ vim server.properties
# 修改内容broker.id23配置其他机器的环境变量
[hadoophadoop103 config]$ sudo vim /etc/profile.d/my_env.sh
[hadoophadoop104 config]$ sudo vim /etc/profile.d/my_env.sh新增内容
#KAFKA_HOME
export KAFKA_HOME/opt/module/kafka_2.11-2.4.1
export PATH$PATH:$KAFKA_HOME/bin使环境变量生效
[hadoophadoop103 config]$ source /etc/profile
[hadoophadoop104 config]$ source /etc/profile3.2 启动/停止集群
# 启动
[hadoophadoop102 config]$ cd /opt/module/kafka_2.11-2.4.1/
[hadoophadoop102 kafka_2.11-2.4.1]$ bin/kafka-server-start.sh -daemon config/server.properties
[hadoophadoop103 config]$ cd /opt/module/kafka_2.11-2.4.1/
[hadoophadoop103 kafka_2.11-2.4.1]$ bin/kafka-server-start.sh -daemon config/server.properties
[hadoophadoop104 config]$ cd /opt/module/kafka_2.11-2.4.1/
[hadoophadoop104 kafka_2.11-2.4.1]$ bin/kafka-server-start.sh -daemon config/server.properties# 停止
[hadoophadoop102 kafka_2.11-2.4.1]$ bin/kafka-server-stop.sh stop
[hadoophadoop103 kafka_2.11-2.4.1]$ bin/kafka-server-stop.sh stop
[hadoophadoop104 kafka_2.11-2.4.1]$ bin/kafka-server-stop.sh stop3.3 测试
1查看当前服务器中的所有topic
[hadoophadoop102 kafka_2.11-2.4.1]$ bin/kafka-topics.sh --bootstrap-server hadoop102:9092 --list2创建topic
[hadoophadoop102 kafka_2.11-2.4.1]$ bin/kafka-topics.sh --bootstrap-server hadoop102:9092 --create --replication-factor 2 --partitions 1 --topic first-topic选项说明 –topic 定义topic名 –replication-factor 定义副本数 –partitions 定义分区数 3删除topic
[hadoophadoop102 kafka_2.11-2.4.1]$ bin/kafka-topics.sh --bootstrap-server hadoop102:9092 --delete --topic first-topic4发送消息
[hadoophadoop102 kafka_2.11-2.4.1]$ bin/kafka-console-producer.sh --broker-list hadoop102:9092 --topic first-topic发送内容
hello
hi~
are you ok?5消费消息
[hadoophadoop102 kafka_2.11-2.4.1]$ bin/kafka-console-consumer.sh --bootstrap-server hadoop102:9092 --topic first-topic
[hadoophadoop102 kafka_2.11-2.4.1]$ bin/kafka-console-consumer.sh --bootstrap-server hadoop102:9092 --from-beginning --topic first-topic消费者组内的消费者数和topic的分区数的关系 6查看某个Topic的详情
[hadoophadoop102 kafka_2.11-2.4.1]$ bin/kafka-topics.sh --bootstrap-server hadoop102:9092 --describe --topic first-topic7修改分区数
[hadoophadoop102 kafka_2.11-2.4.1]$ bin/kafka-topics.sh --bootstrap-server hadoop102:9092 --alter --topic first-topic --partitions 3四、监控kafka-eagle单机模式 用于监控Kafka的消息堆积、消息延迟等情况。 注意需要提前准备好MySQL环境kafka-eagle会将监控数据保存到MySQL中。 4.0 上传并解压kafka-eagle压缩包 注意压缩包里面还有一个压缩包需要解压两次 [hadoophadoop102 software]$ cd /opt/software/
[hadoophadoop102 software]$ tar -zxvf kafka-eagle-bin-1.4.8.tar.gz
[hadoophadoop102 software]$ cd kafka-eagle-bin-1.4.8/
[hadoophadoop102 kafka-eagle-bin-1.4.8]$ tar -zxvf kafka-eagle-web-1.4.8-bin.tar.gz -C /opt/module/4.1 修改Kafka集群配置 先关闭Kafka集群 [hadoophadoop102 bin]$ vim kafka-server-start.sh1暴露JMX端口 JMX(Java Management Extensions)是一个为应用程序植入管理功能的框架。JMX是一套标准的代理和服务实际上用户能够在任何Java应用程序中使用这些代理和服务实现管理。用人话说就是对外暴露更多数据方便某些监控之类的插件来使用 2调大Kafka内存 默认初始化内存、运行内存为1G使用kafka-eagle监控1G内存不够用。需要增加到2G。 修改内容
if [ x$KAFKA_HEAP_OPTS x ]; then#export KAFKA_HEAP_OPTS-Xmx1G -Xms1Gexport KAFKA_HEAP_OPTS-server -Xms2G -Xmx2G -XX:PermSize128m -XX:UseG1GC -XX:MaxGCPauseMillis200 -XX:ParallelGCThreads8 -XX:ConcGCThreads5 -XX:InitiatingHeapOccupancyPercent70export JMX_PORT9999
fi3分发配置
[hadoophadoop102 bin]$ mytools_rsync kafka-server-start.sh4.2 配置kafka-eagle
4.2.1 修改配置文件
[hadoophadoop102 ~]$ cd /opt/module/kafka-eagle-web-1.4.8/conf/
[hadoophadoop102 conf]$ vim system-config.properties1配置zk地址 为什么要配置zk的地址因为Kafka的配置信息存储在了zk中。 修改内容
kafka.eagle.zk.cluster.aliascluster1
cluster1.zk.listhadoop102:2181,hadoop103:2181,hadoop104:2181/kafka2Kafka Offset的存储地址 kafka-eagle需要监控Kafka的offset所以需要知道Kafka的offset存储在了哪里存储位置是在Kafka集群中配置的Kafka默认将offset存储在了kafka的topic中。 修改内容
cluster1.kafka.eagle.offset.storagekafka3配置MySQL地址
修改内容
kafka.eagle.drivercom.mysql.jdbc.Driver
kafka.eagle.urljdbc:mysql://mall:3306/ke?useUnicodetruecharacterEncodingUTF-8zeroDateTimeBehaviorconvertToNull
kafka.eagle.usernameroot
kafka.eagle.password1234564其他配置
# 是否启动监控图表
kafka.eagle.metrics.chartstrue4.2.2 配置环境变量
[hadoophadoop102 conf]$ sudo vim /etc/profile.d/my_env.sh新增内容
# kafkaEagle
export KE_HOME/opt/module/kafka-eagle-web-1.4.8
export PATH$PATH:$KE_HOME/bin使环境变量生效
[hadoophadoop102 conf]$ source /etc/profile4.3 启动
4.3.1 启动Kafka集群 见本文3.2内容 4.3.2 启动kafka-eagle 启动前先放开MySQL所在机器的3306端口号因为kafka-eagle启动后会进行初始化操作包括在MySQL中创建ke数据库等。如果不放开初始化数据库会失败 注意阿里云安全组内网之间也需要放开对应端口号才能通信。能互相ping同ip为什么不能连通端口 [hadoophadoop102 conf]$ cd /opt/module/kafka-eagle-web-1.4.8/bin
# 给启动文件执行权限
[hadoophadoop102 bin]$ chmod 777 ke.sh
[hadoophadoop102 bin]$ cd /opt/module/kafka-eagle-web-1.4.8/
[hadoophadoop102 kafka-eagle-web-1.4.8]$ bin/ke.sh start4.3.3 关闭kafka-eagle
[hadoophadoop102 kafka-eagle-web-1.4.8]$ bin/ke.sh stop4.4 测试 安全组放开8048端口 访问http://hadoop102:8048/ke Account:admin Password:123456