【问题标题】:How to find the kafka version in linux如何在linux中找到kafka版本
【发布时间】:2015-02-20 18:02:19
【问题描述】:

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

【问题讨论】:

标签: apache-kafka


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    Kafka 2.0 有修复(KIP-278):

    kafka-topics.sh --version 
    

    或者

    kafka-topics --version
    

    使用融合实用程序:

    Kafka 版本检查可以使用 Confluent 平台默认附带的 confluent 实用程序完成(confluent 实用程序也可以单独添加到集群中 - 致谢 cricket_007)。 p>

    ${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
    

    【讨论】:

    • 这仍然是错误的,抱歉(它也适用于 Kafka 2.0+(confluent 5.x +)。您有一个 远程运行 Kafka 集群,带有 任何版本,然后confluent version 你不好吗。
    • 当我使用你提到的 Confluent 实用程序时,我收到了这个错误。错误:“融合版本”的未知命令“kafka”
    • confluent version 是什么?
    • 这给出了“kafka-topics.sh”的版本,因此您无法识别实际以这种方式运行的 Kafka 的版本:-(
    【解决方案3】:

    目前没有像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 版本。

    【讨论】:

    • 愚蠢的问题:一个人的“kafka 文件夹”通常在哪里?
    • 显而易见的答案:/usr/local/kafka
    • 现实答案:取决于您的平台和安装方式
    • 如果在 centos 上通过 yum 安装,那么 - find /usr/share/java/kafka -name \*kafka_\* | head -1 | grep -o '\kafka[^\n]*'
    • find / -name \*kafka_\* | head -1 | grep -o '\kafka[^\n]*'
    【解决方案4】:

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

    方法一简单:-

    ps -ef|grep kafka
    

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

    方法二:-

    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

    与方法1结果相同,我们可以在kafka libs中找到kafka使用的版本。

    【讨论】:

      【解决方案5】:

      您可以 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)
      

      将显示版本

      【讨论】:

      • 如果使用 Docker:docker logs kafka | egrep -i "kafka\W+version"
      【解决方案6】:

      macOS 上的简单方式,例如通过homebrew安装

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

      【讨论】:

        【解决方案7】:

        如果您想检查特定 Kafka 代理的版本,请在代理上运行此 CLI*

        kafka-broker-api-versions.sh --bootstrap-server localhost:9092 --version
        

        其中localhost:9092 是可访问的<hostname|IP Address>:<port>,此API 将检查(localhost 可以在您运行此命令的同一主机上使用)。输出示例:

        2.4.0 (Commit:77a89fcf8d7fa018)
        

        * Apache Kafka 在您下载的 Kafka 的 ./bin 子目录中附带了各种控制台工具;例如~/kafka/bin/

        【讨论】:

        • 这似乎给出了“kafka-broker-api-versions.sh”的版本,因此您无法识别实际以这种方式运行的Kafka版本:-((或者至少在我运行时使用不同版本的 Kafka 对本地主机上的相同运行实例执行相同的命令我得到不同的版本返回。
        • @SamuelÅslund,这似乎给出了对我来说没有意义的“kafka-broker-api-versions.sh”版本。为什么要编写一个命令来输出它自己的版本?其目的应该是提供代理版本。
        • 所有答案中最直观的,让我们投票将这个答案推高!
        【解决方案8】:

        转到 kafka/libs 文件夹 我们可以看到多个 jar 搜索类似的东西 kafka_2.11-0.10.1.1.jar.asc 在这种情况下 kafka 版本是 0.10.1.1

        【讨论】:

          【解决方案9】:

          您可以用于 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
          

          【讨论】:

            【解决方案10】:

            我找到了一种无需搜索目录或日志文件的简单方法:

            kafka-dump-log --version
            

            输出如下所示:

            5.3.0-ccs(提交:6481debc2be778ee)

            【讨论】:

            • 这是confluent版本,不是kafka版本
            【解决方案11】:

            当你在 Centos7 中使用 confluent 安装 Kafka 时:

            yum install confluent-platform-oss-2.11
            

            您可以通过以下方式查看 Kafka 的版本:

            yum deplist confluent-platform-oss-2.11
            

            您可以阅读:confluent-kafka-2.11 >= 0.10.2.1

            【讨论】:

              【解决方案12】:

              要查找Kafka版本,我们可以使用jps命令显示机器上运行的所有java进程。

              第 1 步:假设您以 root 用户身份运行 Kafka,因此使用 root 登录到您的机器并使用 jps -m。它会显示类似的结果

              4979 Jps -m
              9434 Kafka config/server.properties
              

              第二步:从上面的结果中,你可以获取Kafka应用程序的PID并使用pwdx 9434报告进程的当前目录。结果会是这样的

              9434: /apps/kafka_2.12-2.4.0
              

              在这里你可以看到 Kafka 版本是 2.12-2.4.0

              【讨论】:

                【解决方案13】:

                你也可以输入

                cat /build.info
                

                这会给你这样的输出

                BUILD_BRANCH=master
                BUILD_COMMIT=434160726dacc4a1a592fe6036891d6e646a3a4a
                BUILD_TIME=2017-05-12T16:02:04Z
                DOCKER_REPO=index.docker.io/landoop/fast-data-dev
                KAFKA_VERSION=0.10.2.1
                CP_VERSION=3.2.1
                

                【讨论】:

                • 你的回答没有提到这个 build.info 文件的位置。
                • 这似乎非常特定于 Landoop 快速数据 Docker 映像 @Newbee /build.info 位于容器的根目录
                【解决方案14】:

                查看kafka版本:

                cd /usr/hdp/current/kafka-broker/libs
                ls kafka_*.jar
                

                【讨论】:

                  猜你喜欢
                  • 2014-09-02
                  • 2019-05-08
                  • 2016-05-31
                  • 2020-06-13
                  • 2011-12-11
                  • 2019-05-05
                  • 2017-06-02
                  • 2021-11-16
                  • 2014-09-27
                  相关资源
                  最近更新 更多