Kafak可用集群搭建Producer和Consumer

关于Kafak报错的原因

欢迎来到Mint原薄

你好! 如果这是你第一次遇到报错信息,请耐心阅读文档

搭建kafak的群集环境(四台虚拟机)

  1. 依赖zookeeper的环境,首先安装zookeeper;
    附带zookeeper的官方 点此进入
#注意事项:请注意各位的java的jdk版本 选择合适的JDK版本安装,不然你的kafak启动不了 注意监听端口2181(默认) 也注意防火墙对
端口的放行
yum -y install java-1.8.0-openjdk-devel.x86_64# 选择你们合适的java版本 3.4的zookeeper要1.8的java
tar -zxf zookeeper-3.4.12.tar.gz
mv zookeeper-3.4.12 /usr/local/zookeeper
cd /usr/local/zookeeper/conf/
cp zoo_sample.cfg zoo.cfg # 复制zookeeper配置文件
mkdir /usr/local/zookeeper/data # 创建zookeeper的数据目录
修改我们的配置文件
vim /usr/local/zookeeper/conf/zoo.cfg
更改数据目录 + 日志文件目录
dataDir=/usr/local/zookeeper/data
dataLogDir=/usr/local/zookeeper/data #如果这一行没有,手动添加到dataDir的下面
最后一行写入ID 2888 和3888 用来传输消息的端口
server.1 = 192.168.114.5:2888:3888  #kafak1
server.2 = 192.168.114.6:2888:3888  #kafak2
server.3 = 192.168.114.7:2888:3888  #kafak3
以上操作三台主机全部一致
接下来 设置他们的MyID
echo 1 > /usr/local/zookeeper/myid 第一台
echo 2 > /usr/local/zookeeper/myid 第二台
echo 3 > /usr/local/zookeeper/myid 第三台
接着启动zookeeper(三个全部启动 !!! 全部启动!!!)
/usr/local/zookeeper/bin/zkServer.sh start # 如果使用netstat没有看到 java的进程
tcp6       0      0 :::2181                 :::*                    LISTEN      9493/java
/usr/local/zookeeper/bin/zkServer.sh start-foreground #调用前台程序查看报错的信息
另外最直接可能的问题 Myid没有写 Java问题
例如:
2019-08-22 09:16:15,653 [myid:] - ERROR [main:QuorumPeerMain@88] - Invalid config, exiting abnormally
org.apache.zookeeper.server.quorum.QuorumPeerConfig$ConfigException: Error processing /usr/local/zookeeper/bin/../conf/zoo.cfg
        at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:156)
        at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:104)
        at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:81)
Caused by: java.lang.IllegalArgumentException: /usr/local/zookeeper/data/myid file is missing
        at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parseProperties(QuorumPeerConfig.java:408)
        at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:152)
        ... 2 more
Invalid config, exiting abnormally
第二个错误 致命错误记住了 #有进程 有PID  但是就是查看不了状态
[root@localhost conf]# /usr/local/zookeeper/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Error contacting service. It is probably not running.
解决方法我写在下面!!!

在这里插入图片描述
2.解决Error contacting service. It is probably not running.的报错方法
问题原因:首先查不了状态是因为另外的群集没有 启动
1.确保三个群集都可以查看到zookeeper启动的java进程
2.三个节点都启动之后重新查看status
3.看myid是否存在,或者是否myid重复,也注意你们myid有没有写错地方
在这里插入图片描述问题原因二:没有与其他的群集之间进行监理联系,防火墙没有放行
这个问题你们进行关闭防火墙,或者进行放行端口
检查你们节点之间的IP地址是否能通
3.解压kafak进行安装

tar -zxf kafka_2.12-2.1.0.tgz  (三台全部解压)
mv kafka_2.12-2.1.0 /usr/local/kafak
cd /usr/local/kafka/config/
vim server.properties
修改 broker.id 依次排序 跟自己的myid一样 一下内容都需要修改的哦
broker.id=1 # 第一台 第二台broker.id=2 第三台broker.id=3
#listeners=PLAINTEXT://:9092  #表示监听9092的端口补充上我们自己的IP 去掉#注释
listeners=PLAINTEXT://192.168.114.5:9092 #表示监听192.168.114.5:的9092端口
zookeeper.connect=localhost:2181 # 修改成监听的三个IP
zookeeper.connect=192.168.114.5:2181,192.168.114.6:2181,192.168.114.7:2181
num.partitions=1 # 修改分区副本数量
num.partitions=3
接下来的操作大吃一惊,跟上高能操作  PS:::::一定要记得改配置文件的 ID 和地址 切记!!!!
scp -r /usr/local/kafak/ 192.168.114.6:/usr/local/ # 安全复制吧,稍微省事儿一点,稍微进行修改
scp -r /usr/local/kafak/ 192.168.114.7:/usr/local/
####此处步骤修改完下面的修改ID和IP在执行#####
启动kafaka>>> /usr/local/kafak/bin/kafka-server-start.sh -daemon  /usr/local/kafak/config/server.properties 
启动格式:启动命令 -daemon 配置文件
-daemon 表示后台执行 不写的话会阻塞终端
三个主机全部启动哦
检查端口
netstat -anput | grep LISTEN | grep 9092
解决启动kafak报错的问题
报错1:Exception in thread "main" java.lang.UnsupportedClassVersionError: kafka/Kafka : Unsupported major.minor version 52.0
解决你的java环境>>> 选择更新java环境 或者降低java环境
一般都是版本低的java不支持VM版本导致的,所以更新java环境根据你们的情况


报错2:[2019-08-22 22:43:11,109] ERROR Fatal error during KafkaServer startup. Prepare to shutdown (kafka.server.KafkaServer)

        at kafka.zookeeper.ZooKeeperClient.$anonfun$waitUntilConnected$3(ZooKeeperClient.scala:268)
        at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
        at kafka.utils.CoreUtils$.inLock(CoreUtils.scala:251)
        at kafka.zookeeper.ZooKeeperClient.waitUntilConnected(ZooKeeperClient.scala:264)
        at kafka.zookeeper.ZooKeeperClient.<init>(ZooKeeperClient.scala:97)
        at kafka.zk.KafkaZkClient$.apply(KafkaZkClient.scala:1694)
        at kafka.server.KafkaServer.createZkClient$1(KafkaServer.scala:348)
        at kafka.server.KafkaServer.initZkClient(KafkaServer.scala:372)
        at kafka.server.KafkaServer.startup(KafkaServer.scala:202)
        at kafka.server.KafkaServerStartable.startup(KafkaServerStartable.scala:38)
        at kafka.Kafka$.main(Kafka.scala:75)
        at kafka.Kafka.main(Kafka.scala)
[2019-08-22 22:43:11,114] INFO shutting down (kafka.server.KafkaServer)
[2019-08-22 22:43:11,112] INFO EventThread shut down for session: 0x100007eff3c0002 (org.apache.zookeeper.ClientCnxn)
[2019-08-22 22:43:11,131] INFO shut down completed (kafka.server.KafkaServer)
[2019-08-22 22:43:11,132] ERROR Exiting Kafka. (kafka.server.KafkaServerStartable)
[2019-08-22 22:43:11,146] INFO shutting down (kafka.server.KafkaServer)
这个错误的解决方法我是真的没有找到....一直说zookeeper进行连接超时
如果有解决的小伙伴恳请评论区留言,万分感谢!!! 两台kafak也可以现在

怕你们不懂 我直接写出来
第二台 kafak
在这里插入图片描述第三台kafak
在这里插入图片描述
4.测试kafak群集

模拟一个topic(主题) 由于目前我只有 第一个节点  第三个节点启动了kafak所以我在第三个节点操作
/usr/local/kafak/bin/kafka-topics.sh \
> --create \ #创建topic 可以叫做消息主题
> --zookeeper 192.168.114.7:2181 \ # 指定zookeeper的IP和端口 本机
> --replication-factor=2 --partitions=3 \ # 复制因子为2 分区数为3 因子就是副本的数量
> --topic kafaktest # 指定topic的名字

验证我们创建的topic 第一台启动producer 生产者
usr/local/kafak/bin/kafka-console-producer.sh \
> --broker-list 192.168.114.5:9092 \
> --topic kafaktest \
> Hellow Kafak is Good \ # 产生的消息
> 66666  # 产生的消息
> 接下来回到第三台  consumer
> /usr/local/kafak/bin/kafka-console-consumer.sh \
> --bootstrap-server 192.168.114.7:9092 \
> --topic kafaktest \
> --from-beginning # 从消费者还没有开始,不是最新消息

在这里插入图片描述出现警告的原因
OpenJDK 64-Bit Server VM warning: If the number of processors is expected to increase from one, then you should configure the number of parallel GC threads appropriately using -XX:ParallelGCThreads=N
没有对 GC线程进行配置 配置一下就好了 上面说的很清楚
ParallelGCThreads=N # 修改即可
最后 还是寻求大佬解决一下
ERROR Fatal error during KafkaServer startup. Prepare to shutdown (kafka.server.KafkaServer)
超时的这个报错 !!! 万分感谢

发布了15 篇原创文章 · 获赞 22 · 访问量 2857

猜你喜欢

转载自blog.csdn.net/Mint_Alone/article/details/100027444
今日推荐