如何在Linux中查找Kafka版本

179

如何在Linux中查找Kafka版本? 除了在下载时提及版本号之外,是否有其他方法可以查找已安装的Kafka版本?


可以使用命令kafka-topics来实现。 - mrsrinivas
17个回答

131

不确定是否有方便的方法,但您可以检查您的kafka/libs文件夹。您应该会看到像kafka_2.10-0.8.2-beta.jar这样的文件,其中2.10是Scala版本,0.8.2-beta是Kafka版本。


125

Kafka 2.0 已经通过修复(KIP-278)解决了这个问题:

kafka-topics.sh --version 
或者
kafka-topics --version

使用confluent实用程序:

可以使用confluent实用程序来检查Kafka版本,它默认与Confluent平台一起提供(也可以将confluent实用程序单独添加到集群中 - 鸣谢cricket_007)。

${confluent.home}/bin/confluent version kafka

检查其他Confluent平台组件的版本,如ksql schema-registryconnect

[confluent-4.1.0]$ ./bin/confluent version kafka
1.1.0-cp1

[confluent-4.1.0]$ ./bin/confluent version connect
4.1.0

[confluent-4.1.0]$ ./bin/confluent version schema-registry
4.1.0

[confluent-4.1.0]$ ./bin/confluent version ksql-server
4.1.0

4
很抱歉,那仍然是错误的(对于Kafka 2.0+以及confluent 5.x +同样适用)。如果您有一个运行在远程的任何版本Kafka集群,那么使用“confluent version”命令是没有用的。请注意不要改变原意。 - OneCricketeer
当我使用您提到的Confluent实用程序时,我遇到了这个错误。错误:对于“confluent version”,未知命令“kafka”。 - i.am.jabi
什么是“Confluent版本”? - mrsrinivas
1
这会给出“kafka-topics.sh”的版本,所以你不能通过这种方式识别Kafka实际运行的版本 :-( - Samuel Åslund

53

此时没有像kafka --version这样的东西。因此,您应该从您的kafka/libs/文件夹中检查版本或者运行

find ./libs/ -name \*kafka_\* | head -1 | grep -o '\kafka[^\n]*'

从你的kafka文件夹中运行它(它将为你做同样的事情)。它会返回类似于kafka_2.9.2-0.8.1.1.jar.asc的东西,其中0.8.1.1是你的kafka版本。


7
这是一个简单的问题:通常一个人的“kafka文件夹”位于哪里? - jwfearn
2
显而易见的答案是:/usr/local/kafka - jwfearn
23
实际答案:取决于您的平台和安装方式。 - Hans Jespersen
3
如果在CentOS上通过yum安装,则执行以下命令:find /usr/share/java/kafka -name \*kafka_\* | head -1 | grep -o '\kafka[^\n]*' - jimy
1
find / -name \*kafka_\* | head -1 | grep -o '\kafka[^\n]*' - Tinkaal Gogoi

38

有几种方法可以找到kafka的版本

方法1 简单:-

ps -ef|grep kafka

它将在控制台中显示所有正在运行的 Kafka 客户端... 例如:/usr/hdp/current/kafka-broker/bin/../libs/kafka-clients-0.10.0.2.5.3.0-37.jar 我们正在使用 Kafka 的 0.10.0.2.5.3.0-37 版本

方法 2:前往

cd /usr/hdp/current/kafka-broker/libs
ll |grep kafka

例: kafka_2.10-0.10.0.2.5.3.0-37.jar kafka-clients-0.10.0.2.5.3.0-37.jar

方法2也可以得到与方法1相同的结果,即在kafka库中找到正在使用的版本。


28

你可以使用grep命令查看版本日志。假设kafka已安装在/usr/local/kafka目录下,则可以执行以下命令:

$ grep "Kafka version" /usr/local/kafka/logs/*

/usr/local/kafka/logs/kafkaServer.out: INFO Kafka version : 0.9.0.1 (org.apache.kafka.common.utils.AppInfoParser)

将揭示版本


7
如果使用 Docker:docker logs kafka | egrep -i "kafka\W+version"。 (说明:该命令将从Docker容器中提取Kafka版本信息并输出到终端) - z0r

10
如果您想检查特定Kafka broker的版本,请在该broker上运行此CLI*。
kafka-broker-api-versions.sh --bootstrap-server localhost:9092 --version

其中localhost:9092是要检查的可访问的<主机名|IP地址>:<端口号>(如果是在相同的主机上运行此命令,则可以使用localhost)。以下是输出示例:

2.4.0 (Commit:77a89fcf8d7fa018)

* Apache Kafka自带各种控制台工具,位于Kafka下载的./bin子目录中,例如:~/kafka/bin/

3
这似乎提供了 "kafka-broker-api-versions.sh" 的版本,所以您无法通过这种方式确定实际运行的Kafka版本 :-((或者至少当我使用不同版本的Kafka针对本地主机上相同的运行实例运行相同的命令时,返回的版本是不同的。) - Samuel Åslund
相关链接:检索支持的API版本 - Ricardo
@SamuelÅslund,这个似乎是给出"kafka-broker-api-versions.sh"版本的命令,但是我不太理解。为什么要编写一个命令来输出自己的版本?其目的应该是提供代理版本。 - Ricardo
另外,我不清楚您所说的“在同一运行实例上使用不同版本的Kafka运行相同命令”的意思。我提供了kafka-broker-api-versions.sh PR(拉取请求)的链接,因此您可以找到它的含义,因为它似乎缺乏适当的文档说明。希望这能在某种程度上对您有所帮助。 - Ricardo
1
最直观的答案,让我们投票支持这个回答! - jumping_monkey

7

在macOS上安装Kafka的简单方法,例如通过homebrew安装

$ ls -l $(which kafka-topics)
/usr/local/bin/kafka-topics -> ../Cellar/kafka/0.11.0.1/bin/kafka-topics

5
你可以在 Debian/Ubuntu 上使用以下方法:
dpkg -l|grep kafka

预期结果应该如下所示:
ii  confluent-kafka-2.11                   0.11.0.1-1                                 all          publish-subscribe messaging rethought as a distributed commit log
ii  confluent-kafka-connect-elasticsearch  3.3.1-1                                    all          Kafka Connect connector for copying data between Kafka and Elasticsearch
ii  confluent-kafka-connect-hdfs           3.3.1-1                                    all          Kafka Connect connector for copying data between Kafka and Hadoop HDFS
ii  confluent-kafka-connect-jdbc           3.3.1-1                                    all          Kafka Connect connector for JDBC-compatible databases
ii  confluent-kafka-connect-replicator     3.3.1-1                                    all          Kafka Connect connector for replicating topics between Kafka clusters
ii  confluent-kafka-connect-s3             3.3.1-1                                    all          Kafka Connect S3 connector for copying data between Kafka and
ii  confluent-kafka-connect-storage-common 3.3.1-1                                    all          Kafka Connect Storage Common contains packages used by storage
ii  confluent-kafka-rest                   3.3.1-1                                    all          A REST proxy for Kafka

5

cd kafka

./bin/kafka-topics.sh --version


5
我找到了一种简单的方法,可以在不搜索目录或日志文件的情况下完成这个任务:
kafka-dump-log --version

输出结果如下:

5.3.0-ccs(提交:6481debc2be778ee)


2
这是Confluent版本,而不是Kafka版本。 - Víctor Oriol

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接