2021-5-1

问题: Kerberos 环境下启动消费者和生产者失败:

image-20201230142027838.png

原因:当前环境未使用配置文件,应将配置文件的路径赋值给 KAFKA_OPTS

  1. export KAFKA_OPTS="-Djava.security.auth.login.config=/root/project/startKerberos/kerberos/jaas-keytab.conf"

再次启动:
image-20201230142629864.png

问题:构建消费者失败,程序自动停止

报错内容:

  1. org.apache.kafka.common.KafkaException: Failed to construct kafka consumer

image-20201230143741175.png

原因:消费者无法构建的原因大致可以分为三类:

  • 源码有问题,导致jar包无法正常运行
  • 开发环境和运行环境不一致,如 sasl.kerberos.service.name 的值,开发环境和本地不一致
  • jaas.conf 配置文件问题,导致虽然可以运行,但是无法创建topic,或者无法消费topic的消息

解决办法:检查源码、运行环境和配置文件。可以先删除 topic,运行 jar 包后查看 topic list,如果运行后没有创建 topic,可以将问题定位至源码和环境不一致上面;如果创建了 topic,但无法消费,可以检查权限、运行环境、jaas.conf 配置文件。


**

2021-06-21

问题:spark消费kafka,写入hbase,计算点存入MySQL,但MySQL不更新

image.png
这是客户的一个生产实例,可以看到2号机组更新延迟大。
解决方式:取消代码中的注释…
image.png
image.png
image.png
image.png

Tips:我个人感觉,是日志中的代码生效了,类似于Java读取文件返回一个对象,用readline,会直接读取一行,如果我们在日志里面readline,那么最终会导致参与流程的代码只有一半(另一半被日志中的readline消耗了。