kafka 读书笔记

综述/注意

kafka-eagle 现名:EFAK github

eagle首页:http://192.168.19.53:8048/ admin 123456

  1. 配置参数要用官网的,不要用书。
  1. 书说可以自行打包,但是也可以直接下载。

第1、2篇 安装部署

zookeeper

QuorumPeerMain是zookeeper核心进程

[root@localhost ~]# /data/ddos2/zookeeper/bin/zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /data/ddos2/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... already running as process 12514.
[root@localhost ~]# jps
12514 QuorumPeerMain    #
16925 Jps
[root@localhost ~]# 

~/.bash_profiles

可以实现免路径使用内部脚本,比如

/data/ddos2/kafka/bin/kafka-topics.sh --list -zookeeper dn1:2181,dn2:2181,dn3:2181
# 可以简化为
kafka-topics.sh --list -zookeeper dn1:2181,dn2:2181,dn3:2181
# 配置 java 全局变量
export JAVA_HOME=/data/ddos/jdk
export PATH=$PATH:$JAVA_HOME/bin:/data/ddos/efak-web/bin:/data/ddos2/zookeeper/bin

# 配置 zookeeper 全局变量
export ZK_HOME=/data/ddos2/zookeeper
export PATH=$PATH:$ZK_HOME/bin

# 配置 kafka 全局变量
export KAFKA_HOME=/data/ddos2/kafka
export PATH=$PATH:$KAFKA_HOME/bin

export KE_HOME=/data/ddos2/kafka-eagle
export PATH=$PATH:$KE_HOME/bin

kafka

书本补充

  1. kafak JMX 启用(监控)

    编写Kafka启动脚本,添加

    # 添加JMX相关配置
    if [ "x$JMX_PORT" = "x" ]; then
      export JMX_PORT=9999  # 设置JMX端口,默认是9999
    fi
    export KAFKA_JMX_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.rmi.port=$JMX_PORT -Djava.rmi.server.hostname=localhost"
    

解决offline问题

service.properties

listeners不是写死的代理地址

broker.id=52 不可重复,是与其他代理的配置唯一不同

log.dirs=/data/ddos2/kafka/logs
zookeeper.connect=localhost:2181

# 设置 Kafka 节点唯一 ID
broker.id=52
# 开启删除 Kafka 主题属性
delete.topic.enable=true
# 非 SASL 模式配置 Kafka 集群
listeners=PLAINTEXT://localhost:9092		# 修改localhost为当前ip,否则启动报错其他节点已定义localhost:9092
# 设置网络请求处理线程数
num.network.threads=10
# 设置磁盘 IO 请求线程数
num.io.threads=20
# 设置发送 buffer 字节数
socket.send.buffer.bytes=1024000
# 设置收到 buffer 字节数
socket.receive.buffer.bytes=1024000
# 设置最大请求字节数
socket.request.max.bytes=1048576000
# 设置消息记录存储路径
log.dirs=/data/ddos2/kafka/logs
# 设置 Kafka 的主题分区数
num.partitions=6
# 设置主题保留时间
log.retention.hours=168
# 设置 Zookeeper 的连接地址
zookeeper.connect=dn1:2181,dn2:2181,dn3:2181
# 设置 Zookeeper 连接超时时间
zookeeper.connection.timeout.ms=60000

Kafka Eagle 监控

又名EFAK,国产

书本补充

  1. 免编译:官网直接下载

  2. 配置文件:必须官网的

  3. kafak JMX 启用

    编写Kafka启动脚本,添加

    # 添加JMX相关配置
    if [ "x$JMX_PORT" = "x" ]; then
      export JMX_PORT=9999  # 设置JMX端口,默认是9999
    fi
    export KAFKA_JMX_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.rmi.port=$JMX_PORT -Djava.rmi.server.hostname=localhost"
    

system-config.properties

######################################
# 设置 Kafka 多集群的 Zookeeper 地址
######################################
efak.zk.cluster.alias=cluster1
cluster1.zk.list=192.168.19.52:2181,192.168.19.53:2181,192.168.19.54:2181
#cluster2.zk.list=xdn10:2181,xdn11:2181,xdn12:2181
######################################
# 配置 Zookeeper 连接池大小
######################################
kafka.zk.limit.size=14
######################################
# 浏览器访问 Kafka Eagle 的端口地址
######################################
efak.webui.port=8048
######################################
# Kafka 的消费信息是否存储在 Topic 中
######################################
cluster1.efak.offset.storage=kafka
cluster2.efak.offset.storage=zk
######################################
# 配置邮件告警服务器
######################################
#efak.mail.enable=false
#efak.mail.sa=alert_sa
#efak.mail.username=1363277762@qq.com
#efak.mail.password=123456
#efak.mail.server.host=smtp.126.com
#efak.mail.server.port=25
######################################
# 管理员删除 Topic 的口令
######################################
efak.topic.token=keadmin
######################################
# 是否开启 Kafka SASL 安全认证
######################################
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 Eagle 数据存储到 MySQL
######################################
efak.driver=com.mysql.cj.jdbc.Driver
efak.url=jdbc:mysql://192.168.19.216:6306/kafka_eagle?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull
efak.username=taishi
efak.password=Transfar@2022
######################################

主题、副本、分区

topic

自动创建

auto.create.topics.enable = true (默认)。

  • 默认分区的数值

    default.replication.factor 控制。

  • 默认副本系数的值

    default.replication.factor 控制。

常用命令

见paste

集群部署思路

先设置节点间免密登陆,然后使用for i do done命令实现部署集群文件夹/集群启动脚本/批量更新配置等

  • 免密登陆

    # 1、生成当前节点的私钥和公钥,一直回车
    [hadoop@dn1 ~]$ ssh-keygen -t rsa
    # 2、将公钥(id_rsa.pub)文件内容追加到 authorized_keys
    [hadoop@dn1 ~]$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
    # 3、赋予 600 权限
    [hadoop@dn1 ~]$ chmod 600 ~/.ssh/authorized_keys
    
    # 4、其他节点
    # 将 authorized_keys 文件分发到其他节点的/home/root/.ssh/目录中。
    
    #在/tmp 目录中添加一个临时主机名文本文件
    [hadoop@dn1 ~]$ vi /tmp/add.list
    # 添加如下内容,nd2为节点名
    dn2
    dn3
    #使用 scp 命令同步 authorized_keys 文件到指定目录
    [hadoop@dn1 ~]$ for i in `cat /tmp/add.list`;do scp ~/.ssh/authorized_keys $i:/home/root/.ssh;done
    
  • fori

    # 在/tmp 目录中添加一个临时主机名文本文件
    [hadoop@dn1 ~]$ vi /tmp/add.list
    # 添加如下内容
    dn2
    dn3
    # 保存并退出
    # 将/etc/hosts 文件复制到/tmp 目录中
    [hadoop@dn1 ~]$ cp /etc/hosts /tmp
    # 使用 scp 命令将 hosts 文件下发到其他主机
    [hadoop@dn1 ~]$ for i in `cat /tmp/add.list`;do scp /tmp/hosts $i:/tmp;done
    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值