Kafka别再用zookeeper了
最近在学kafka在zookeeper的元数据解读,作为一个比小白稍微好一点但是,其实还是没啥经验的我,就老是遇到这种版本问题,总是被它所困扰。昨天早上,我高高兴兴地打开了视频准备学习kafka,按照老师的步骤一步一步地下载kafka,视频中的是使用0.10版本而我只能下载最低的版本就是2.8,然后我就下载了中间版本3.0.1。
当然着卡夫卡和我的hadoop啥的都还是兼容的,因为我的Hadoop也是下载了比较高的版本。跟着视频我启动了zookeeper,不知道啥原因,可能是因为那个老师一直再讲卡夫卡和zookeeper的联系有多强烈,Kafka和zookeeper是强依赖关系,我就坚定的认为卡夫卡和zookeeper肯定可以连。
其实起初我是看到过Kafka完全弃用zookeeper这类文章的,但是在安装配置过程中,有一个点把我影响了,那就是config目录下的server.properties 文件下的一个配置。如下图:
############################# Zookeeper #############################
# Zookeeper connection string (see zookeeper docs for details).
# This is a comma separated host:port pairs, each corresponding to a zk
# server. e.g. "127.0.0.1:3000,127.0.0.1:3001,127.0.0.1:3002".
# You can also append an optional chroot string to the urls to specify the
# root directory for all kafka znodes.zookeeper.connect=hadoop01:2181,hadoop02:2181,hadoop03:2181/k
afka2.12
# Timeout in ms for connecting to zookeeper
zookeeper.connection.timeout.ms=6000
我就想着既然这个配置文件里都写着zookeeper,那肯定还是有机会连接zookeeper的,就算kafka不再依赖zookeeper了,但是想连应该可以连的。但是一想创建topic就报错,于是我昨天一上午就在查找出错的问题,一开始我写的是
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 3 --topic test
报错发现没有--zookeeper这个方法
然后查看help文件才知道已经改成了 连接的节点--bootstrap-server 了
bin/kafka-topics.sh --create --bootstrap-server localhost:2181 --replication-factor 3 --partitions 3 --topic test
然后还是不行报错创建topic超时
我真就不行了,然后我就一直按照网上超时的文章去修改,说的最多的就是server.properties文件中的listeners这个配置要修改。但是修改了半天还是超时。
我昨天就因为这个事情人都气炸了,其实心中执念太深了,一边是老师的讲课,一边是自己看到的配置,心里就是觉得可以连接zookeeper,出错了就应该是自己的问题。今天早上一早就来,觉得死马当活马医,改了一下端口号,因为2181是zookeeper的端口号,而9092是卡夫卡自己的端口号,改成了9092.
bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 3 --partitions 3 --topic test
结果真就创建成功了,我人麻了,真就这么简单,这也给我提了个醒。以后碰到版本和学习教材不一样的情况下,出错应该先考虑版本问题,会不会是版本将哪些功能剔除了,这样也可以少走点弯路。
附上 创建成功截图 查看截图
注:kafka2.8版本之后就彻底不用zookeeper了,我也不知道它server.properties中的zookeeper是不是忘记删除了。
更新1
弃用了但是没有完全弃用,等等整理的时候再说
前两天上海疫情很严重,做核酸都做了两次学校被封了,图书馆yyds也被封了,真的要死,图书馆啥时候才能开,还想出去见npy呢呜呜呜。原本是今天解封图书馆,后来才知道要继续封,妈呀,我前两天在寝室里浪费了两天,原本想着今天去图书馆赶赶进度。我不能再这么颓废,开始学习。
今天我真的人麻了,因为这这个项目是我跟着视频学的,不知道这个视频是不是几年前的,用的组件版本都很老,一开始我去清华的镜像去下载,全都是最新版本的,Kafka最低版本已经达到了2.8 。早就弃用zookeeper了,而视频中用的是0.10.2.2,还是可以利用zookeeper,旧的api。
我第一个下载的是2.8版本的,然后发现用不了zookeeper,就开始各种查资料,知道了这个事实,就开始找更低版本,结果找不到很苦恼。浪费了几个小时,后来终于想起来一个网站aprive.apache.org,上面好像有apache组件的历代版本,应有尽有。
Welcome! - The Apache Software Foundationhttps://archive.apache.org/
找到了0.9版本开始下载,结果发现是真的慢,这个国外网站在图书馆下的很快,可我现在在寝室啊,难受了,光光50m的文件要下2小时,后来我想到学校vpn可能有作用,连上了vpn,下载速度一下子上天了两秒钟下载完毕。然后一切都顺利了起来,3.多下完,现在已经把kafkamonitor也安装完毕,可以实时监控卡夫卡进程。
kafka的版本坑真的害我好惨,我感觉以后还是得去玩高版本的,不过第一个自学项目我还是先从低版本走起,比较稳定,前人帮我已经踩过坑了,终于把卡夫卡给过了。
下一关flume。