Python操作Kafka错误日志

问题一:无法打开zookeeper

由于我kafka下载的版本是2.12-2.4.0,所以内置了zookeeper,不用单独下载

  • 错误一:这个问题其实是由于我太久没有操作cmd导致的,我忘记了同盘下,切目录需要使用cd,导致系统找不到该路径

  • 错误二:但仅仅这样还是会错误,仍然是系统找不到该路径

    所以我们还需要做以下操作:

    在你所对应的kafka目录下要自己手动创建两个名为”data”和”logs”的文件夹,方便后续安排路径

    接着,打开config/zookeeper.properties(使用vscode或者记事本打开都可以),我们来改一下配置,红框中是你所需要改的,默认是tmp什么的,改成刚刚手动创建的data文件位置即可;同时注意观察下面的客户端口号是否为2181(zookeeper默认就是这个,有些博主说只要改成对应的端口号就都可以使用,我没改)

    下一步,打开config/server.properties,同样也是更改配置,同理,也要检查好你的地址和端口号

  • 错误三:然后我们再来尝试打开,结果是kafka正常打开,zookeeper仍然找不到路径,这是为什么呢?于是我通过搜索找到了问题的原因:由于kafka是使用Java进行编写的,所以,应该是Java环境存在问题

    参考文章Windows10下安装Kafka超级详细的教程(包含安装过程中遇到的问题和解决办法)

    解决方法:打开 kafka\bin\windows\kafka-run-class.bat ⽂件。
    进⼊kafka⽬录 ,打开上⾯说到的这个⽂件,查找后的内容如下所示。

具体原因请看这个博主的说法.\bin\windows\kafka-server-start.bat .\config\server.properties 系统找不到指定路径,启动zookeeper时候闪退

雀食,我的原因也是这个,由于已经在Java环境中写了/bin,查找路径的时候仍然写上了/bin,结果路径就变成了/bin/bin,自然就找不到路径了

问题二:操作Kafka写代码报错

zookeeper和kafka都已经启动就绪

错误一:一定要注意是否打开了MySQL服务,数据库是否连接好,参数配置是否设置正确

1
conn = pymysql.connect(host='localhost', user='root', password='your_password', database='数据采集与处理')

错误二:字段类型为data无法被自动处理成json格式,需要函数strftime()转换成字符串格式

1
'birthday': row[3].strftime('%Y-%m-%d')

错误三:如果像以下这么写会报错

1
producer = KafkaProducer(bootstrap_servers='localhost:9092')

可以多加一个api(api版本就是你的kafka对应版本)

1
producer = KafkaProducer(bootstrap_servers='localhost:9092', api_version=(2, 12, 2))

未解决问题

每次打印直接输出整个消息,无法每行分开打印(整个写循环改打印规则,不想改了)

kafka_2.12-2.4.0\bin\windows>kafka-server-start.bat ….\config/server.properties

kafka_2.12-2.4.0\bin\windows>zookeeper-server-start.bat ….\config/zookeeper.properties


Python操作Kafka错误日志
http://yjmanman.github.io/2023/11/23/Python操作Kafka/
作者
YuJia
发布于
2023年11月23日
许可协议