码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • centos7 Kafka安装


    目录

    • 一、安装 JDK
      • 1.安装jdk
      • 2.配置环境变量
      • 3.执行profile文件:
    • 二、安装kafka
      • 1. 下载kafka
      • 2. 启动zookeeper
      • 3. 启动kafka
      • 4. 测试kafka
        • 1).创建 Topic
        • 2).查看 topic 列表
        • 3).查看描述 topics 信息
        • 4).启动生产者(窗口不要关闭)
        • 5).启动消费者(窗口不要关闭)
        • 6).在生产者窗口输入内容,消费者端可查看到输入的内容
          • (1).生产端:
          • (2).消费端:
        • 7).删除topic及数据
    • 三、kafka查看消费数据
      • 1.查看所有组
      • 2.查看消费情况
    • 三、kafka其它错误
    • 1【Kafka】.org.apache.kafka.common.network.InvalidReceiveException: Invalid receive (size = 291020532 larger than 104857600)
    • 2. org.apache.kafka.common.errors.RecordTooLargeException: The request included a message larger than the max message size the server will accept.
      • 1).首先是server.properties,加入在服务端的配置文件server.properties加上的message.max.bytes配置
      • 2). 要在配置kafka连接(在生产者端配置)时,加入配置max.request.size即可,如下
    • 3. kafka 出现Java heap space的解决方法
      • 1.前言
      • 2.解决方案

    一、安装 JDK

    1.安装jdk

    2.配置环境变量

    vim /etc/profile
    
    • 1

    在这里插入图片描述
    在最后面添加:

    export JAVA_HOME=/app/jdk-12.0.2
    export JRE_HOME=${JAVA_HOME}/jre
    export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    export PATH=$PATH:$JAVA_HOME/bin
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    3.执行profile文件:

    source /etc/profile
    
    • 1

    这样可以使配置文件立即生效

    二、安装kafka

    1. 下载kafka

    https://kafka.apache.org/downloads

    在这里插入图片描述

    2. 启动zookeeper

    Kafka依赖于ZooKeeper,所以您需要先启动一个ZooKeeper服务器。如果没有安装,您可以使用随Kafka一起打包的便捷脚本来获取一个快速但是比较粗糙的单节点ZooKeeper实例。

    • zookeeper配置是 config目录下的zookeeper.properties,默认端口 2181
    vim /data/kafka_2.12-2.8.0/config/zookeeper.properties
    
    • 1
    • 启动命令:nohup /data/kafka_2.12-2.8.0/bin/zookeeper-server-start.sh /data/kafka_2.12-2.8.0/config/zookeeper.properties &,启动后可后台运行zookeeper
    nohup /data/kafka_2.12-2.8.0/bin/zookeeper-server-start.sh   /data/kafka_2.12-2.8.0/config/zookeeper.properties &
    
    • 1
    • 命令:ps -ef | grep zookeeper 查看zookeeper是否启动成功
    #查看进程
    ps -ef | grep zookeeper
    #查看端口
    lsof -i:2181
    netstat -antp | grep 2181
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

    • 查看日志
    tail -100f /data/kafka_2.12-2.8.0/logs/server.log
    
    • 1

    3. 启动kafka

    1. 在config目录下提供了kafka的配置文件server.properties。为了保证可以远程访问Kafka,我们需要修改两处配置。
    vim /data/kafka_2.12-2.8.0/config/server.properties
    
    • 1
    # 去掉注释
    listeners=PLAINTEXT://:9092
    # 去掉注释并修改地址
    advertised.listeners=PLAINTEXT://127.0.0.1:9092 
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    1. 启动Kafka:
    nohup /data/kafka_2.12-2.8.0/bin/kafka-server-start.sh /data/kafka_2.12-2.8.0/config/server.properties   &
    
    • 1
    1. 守护进程方式启动kafka:
    /data/kafka_2.12-2.8.0/bin/kafka-server-start.sh -daemon /data/kafka_2.12-2.8.0/config/server.properties
    
    • 1
    1. 命令:ps -ef | grep kafka 查看kafka是否启动成功
    #查看进程
    ps -ef | grep kafka
    #查看端口
    lsof -i:9092 
    netstat -antp | grep 9092 
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

    1. 查看日志
    tail -100f /data/kafka_2.12-2.8.0/logs/kafkaServer.out
    
    • 1

    4. 测试kafka

    1).创建 Topic

    /data/kafka_2.12-2.8.0/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
    
    • 1

    在这里插入图片描述

    2).查看 topic 列表

     # 返回上面创建的 test
    /data/kafka_2.12-2.8.0/bin/kafka-topics.sh --list --zookeeper localhost:2181  
    
    • 1
    • 2

    在这里插入图片描述

    3).查看描述 topics 信息

    /data/kafka_2.12-2.8.0/bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic test
    
    • 1

    在这里插入图片描述

    4).启动生产者(窗口不要关闭)

    /data/kafka_2.12-2.8.0/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
    
    • 1

    在这里插入图片描述

    5).启动消费者(窗口不要关闭)

    /data/kafka_2.12-2.8.0/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
    
    • 1

    在这里插入图片描述

    6).在生产者窗口输入内容,消费者端可查看到输入的内容

    (1).生产端:

    {"id":"1"}
    
    • 1

    在这里插入图片描述

    (2).消费端:

    在这里插入图片描述

    7).删除topic及数据

    /data/kafka_2.12-2.8.0/bin/kafka-run-class.sh kafka.admin.TopicCommand --delete --topic ProjectBaseInfo --zookeeper localhost:2181
    
    • 1

    在这里插入图片描述

    三、kafka查看消费数据

    1.查看所有组

    要想查询消费数据,必须要指定组。那么线上运行的kafka有哪些组呢?使用以下命令:

    /data/kafka_2.12-2.8.0/bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --list
    
    • 1

    在这里插入图片描述

    2.查看消费情况

    /data/kafka_2.12-2.8.0/bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --describe --group test
    
    • 1

    参数解释:

    • –describe 显示详细信息
    • –bootstrap-server 指定kafka连接地址
    • –group 指定组。

    注意: --group指定的组必须存在才行!可以用上面的–list命令来查看

    在这里插入图片描述

    TOPIC
    PARTITION
    CURRENT-OFFSET
    LOG-END-OFFSET
    LAG
    CONSUMER-ID
    HOST
    CLIENT-ID
    topic名字分区id当前已消费的条数总条数未消费的条数消费id主机ip客户端id

    三、kafka其它错误

    1【Kafka】.org.apache.kafka.common.network.InvalidReceiveException: Invalid receive (size = 291020532 larger than 104857600)

    在这里插入图片描述
    将$KAFKA_HOME/config/server.properties文件中的socket.request.max.bytes值重置为超过数据包大小,然后重新启动kafka服务器。将socket.request.max.bytes翻倍。

    vim /data/kafka_2.12-2.8.0/config/server.properties
    
    • 1

    2. org.apache.kafka.common.errors.RecordTooLargeException: The request included a message larger than the max message size the server will accept.

    1).首先是server.properties,加入在服务端的配置文件server.properties加上的message.max.bytes配置

    vim /data/kafka_2.12-2.8.0/config/server.properties
    message.max.bytes=2073741824
    
    • 1
    • 2

    在这里插入图片描述

    对于已创建的topic,调整max.message.bytes参数方法:

    /data/kafka_2.12-2.8.0/bin/kafka-topics.sh --zookeeper localhost:2181 --alter --topic test  --config max.message.bytes=2073741824
    
    
    • 1
    • 2

    2). 要在配置kafka连接(在生产者端配置)时,加入配置max.request.size即可,如下

    在这里插入图片描述

    但是需要注意的是,在这里配置的值应该小于服务端配置的最大值,否则报如下错误

    org.apache.kafka.common.errors.RecordTooLargeException: The request included a message larger than the max message size the server will accept.
    
    • 1

    max.request.size必须小于message.max.bytes

    3. kafka 出现Java heap space的解决方法

    1.前言

    kafka是由scala和java编写的。所以需要调一些jvm的参数。java的内存分为堆内内存和堆外内存。

    • -Xms2048m, -Xmx2048m,设置的是堆内内存。-Xms是初始可用的最大堆内内存。-Xmx设置的是最大可用的堆内内存。二者设置成一样是因为效率问题,可以让jvm少做一些运算。如果这两个参数设置的太小,kafka会出现java.lang.OutOfMemoryError:
      Java heap space的错误。
    • -XX:MaxDirectMemorySize=5120m。这个参数配置的太小,kafka会出现java.lang.OutOfMemoryError:
      Direct buffer memory的错误。

    -XX:MaxDirectMemorySize加大,该参数默认是64M,可以根据需求调大,
    如果没找到,就在KAFKA_JVM_PERFORMANCE_OPTS添加,
    并且检查JVM参数里面有无:-XX:+DisableExplicitGC,如果有就去掉。

    在这里插入图片描述

    因为kafka的网络IO使用了java的nio中的DirectMemory的方式,而这个申请的是堆外内存。

    2.解决方案

    bin目录下的kafka-run-class.sh中需要配置的参数,找到 Memory options处,默认设置是256M,将其修改为如下值:
    修改前:
    在这里插入图片描述

    vim /data/kafka_2.12-2.8.0/bin/kafka-run-class.sh
    
    -Xms2048m  -Xmx2048m -XX:MaxDirectMemorySize=5120m
    
    • 1
    • 2
    • 3

    修改后:
    在这里插入图片描述

  • 相关阅读:
    考研数据结构填空题整合
    C++——list
    二维二硫化钼纳米片负载纳米银复合材料|二硫化钼碳纳米管复合材料|纳米金/磁性纳米颗粒修饰二硫化钼纳米片
    CLIP模型资料学习
    【LSSVM回归预测】基于matlab人工蜂群算法优化最小二乘支持向量机LSSVM数据回归预测【含Matlab源码 2213期】
    车载以太网协议学习笔记
    基于 XAF Blazor 的规则引擎编辑器 - 实战篇
    【软考软件评测师】2020年下案例分析历年真题
    [经验] 做完腺样体手术打呼噜很严重怎么办 #媒体#笔记#经验分享
    2022/7/30
  • 原文地址:https://blog.csdn.net/q908544703/article/details/126266827
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号