当前位置:   article > 正文

kafka+zookeeper教程

kafka+zookeeper教程

1. 环境准备

  1. 环境准备
  2. 10.0.0.10110.0.0.10210.0.0.103
  3. 101上做到102103的免密登录
  4. #为了方便执行命令和传输文件,这里先在101创建2个脚本
  5. ]# cat > /usr/bin/data-rsync.sh <<'EOF'
  6. #!/bin/bash
  7. [ $# -ne 1 ] && {
  8. echo "usage: $0 PATH"
  9. exit 1
  10. }
  11. for ((id=102;id<=103;id++))
  12. do
  13. echo "---root@10.0.0.${id}----开始---"
  14. tput setaf 2
  15. rsync -avz --delete $1 root@10.0.0.${id}:`dirname $1`
  16. tput setaf 9
  17. echo -e "---root@10.0.0.${id}----结束---------------\n"
  18. done
  19. EOF
  20. ]# cat > /usr/bin/cmd-cluster.sh <<'EOF'
  21. #!/bin/bash
  22. [ $# -eq 0 ] && {
  23. echo "usage: $0 CMD"
  24. exit 1
  25. }
  26. for ((id=101;id<=103;id++))
  27. do
  28. echo "--10.0.0.${id}--开始-"
  29. tput setaf 2
  30. ssh root@10.0.0.${id} "$@"
  31. tput setaf 9
  32. echo -e "--10.0.0.${id}--结束--------------------\n"
  33. done
  34. EOF
  35. chmod +x /usr/bin/data-rsync.sh /usr/bin/cmd-cluster.sh

2. zookeeper相关

2.1. zookeeper单节点部署

  1. zookeeper单节点部署
  2. (1)下载zookeeper软件
  3. mkdir -p /data/tools/zookeeper/ && cd /data/tools/zookeeper/
  4. [root@elk1 ~]# wget https://dlcdn.apache.org/zookeeper/zookeeper-3.8.4/apache-zookeeper-3.8.4-bin.tar.gz
  5. (2)解压软件包
  6. [root@elk1 ~]# tar xf apache-zookeeper-3.8.4-bin.tar.gz
  7. (3)创建符号连接
  8. [root@elk1~]# ln -sv apache-zookeeper-3.8.4-bin zk
  9. (4)声明zk的环境变量
  10. [root@elk1]# cat > /etc/profile.d/kafka.sh <<'EOF'
  11. export ZK_HOME=/data/tools/zookeeper/zk
  12. export PATH=$PATH:$ZK_HOME/bin
  13. EOF
  14. echo -e "\nexport PATH=$PATH" >> /root/.bashrc
  15. source /etc/profile.d/kafka.sh /root/.bashrcv
  16. (5)创建zk的配置文件
  17. [root@elk1 ~]# cp /data/tools/zookeeper/zk/conf/{zoo_sample.cfg,zoo.cfg}
  18. (6)启动zk节点
  19. [root@elk1 ~]# zkServer.sh start
  20. [root@elk1 ~]# zkServer.sh status # 查看zk服务的状态信息
  21. [root@elk1 ~]# zkServer.sh stop
  22. [root@elk1 ~]# zkServer.sh restart
  23. (7)连接ZK节点
  24. [root@elk101 ~]# zkCli.sh

2.2. zookeeper常用命令

功能

命令

创建节点(znode)

create /path data

-s: 创建顺序节点

-e: 创建临时节点

获取znode的数据

get /path

设置znode的数据

set /path data

创建子节点

create /paren/path/subNode data

列出子节点

ls /path

查看znode的状态

stat /path

删除znode

delete /path

递归删除其子节点使用

deleteall /path

2.3. zookeeper集群部署与管理

2.3.1. zookeeper集群部署

  1. zookeeper集群部署
  2. (1)101下载zookeeper软件
  3. [root@elk1 ~]# mkdir -p /data/tools/zookeeper/ && cd /data/tools/zookeeper/
  4. [root@elk1 ~]# wget https://dlcdn.apache.org/zookeeper/zookeeper-3.8.4/apache-zookeeper-3.8.4-bin.tar.gz
  5. 1)配置101101,102103的免密
  6. [root@elk101 ~]# ssh-keygen
  7. [root@elk101 ~]# ssh-copy-id 10.0.0.101
  8. [root@elk101 ~]# ssh-copy-id 10.0.0.102
  9. [root@elk101 ~]# ssh-copy-id 10.0.0.103
  10. (2)101节点解压软件包
  11. [root@elk101 ~]# tar xf apache-zookeeper-3.8.4-bin.tar.gz
  12. (3)101节点创建符号连接
  13. [root@elk101 ~]# ln -sv apache-zookeeper-3.8.4-bin zk
  14. (4)101节点声明zk的环境变量
  15. [root@elk101 ~]# cat > /etc/profile.d/kafka.sh <<'EOF'
  16. export ZK_HOME=/data/tools/zookeeper/zk
  17. export PATH=$PATH:$ZK_HOME/bin
  18. EOF
  19. (5)101节点创建zk的数据目录
  20. [root@elk101 ~]# mkdir -p /data/data/zk
  21. (6)101节点创建zk的配置文件
  22. [root@elk101 ~]# cat > /data/tools/zookeeper/zk/conf/zoo.cfg << EOF
  23. # 定义最小单元的时间范围tick。
  24. tickTime=2000
  25. # 启动时最长等待tick数量。
  26. initLimit=5
  27. # 数据同步时最长等待的tick时间进行响应ACK
  28. syncLimit=2
  29. # 指定数据目录
  30. dataDir=/data/data/zk
  31. # 监听端口
  32. clientPort=2181
  33. # 开启四字命令允许所有的节点访问。
  34. 4lw.commands.whitelist=*
  35. # server.ID=A:B:C[:D]
  36. # ID:
  37. # zk的唯一编号。
  38. # A:
  39. # zk的主机地址。
  40. # B:
  41. # leader的选举端口,是谁leader角色,就会监听该端口。
  42. # C:
  43. # 数据通信端口。
  44. # D:
  45. # 可选配置,指定角色。
  46. server.101=10.0.0.101:2888:3888
  47. server.102=10.0.0.102:2888:3888
  48. server.103=10.0.0.103:2888:3888
  49. EOF
  50. (7)101同步相关目录到102103节点
  51. [root@elk101 ~]# data-rsync.sh /data/data/zk
  52. [root@elk101 ~]# data-rsync.sh /data/tools/zookeeper
  53. [root@elk101 ~]# data-rsync.sh /etc/profile.d/kafka.sh
  54. (8)所有节点创建myid文件
  55. [root@elk101 ~]# cmd-cluster.sh
  56. do ssh 10.0.0.${host_id} "echo ${host_id} > /data/data/zk/myid";
  57. done
  58. (9)所有节点加载zk环境变量
  59. [root@elk101 ~]# cmd-cluster.sh "source /etc/profile.d/kafka.sh;echo export PATH=$PATH >> /root/.bashrc;source /root/.bashrc"
  60. (10)所有节点启动zk服务
  61. [root@elk101 ~]# cmd-cluster.sh "zkServer.sh start"
  62. (11)所有节点查看zk的角色状态
  63. [root@elk101 ~]# cmd-cluster.sh "zkServer.sh status"

2.3.2. zookeeper集群管理

  1. 编写zookeeper的集群管理脚本
  2. [root@elk101]# cat > /usr/local/sbin/zkManager.sh <<'EOF'
  3. #!/bin/bash
  4. #判断用户是否传参
  5. if [ $# -ne 1 ];then
  6. echo "无效参数,用法为: $0 {start|stop|restart|status}"
  7. exit
  8. fi
  9. #获取用户输入的命令
  10. cmd=$1
  11. #定义函数功能
  12. function zookeeperManger(){
  13. case $cmd in
  14. start)
  15. echo "启动服务"
  16. remoteExecution start
  17. ;;
  18. stop)
  19. echo "停止服务"
  20. remoteExecution stop
  21. ;;
  22. restart)
  23. echo "重启服务"
  24. remoteExecution restart
  25. ;;
  26. status)
  27. echo "查看状态"
  28. remoteExecution status
  29. ;;
  30. *)
  31. echo "无效参数,用法为: $0 {start|stop|restart|status}"
  32. ;;
  33. esac
  34. }
  35. #定义执行的命令
  36. function remoteExecution(){
  37. for (( i=101 ; i<=103 ; i++ )) ; do
  38. tput setaf 2
  39. echo ========== 10.0.0.${i} zkServer.sh $1 ================
  40. tput setaf 9
  41. ssh 10.0.0.${i} "zkServer.sh $1 2>/dev/null"
  42. done
  43. }
  44. #调用函数
  45. zookeeperManger
  46. EOF
  47. #给脚本添加执行权限
  48. [root@elk1~]# chmod +x /usr/local/sbin/zkManager.sh
  49. #使用
  50. zkManager.sh start|stop|restart|status

2.4. 修改zookeeper的堆内存大小

  1. 修改zookeeper的堆内存大小:
  2. 温馨提示: 修改zookeeper的堆内存大小,一般情况下,生产环境给到2G足以,如果规模较大可以适当调大到4G。
  3. (1)查看zk默认的堆内存大小为1GB。
  4. [root@elk101 ~]# jmap -heap `jps | awk '/QuorumPeerMain/{print $1}'`|grep -i heapsize
  5. (2)配置ZK的堆内存
  6. [root@elk101 ~]# cat > /data/tools/zookeeper/zk/conf/java.env << 'EOF'
  7. export JVMFLAGS="-Xms256m -Xmx256m $JVMFLAGS"
  8. EOF
  9. (3)将配置文件同步到集群的其他zk节点上
  10. [root@elk101 ~]# data-rsync.sh /data/tools/zookeeper/zk/conf/java.env
  11. (4)重启ZK集群
  12. [root@elk101 ~]# zkManager.sh restart
  13. (5)验证堆内存
  14. [root@elk101 ~]# jmap -heap `jps | awk '/QuorumPeerMain/{print $1}'`|grep -i heapsize

3. kafka相关

3.1. kafka单点部署

  1. 快速搭建kafka单点环境
  2. (1)下载kafka软件包
  3. [root@elk101 ~]# mkdir -p /data/tools/kafka/ && cd /data/tools/kafka/
  4. [root@elk101 ~]# wget https://downloads.apache.org/kafka/3.8.0/kafka_2.13-3.8.0.tgz
  5. (2)解压软件包
  6. [root@elk101 ~]# tar xf kafka_2.13-3.8.0.tgz
  7. (3)创建符号连接
  8. [root@elk101 ~]# ln -svf /data/tools/kafka/kafka_2.13-3.8.0 /data/tools/kafka/kafka
  9. (4)配置环境变量
  10. [root@elk101 ]# cat > /etc/profile.d/kafka.sh <<'EOF'
  11. export ZK_HOME=/data/tools/zookeeper/zk
  12. export KAFKA_HOME=/data/tools/kafka/kafka
  13. export PATH=$PATH:$KAFKA_HOME/bin:$ZK_HOME/bin
  14. EOF
  15. [root@elk101 ]# source /etc/profile.d/kafka.sh
  16. [root@elk101 ]# echo "export PATH=$PATH" >> /root/.bashrc
  17. [root@elk101 ]# source /root/.bashrc
  18. (5)修改配置文件
  19. [root@elk101 ~]# egrep '^broker|^zookeeper.connect=' /data/tools/kafka/kafka/config/server.properties
  20. broker.id=101
  21. zookeeper.connect=10.0.0.101:2181,10.0.0.102:2181,10.0.0.103:2181
  22. (6)启动kafka单点
  23. [root@elk101 ]# kafka-server-start.sh -daemon $KAFKA_HOME/config/server.properties
  24. (7)验证zookeeper的源数据信息
  25. zkCli.sh -server 10.0.0.101:2181,10.0.0.102:2181,10.0.0.103:2181
  26. (CONNECTED) 0] ls /brokers/ids
  27. [101]

3.2. kafka集群部署

  1. kafka集群部署
  2. (1)101节点下载kafka软件包
  3. [root@elk101 ~]# mkdir -p /data/tools/kafka/ && cd /data/tools/kafka/
  4. [root@elk101 ~]# wget https://downloads.apache.org/kafka/3.8.0/kafka_2.13-3.8.0.tgz
  5. (2)101节点解压软件包
  6. [root@elk101 ~]# tar xf kafka_2.13-3.8.0.tgz
  7. (3)101节点创建符号连接
  8. [root@elk101 ~]# ln -svf /data/tools/kafka/kafka_2.13-3.8.0 /data/tools/kafka/kafka
  9. (4)101节点配置环境变量
  10. [root@elk101 ]# cat > /etc/profile.d/kafka.sh <<'EOF'
  11. export ZK_HOME=/data/tools/zookeeper/zk
  12. export KAFKA_HOME=/data/tools/kafka/kafka
  13. export PATH=$PATH:$KAFKA_HOME/bin:$ZK_HOME/bin
  14. EOF
  15. [root@elk101 ]# source /etc/profile.d/kafka.sh
  16. [root@elk101 ]# echo "export PATH=$PATH" >> /root/.bashrc
  17. [root@elk101 ]# source /root/.bashrc
  18. (5)101节点修改配置文件
  19. [root@elk101 ~]# ]# egrep '^broker|^zookeeper.connect=|log.dirs' /data/tools/kafka/kafka/config/server.properties
  20. broker.id=101
  21. log.dirs=/data/data/kafka-logs
  22. zookeeper.connect=10.0.0.101:2181,10.0.0.102:2181,10.0.0.103:2181
  23. (6)101同步相关目录到102103节点
  24. [root@elk101 ~]# data-rsync.sh /data/data/kafka-logs
  25. [root@elk101 ~]# data-rsync.sh /data/tools/kafka
  26. [root@elk101 ~]# data-rsync.sh /etc/profile.d/kafka.sh
  27. (7)102,103配置文件修改
  28. [root@elk102 ~]# sed -i 's#^broker.id.*#broker.id=102#' /data/tools/kafka/kafka/config/server.properties
  29. [root@elk103 ~]# sed -i 's#^broker.id.*#broker.id=103#' /data/tools/kafka/kafka/config/server.properties
  30. (8)所有节点加载kafka环境变量
  31. [root@elk101 ~]# cmd-cluster.sh "source /etc/profile.d/kafka.sh; echo export PATH=$PATH >> /root/.bashrc ; source /root/.bashrc"
  32. (9)所有节点启动kafka服务
  33. [root@elk101 ~]# cmd-cluster.sh "kafka-server-start.sh -daemon $KAFKA_HOME/config/server.properties "
  34. (10)验证zookeeper的源数据信息
  35. zkCli.sh -server 10.0.0.101:2181,10.0.0.102:2181,10.0.0.103:2181
  36. (CONNECTED) 0] ls /brokers/ids
  37. [101, 102, 103]

3.3. kafka的常用术语

  1. kafka的常用术语:
  2. kafka cluster(broker list): kafka集群。
  3. kafka Server (broker): 指的是kafka集群的某个节点。
  4. Producer: 生产者,即往kafka集群写入数据的角色。
  5. Consumer: 消费者,即从kafka集群中读取数据的角色。一个消费者隶属于一个消费者组。
  6. Concumer Group: 消费者组,里面有一个或多个消费者。
  7. Topic: 主题,是一个逻辑概念,用于区分业务,一个主题最少要有1个分区和一个副本。
  8. Partition: 分区,分区可以暂时理解为分区编号。
  9. replica:
  10. 副本,副本是实际存储数据的地方,分为两种角色,即leader和follower。
  11. leader:
  12. 负责读写。
  13. follower:
  14. 负责从leader节点同步数据,无法对集群外部提供任何服务。当leader无法访问时,follower会接管leader的角色。
  15. AR:
  16. 所有的副本,包含leader和follower副本。
  17. ISR:
  18. 表示和leader同步的所有副本集合。
  19. OSR:
  20. 表示和leader不同步的所有副本即可。
  21. zookeeper集群:
  22. kafka 0.9之前的版本维护消费者组的offset,之后kafka内部的topic进行维护。
  23. 协调kafka的leader选举,控制器协调者选举等....
  24. client:
  25. consumer API:
  26. 即消费者,指的是从boker拉取数据的角色。
  27. 每个消费者均隶属于一个消费者组(consumer Group),一个消费者组内可以有多个消费者。
  28. producer API:
  29. 即生产者,指的是往broker写入数据的角色。
  30. admin API:
  31. 集群管理的相关API,包括topic,parititon,replica等管理。
  32. stream API:
  33. 数据流处理等API,提供给Spark,Flink,Storm分布式计算框架提供数据流管道。
  34. connect API:
  35. 连接数据库相关的API,例如将MySQL导入到kafka。
  36. 常见问题:
  37. Q1: 分区和副本有啥区别?
  38. 分区可以暂时理解为分区编号,它包含该分区编号的所有副本,和磁盘的分区没关系。
  39. 副本是实际存储数据的地方,
  40. Q2: offset存储在kafka集群,客户端在kafka集群任意一个节点如何获取偏移量。
  41. 通过内部的消费者组的偏移量读取即可。("__consumer_groups")

3.4. kafka topic管理命令

  1. topic管理:
  2. -1 查看topic
  3. #查看topic列表
  4. [root@elk101 ~]# kafka-topics.sh --bootstrap-server 10.0.0.101:9092,10.0.0.102:9092,10.0.0.103:9092 --list
  5. #查看指定topic的详细信息
  6. [root@elk101 ~]# kafka-topics.sh --bootstrap-server 10.0.0.101:9092,10.0.0.102:9092,10.0.0.103:9092 --describe --topic tom
  7. #查看所有的topic详细信息。
  8. [root@elk101 ~]# kafka-topics.sh --bootstrap-server 10.0.0.101:9092,10.0.0.102:9092,10.0.0.103:9092 --describe
  9. -2 创建topic
  10. 一个topic是生产者(producer)和消费者(consumer)进行通信的逻辑单元。
  11. 底层存储数据的是对应一个或多个分区(partition)副本(replica)。
  12. #创建一个名为"tom",分区数为3,副本数量为2的topic。
  13. [root@elk101 ~]# kafka-topics.sh --bootstrap-server 10.0.0.101:9092,10.0.0.102:9092,10.0.0.103:9092 --create --partitions 3 --replication-factor 2 --topic tom
  14. #创建一个名为"jack",分区数为3,副本数量为2的topic。
  15. [root@elk101 ~]# kafka-topics.sh --bootstrap-server 10.0.0.101:9092,10.0.0.102:9092,10.0.0.103:9092 --create --partitions 3 --replication-factor 2 --topic jack
  16. -3 修改topic(分区数量可以调大,但不可以调小!)
  17. [root@elk101 ~]# kafka-topics.sh --bootstrap-server 10.0.0.101:9092,10.0.0.102:9092,10.0.0.103:9092 --alter --topic tom --partitions 5
  18. -4 刪除topic
  19. [root@elk101 ~]# kafka-topics.sh --bootstrap-server 10.0.0.101:9092,10.0.0.102:9092,10.0.0.103:9092 --delete --topic tom
  20. -5 创建生产者
  21. [root@elk102 ~]# kafka-console-producer.sh --bootstrap-server 10.0.0.103:9092 --topic jack
  22. -6 创建消费者
  23. [root@elk103 ~]# kafka-console-consumer.sh --bootstrap-server 10.0.0.102:9092 --topic jack --from-beginning
  24. -7 消费者组案例
  25. (1)创建topic
  26. [root@elk103 ~]# kafka-topics.sh --bootstrap-server 10.0.0.101:9092 --create --partitions 3 --replication-factor 2 --topic group-test-topic
  27. (2)启动生产者
  28. [root@elk102 ~]# kafka-console-producer.sh --bootstrap-server 10.0.0.103:9092 --topic group-test-topic
  29. (3)启动消费者加入同一个消费者组
  30. #加入消费者组方式1
  31. [root@elk101 ~]# kafka-console-consumer.sh --bootstrap-server 10.0.0.102:9092 --topic group-test-topic --consumer-property group.id=test --from-beginning
  32. #加入消费者组方式2
  33. [root@elk103 ~]# kafka-console-consumer.sh --bootstrap-server 10.0.0.102:9092 --topic group-test-topic --consumer.config /data/tools/kafka/kafka/config/consumer.properties --from-beginning
  34. (4)测试
  35. 在生产者端写入数据,观察消费者的输出即可。
  36. (5)观察消费者组的详细信息
  37. [root@elk101 ~]# kafka-consumer-groups.sh --bootstrap-server 10.0.0.101:9092 --describe --group group-test-topic

3.5. kafka内存调优

  1. kafka堆内存调优:
  2. (1)修改启动脚本
  3. [root@elk101 ~]# vim `which kafka-server-start.sh ` +28
  4. ...
  5. if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then
  6. ...
  7. # 将原有的注释掉
  8. # export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"
  9. export KAFKA_HEAP_OPTS="-server -Xmx256m -Xms256m -XX:PermSize=128m -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:ParallelGCThreads=8 -XX:ConcGCThreads=5 -XX:InitiatingHeapOccupancyPercent=70"
  10. export JMX_PORT="8888"
  11. fi
  12. (2)同步集群启动脚本
  13. [root@elk101 ~]# data-rsync.sh `which kafka-server-start.sh`
  14. (3)重启kafka集群
  15. [root@elk101 ~]# cmd-cluster.sh "kafka-server-stop.sh"
  16. [root@elk101 ~]# cmd-cluster.sh "kafka-server-start.sh -daemon $KAFKA_HOME/config/server.properties"
  17. (4)验证kafka集群的内存大小
  18. [root@elk101 ~]# jmap -heap `jps | awk '/Kafka/{print $1}'`|grep MaxHeapSize
  19. [root@elk102 ~]# jmap -heap `jps | awk '/Kafka/{print $1}'`|grep MaxHeapSize
  20. [root@elk103 ~]# jmap -heap `jps | awk '/Kafka/{print $1}'`|grep MaxHeapSize

3.6. kafka-eagle管理kafka

3.6.1. 启动kafka的jmx端口

  1. -1 启动kafka的JMX端口
  2. (1)所有节点停止kafka
  3. [root@elk101 ~]# cmd-cluster.sh "kafka-server-stop.sh"
  4. (2)所有节点修改kafka的配置文件
  5. vim `which kafka-server-start.sh`
  6. ...
  7. # export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G" # 注视掉该行,并将下面2行复制即可
  8. export KAFKA_HEAP_OPTS="-server -Xmx256M -Xms256M -XX:PermSize=128m -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:ParallelGCThreads=8 -XX:ConcGCThreads=5 -XX:InitiatingHeapOccupancyPercent=70"
  9. export JMX_PORT="8888"
  10. (3)所有节点启动kafka服务
  11. [root@elk101 ~]# cmd-cluster.sh "kafka-server-start.sh -daemon $KAFKA_HOME/config/server.properties"
  12. cd /data/tools/kafka/
  13. windows 下载https://codeload.github.com/smartloli/kafka-eagle-bin/tar.gz/refs/tags/v3.0.1
  14. 上传至101节点

3.6.2. 启动zookeeper的jmx端口

  1. - 启动zookeeper的JMX端口
  2. (1)修改配置文件
  3. [root@elk101 ~]# vim /data/tools/zookeeper/zk/conf/zoo.cfg
  4. # 添加下面的一行,启动zk的4字监控命令
  5. 4lw.commands.whitelist=*
  6. (2)修改zk的启动脚本
  7. [root@elk101 ~]# vim /data/tools/zookeeper/zk/bin/zkServer.sh +77
  8. ...
  9. # 如果修改上面的方式不生效,则需修改zkServer.sh脚本中77行之后ZOOMAIN的值即可。
  10. ZOOMAIN="-Dzookeeper.4lw.commands.whitelist=* ${ZOOMAIN}"
  11. (3)修改环境变量开启JMX
  12. [root@elk101 ~]# vim /data/tools/zookeeper/zk/bin/zkEnv.sh
  13. ...
  14. JMXLOCALONLY=false
  15. JMXPORT=21812
  16. JMXSSL=false
  17. JMXLOG4J=false
  18. (4)同步脚本
  19. [root@elk101 ~]# data-rsync.sh /data/tools/zookeeper/zk/conf/zoo.cfg
  20. [root@elk101 ~]# data-rsync.sh /data/tools/zookeeper/zk/bin/zkServer.sh
  21. [root@elk101 ~]# data-rsync.sh /data/tools/zookeeper/zk/bin/zkEnv.sh
  22. (5)重启zookeeper
  23. [root@elk101 ~]# zkManager.sh restart
  24. (6)windows jconsole验证是否能连接JMX端口

3.6.3. 安装mysql,并配置

  1. yum -y install mariadb-server
  2. #配置mariadb的配置文件
  3. # 关闭MySQL的反向解析功能
  4. echo "skip-name-resolve=1" >> /etc/my.cnf
  5. skip-name-resolve=1
  6. systemctl enable mariadb.service --now
  7. #创建数据库,授权用户
  8. CREATE DATABASE efka DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
  9. GRANT ALL ON efka.* TO 'efka_admin'@'%' IDENTIFIED BY '123456';
  10. SHOW GRANTS FOR efka_admin;
  11. #测试用户
  12. mysql -u efka_admin -p123456 -h 10.0.0.102

3.6.4. 安装kafka-eagle监控

  1. #1 下载压缩包,上传,解压
  2. windows下载https://codeload.github.com/smartloli/kafka-eagle-bin/tar.gz/refs/tags/v3.0.1
  3. [root@elk101 ~]# cd /data/tools/kafka/
  4. [root@elk101 ~]# tar -xvf kafka-eagle-bin-3.0.1.tar.gz
  5. [root@elk101 ~]# cd kafka-eagle-bin-3.0.1
  6. [root@elk101 ~]# tar -xvf efak-web-3.0.1-bin.tar.gz
  7. [root@elk101 ~]# mv efak-web-3.0.1 /data/tools/kafka
  8. [root@elk101 ~]# cp /data/tools/kafka/efak-web-3.0.1/conf/{system-config.properties,.back}
  9. #2 修改配置
  10. [root@elk101 ~]# cat > /data/tools/kafka/efak-web-3.0.1/conf/system-config.properties <<EOF
  11. efak.zk.cluster.alias=prod
  12. prod.zk.list=10.0.0.101:2181,10.0.0.102:2181,10.0.0.103:2181
  13. prod.efak.broker.size=20
  14. kafka.zk.limit.size=32
  15. efak.webui.port=8048
  16. prod.efak.offset.storage=kafka
  17. prod.efak.jmx.uri=service:jmx:rmi:///jndi/rmi://%s/jmxrmi
  18. efak.metrics.charts=true
  19. efak.metrics.retain=15
  20. efak.sql.topic.records.max=5000
  21. efak.sql.topic.preview.records.max=10
  22. efak.topic.token=admin
  23. efak.driver=com.mysql.cj.jdbc.Driver
  24. efak.url=jdbc:mysql://10.0.0.101:3306/efka?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull
  25. efak.username=efka_admin
  26. efak.password=123456
  27. EOF
  28. #3 配置环境变量
  29. cat >> /etc/profile.d/kafka.sh <<'EOF'
  30. export KE_HOME=/data/tools/kafka/efak-web-3.0.1/
  31. export PATH=$PATH:$KE_HOME/bin
  32. EOF
  33. source /etc/profile.d/kafka.sh
  34. #4 修改堆内存大小
  35. [root@elk101 ~]# vim `which ke.sh `
  36. ...
  37. export KE_JAVA_OPTS="-server -Xmx256m -Xms256m -XX:MaxGCPauseMillis=20 -XX:+UseG1GC -XX:MetaspaceSize=128m -XX:InitiatingHeapOccupancyPercent=35 -XX:G1HeapRegionSize=16M -XX:MinMetaspaceFreeRatio=50 -XX:MaxMetaspaceFreeRatio=80"
  38. #5 启动服务
  39. [root@elk101 ~]# ke.sh start
  40. #6 登录界面
  41. http://10.0.0.101:8048
  42. Account:admin ,Password:123456

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/酷酷是懒虫/article/detail/936648
推荐阅读
相关标签
  

闽ICP备14008679号