Kafka使用最佳实践-Kafka生产问题分析思路与解决方案

举报
FI小粉丝 发表于 2021/05/25 17:25:29 2021/05/25
【摘要】 一、生产问题分析思路   二、数据无法正常写入,使用客户端无法正常生产数据首先使用生产命令进行生产测试。看是否是C80版本,确认是否有打入kafka死锁补丁,如果没有请打入。Kafka的服务端节点是否开启了DNS,如果开启请参照《kafka启动候不定时出现"恢复中"状态》解决。 根据章节查看topic是否正常(2.2章节),如果不正常优先恢复topic,参考维护宝典Topic操作常见故障章节...

一、生产问题分析思路   

1.png

二、数据无法正常写入,使用客户端无法正常生产数据

  • 首先使用生产命令进行生产测试。
  • 看是否是C80版本,确认是否有打入kafka死锁补丁,如果没有请打入。
  • Kafka的服务端节点是否开启了DNS,如果开启请参照《kafka启动候不定时出现"恢复中"状态》解决。
  • 根据章节查看topic是否正常(2.2章节),如果不正常优先恢复topic,参考维护宝典Topic操作常见故障章节排查处理。
  • 如果是21005生产,查看前台“everyone.if.no.acl.found”是否设置为true,并且是否添加了acl权限,如果是需要删除acl权限。参考4.2.3章节和维护宝典《Producer发送数据失败,抛出TOPIC_AUTHORIZATION_FAILED》解决。
  • 如果使用了21009端口,需要查看是否开启mode.enable=true


  • 去每个节点执行df –h查看磁盘是否有写满的情况。如果磁盘写满参考《kafka磁盘写满后恢复策略》
  • 查看报错中是否有指定那个节点哪个磁盘报错,如果有,去指定节点上执行touch filename 的命令看是否出现了磁盘只读的现象。
  • 去每个kafka节点下,切换到omm用户,使用id –Gn kafka查看是否有异常,如果有请按照维护宝典“id -Gn查询不到用户,导致任务无法提交”章节解决。
  • 其他问题:参照维护宝典“消息生产常见故障”排查。

三、集群内客户端可以正常生产消费,集群外客户端无法正常使用

  • 检查网络环境是否正常。
  • 使用ping命令查看是否有网络丢包
  • 使用scp从客户端传输一个大文件到kafka服务侧节点,查看传输速率。
  • 检查/etc/hosts里面是否配置kafka集群的IP列表。
  • 检查DNS是否开启,cat /etc/resolv.conf 是否有值,或者在etc/hosts里面是否添加了不可达参数。例如:
    • hadoop.com
  • 查看客户端配置是否配置有异常。这里要特别注意配置domain.name,如果FI集群修改过域名(默认域名为hadoop.hadoop.com,如果修改,该配置必须在生产者配置中添加)。
  • 查看集群acl列表,确认节点是否被禁用或者限流。方法见1.8章节《查看集群中所有的acl权限信息》。
  • 其他问题:参照维护宝典“消息生产常见故障”排查。

四、 集群外客户端可以使用,但是开发的代码无法正常写入

  • 检查生产端的配置是否有误。例如:所配置的IP是否为kafka的业务IP
  • 检查客户端使用的kafka版本是否有误,高版本的客户端向低版本的服务端写数据可能存在兼容性的问题。
  • 使用安全模式生产消费时候,是否使用了正确的keytab
  • 使用安全模式并且everyone.if.no.acl.foundfalse 需要查看用户是否有权限访问。参考4.1.8章节。
  • 如果使用的是C++客户端,需要注意5.1版本需要使用4.0.3或以上版本,否则会有兼容性问题。
  • 其他问题:参照维护宝典“消息生产常见故障”排查。

五、写入正常,但是写入性能有积压或者一段时间后会报错中断

  • 首先排查是否存在性能瓶颈;再排查写入请求总耗时及各阶段耗时,排查耗时长的阶段的具体原因。
  • 查看生产的客户端版本是否跟服务端版本匹配。如果客户使用的客户端jar为非FI提供的jar包版本。
  • 排查是否存在过大数据,kafka通常建议的数据大小在15k左右,如果出现过大数据可能会导致写入性能差。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。