CDH6.2.1 集群在线安装kafka 和 brokerid报错 以及 连接超时报错 总结

  1. 进入 cloudera manager 点击添加服
    1. CDH6.2.1 集群在线安装kafka 和 brokerid报错 以及 连接超时报错 总结_第1张图片
  2. 选择kafka
    1. CDH6.2.1 集群在线安装kafka 和 brokerid报错 以及 连接超时报错 总结_第2张图片
  3. 然后点击选择主机
    1. CDH6.2.1 集群在线安装kafka 和 brokerid报错 以及 连接超时报错 总结_第3张图片
  4. 本教程选择了三台机器
    1. CDH6.2.1 集群在线安装kafka 和 brokerid报错 以及 连接超时报错 总结_第4张图片
  5. 点击继续进入Review Changes页面
    1. 配置zookeeper的目录CDH6.2.1 集群在线安装kafka 和 brokerid报错 以及 连接超时报错 总结_第5张图片
    2. 配置Java Help Size of Broker (一定要大于512)CDH6.2.1 集群在线安装kafka 和 brokerid报错 以及 连接超时报错 总结_第6张图片
  6. 点击继续,运行完成后安装成功(如果是首次安装)CDH6.2.1 集群在线安装kafka 和 brokerid报错 以及 连接超时报错 总结_第7张图片
  7. 因为不是首次安装所以就出现了报错
    1. CDH6.2.1 集群在线安装kafka 和 brokerid报错 以及 连接超时报错 总结_第8张图片
    2. 此时我们点击角色日志 查看报错日志CDH6.2.1 集群在线安装kafka 和 brokerid报错 以及 连接超时报错 总结_第9张图片
    3. 通过日志可以看出是broker id不匹配的问题CDH6.2.1 集群在线安装kafka 和 brokerid报错 以及 连接超时报错 总结_第10张图片
  8. 这个时候我们有两种方案可以走
    1. 第一种解决方案就是直接返回主页,进入kafka的配置目录,搜索broker id 修改成对应的borker idCDH6.2.1 集群在线安装kafka 和 brokerid报错 以及 连接超时报错 总结_第11张图片
    2. 第二种就是重新安装,安装之前去服务器上把第一次kafka没有删除完全的数据清掉(我选择的是第二种)进去/var/local/kafka删除data目录即可CDH6.2.1 集群在线安装kafka 和 brokerid报错 以及 连接超时报错 总结_第12张图片
  9. 然后按照上面的安装步骤走一遍,安装成功
    1. CDH6.2.1 集群在线安装kafka 和 brokerid报错 以及 连接超时报错 总结_第13张图片
  10. 安装成功之后就用代码进行测试,发现连接不上报错kafka.errors.KafkaTimeoutError: KafkaTimeoutError: Failed to update metadata after 60.0 secs
    1. CDH6.2.1 集群在线安装kafka 和 brokerid报错 以及 连接超时报错 总结_第14张图片
  11. 后期排查发现是本地hosts文件没有配置zookeeper的主机名(在本地电脑配置host文件)
    1. CDH6.2.1 集群在线安装kafka 和 brokerid报错 以及 连接超时报错 总结_第15张图片
  12. 配置之后连接成功
  13. 但是配置hosts文件感觉不是很合理,在加上正式环境也不知道会不会影响其他的,所以就自己修改配置文件,其中多次修改server.properties都没有效果
  14. 最后废了九牛二虎之力找到了clouder manager 对kafka的配置CDH6.2.1 集群在线安装kafka 和 brokerid报错 以及 连接超时报错 总结_第16张图片
  15. 点进去主机之后点解配置,然后搜索高级,CDH6.2.1 集群在线安装kafka 和 brokerid报错 以及 连接超时报错 总结_第17张图片
  16. 三台主机设置完毕后,重启kafka集群,并注掉本地主机的hosts配置,用代码消费kafka,成功!!!!!
  17. 另外我是用python测试的在这里附上python消费者和生产者的代码

生产者

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Description:
# @Time    : 2020/12/23 10:30 AM
# @Author  : Feel free to be a little trash
# @motto   : It is never too late to learn
# @File    : a.py

from kafka import KafkaProducer
import json

'''
    生产者
'''
producer = KafkaProducer(
                            value_serializer=lambda v: json.dumps(v).encode('utf-8'),
                            bootstrap_servers=["自己的Ip:9092"]
                            
                         )
for i in range(5):
    data={
        "name":"test",
        "age":18,
        "gender":"test",
        "id":i
    }
    producer.send('gg', data)
producer.close()

2.消费者

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Description:
# @Time    : 2020/12/24 6:36 PM
# @Author  : Feel free to be a little trash
# @motto   : It is never too late to learn
# @File    : b.py
from kafka import KafkaConsumer
import json

'''
    消费者demo
    
'''


consumer = KafkaConsumer('gg',group_id="gg",
                         bootstrap_servers=["自己IP:9092"],
                         auto_offset_reset='earliest',value_deserializer=json.loads
                         )
for message in consumer:
    print(message.value)

 

个人总结,有不足之处多多指出

你可能感兴趣的:(hadoop,python,kafka,python,kafka,大数据,linux,java)