<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Linux系統-部署-運維系列導航

       

      kafka-manager介紹

       kafka-manager是目前最受歡迎的kafka集群管理工具,最早由雅虎開源,用戶可以在Web界面執行一些簡單的集群管理操作。
      之前叫kafka-manager,現在改名叫CMAK(Cluster Manager for Apache Kafka)了。
      具體支持以下內容:
      • 管理多個集群
      • 輕松檢查群集狀態(主題,消費者,偏移,代理,副本分發,分區分發)
      • 運行首選副本選舉
      • 使用選項生成分區分配以選擇要使用的代理
      • 運行分區重新分配(基于生成的分配)
      • 使用可選主題配置創建主題(0.8.1.1具有與0.8.2+不同的配置)
      • 刪除主題(僅支持0.8.2+并記住在代理配??置中設置delete.topic.enable = true)
      • 主題列表現在指示標記為刪除的主題(僅支持0.8.2+)
      • 批量生成多個主題的分區分配,并可選擇要使用的代理
      • 批量運行重新分配多個主題的分區
      • 將分區添加到現有主題
      • 更新現有主題的配置

       

      kafka-manager安裝

      kafka-manager 3.0.0.2 以下版本官方只支持源碼編譯安裝。
      kafka-manager 3.0.0.2 及以上版本官方提供給了編譯包,但要求環境為 jdk11及以上。
      本文將以 3.0.0.2 以下的最高版本 3.0.0.1 介紹編譯安裝方式,3.0.0.2 及以上使用編譯包直接部署即可。
       
      組件安裝操作步驟參考 組件安裝部署手冊模板,根據不同組件的安裝目標,部分操作可以省略。
      本文將按照該參考步驟執行。

      一、獲取組件可執行程序庫,包括主程序,此為組件的基本文件

      1.官網下載 kafka-manager源碼
      創建目錄 /usr/local/kafka-manager,將源碼包下載到該目錄下,支持wget獲取。
      特別關注:官方release分支只有3.0.0.2及以上版本,所以需要在 tag 分支下載。

       

      2.安裝依賴組件
      kafka-manager依賴sbt編譯,需要先安裝sbt。
      其中,kafka-manager源碼路徑中,已經集成了sbt程序,所以無需單獨安裝。
      如果確實需要安裝特定版本sbt,則可以參考 sbt組件安裝(CentOS7)

       

      3.sbt編譯
      特別關注:sbt編譯過程中需要下載很多依賴包,官方倉庫下載效率很低,建議修改sbt倉庫地址
      3.1 修改倉庫地址,以阿里云倉庫為例
      [root@localhost kafka-manager]# vim ~/.sbt/repositories
      #內容如下
      [repositories]
      #local
      public: http://maven.aliyun.com/nexus/content/groups/public/
      typesafe:http://dl.bintray.com/typesafe/ivy-releases/ , [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext], bootOnly
      ivy-sbt-plugin:http://dl.bintray.com/sbt/sbt-plugin-releases/, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]
      sonatype-oss-releases
      sonatype-oss-snapshots
       
      3.2 編譯
      [root@localhost kafka-manager]# tar -zxvf CMAK-3.0.0.1.tar.gz
      [root@localhost kafka-manager]# cd CMAK-3.0.0.1/
      [root@localhost CMAK-3.0.0.1]# ll
      總用量 56
      drwxrwxr-x 9 root root   109 2月  20 2020 app
      -rw-rw-r-- 1 root root  4373 2月  20 2020 build.sbt
      drwxrwxr-x 2 root root   108 2月  20 2020 conf
      drwxrwxr-x 2 root root   156 2月  20 2020 img
      -rw-rw-r-- 1 root root 11307 2月  20 2020 LICENSE
      drwxrwxr-x 2 root root    49 2月  20 2020 project
      drwxrwxr-x 5 root root    54 2月  20 2020 public
      -rw-rw-r-- 1 root root  9572 2月  20 2020 README.md
      -rwxrwxr-x 1 root root 20971 2月  20 2020 sbt
      drwxrwxr-x 4 root root    37 2月  20 2020 src
      drwxrwxr-x 5 root root    51 2月  20 2020 test
      #自帶sbt環境
      [root@localhost CMAK-3.0.0.1]# ./sbt clean dist
      
      #獨立安裝sbt環境
      [root@localhost CMAK-3.0.0.1]# sbt clean dist 

       

      編譯過程很長,因為要下載很多依賴包,成功后會在 target/universal/ 目錄下生成一個可用于部署的 zip文件,解壓到指定目錄即可,如 /usr/local/kafka-manager/3.0.0.1。
       
      特別關注:由于sbt編譯過程非常耗時,建議大家下載編譯好的安裝包來運行
      特別關注:經驗證,2022年開始,國內sbt環境編譯成功率幾乎為0,強烈建議下載編譯好的安裝包,否則浪費太多時間和精力。
       

      二、安裝系統服務

      kafka-manager默認沒有安裝系統服務,通過主程序運行。
       

      三、主程序加入到環境變量

      根據實際需要評估是否需要加入環境變量
      [root@localhost ~]# vim /etc/profile
      #kafka-manager env
      export KAFKA_MANAGER_HOME=/usr/local/kafka-manager/3.0.0.1
      export PATH=$PATH:$KAFKA_MANAGER_HOME/bin
      
      [root@localhost ~]# source /etc/profile

       

      四、配置文件

      配置kafka-manager連接的zk集群地址
      [root@localhost 3.0.0.1]# vim conf/application.conf
      修改內容如下,注釋其他zk配置項,如kafka-manager.zkhosts
      cmak.zkhosts="192.168.11.63:8181,192.168.11.66:8181,192.168.11.72:8181"

       

      五、運行用戶

      默認使用root運行即可。
       

      六、開機啟動

      請參考教程 Linux開機啟動方案 
       

      七、服務啟動運行

      以主程序運行為例(已經將主目錄添加環境變量)
      1.啟動
      kafka-manager默認使用9000端口,可以使用-Dhttp.port指定端口
      [root@localhost 3.0.0.1]# nohup bin/cmak -Dconfig.file=conf/application.conf -Dhttp.port=9002 >/dev/null 2>&1 &

       

      2.驗證
      訪問本機9002端口

       

      3.kafka-manager詳細使用,請參考教程 詳細解析 kafka manager 的使用
       
      4.停止kafka-manager
      停止kafka-manager可以使用停止進程的方式 kill -9 pid,但是停止進程后,需要刪除安裝目錄下的 RUNNING_PID 文件,其中記錄著上次運行的進程號,如果不刪除,下次啟動時會首先檢測是否存在 RUNNING_PID 文件,存在則繼續提示啟動異常
      #定位進程,可以通過進程名稱,也可以通過監聽端口號
      [root@localhost cmak-3.0.0.1]# ps -ef | grep kafka-manager
      [root@localhost cmak-3.0.0.1]# ps -ef | grep cmak
      [root@localhost cmak-3.0.0.1]# netstat -lntup | grep 9002
      tcp6       0      0 :::9002                 :::*                    LISTEN      3051/java
      
      #停止進程
      [root@localhost cmak-3.0.0.1]# kill -9 3051
      
      #刪除PID文件
      [root@localhost cmak-3.0.0.1]# rm -f RUNNING_PID

       

      特別關注:關于kafka 與 kafka-manager

      kafka-manager監控問題

      如果kafka部署的是集群(多于一臺),則可能會遇到kafka-manager監控kafka broker數據異常問題,比如只有一臺broker顯示有數據,其他broker無數據,如下

       

      正常情況下應該是如下效果

       

      問題分析

      kafka-manager監控流程

      kafka-manager通過jmx + rmi技術實現kafka監控,大致流程如下

       

      根據以上流程,第4步操作可能會有如下問題
      1. kafka broker默認通過localhost解析 rmi ip 地址,所以會返回127.0.0.1,所以如果kafka broker與kafka-manager不在同一臺服務器上,則無法連接
      2. kafka broker默認返回隨機 rmi 端口,如果需要配置防火墻,則無法預測隨機端口范圍
      所以,解決以上問題,就需要實現kafka broker返回指定的rmi ip與端口。
       
       

      解決方案方案探討

      嘗試一
      首先,可能大家會想到通過修改服務器 /etc/hosts文件,將127.0.0.1改為本機ip地址,這樣在broker解析localhost時,將返回實際ip地址。此方案確實可以解決rmi ip的問題,同時配合關閉防火墻,經驗證可以實現kafka-manager正常監控kafka。只是需要考慮以下注意事項
      1. 將本機localhost解析改為實際ip地址,需要評估同服務器上其他應用服務或組件是否受影響,有些服務可能需要使用127.0.0.1
      2. hosts無法解決rmi端口隨機的問題,如果運維環境要求開啟防火墻,將無法滿足要求
       
      嘗試二
      接下來我們從kafka自身運行原理分析解決方案。
      kafka啟動過程中,通過 kafka-server-start.sh 調用 kafka-run-class.sh。
       
      1.分析kafka啟動腳本 kafka-server-start.sh
      可以在此處設置相關參數的值,并在啟動 kafka-run-class.sh 時傳入
      ...省略其他配置...
      
      if [ "x$KAFKA_LOG4J_OPTS" = "x" ]; then
          export KAFKA_LOG4J_OPTS="-Dlog4j.configuration=file:$base_dir/../config/log4j.properties"
      fi
      
      if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then
          export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"
      fi
      
      ...省略其他配置...
      
      exec $base_dir/kafka-run-class.sh $EXTRA_ARGS kafka.Kafka "$@"

       

      2.分析kafka啟動腳本kafka-run-class.sh
      kafka在 kafka-run-class.sh 中設置了 $JMX_PORT 參數,允許在kafka啟動前配置,最后在啟動kafka程序時,將拼接好的參數作為java啟動參數傳入。
      其中,參數可以通過多種途徑配置,如下
      • 環境變量 /etc/profile
      • kafka啟動腳本 kafka-server-start.sh內部
      • kafka啟動時動態指定 JMX_PORT=9999 bin/kafka-server-start.sh -daemon config/server.properties
      ...省略其他配置...
      
      # JMX settings
      if [ -z "$KAFKA_JMX_OPTS" ]; then
        KAFKA_JMX_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false  -Dcom.sun.management.jmxremote.ssl=false "
      fi
      
      # JMX port to use
      if [  $JMX_PORT ]; then
        KAFKA_JMX_OPTS="$KAFKA_JMX_OPTS -Dcom.sun.management.jmxremote.port=$JMX_PORT "
      fi
      
      ...省略其他配置...
      
      # Launch mode
      if [ "x$DAEMON_MODE" = "xtrue" ]; then
        nohup "$JAVA" $KAFKA_HEAP_OPTS $KAFKA_JVM_PERFORMANCE_OPTS $KAFKA_GC_LOG_OPTS $KAFKA_JMX_OPTS $KAFKA_LOG4J_OPTS -cp "$CLASSPATH" $KAFKA_OPTS "$@" > "$CONSOLE_OUTPUT_FILE" 2>&1 < /dev/null &
      else
        exec "$JAVA" $KAFKA_HEAP_OPTS $KAFKA_JVM_PERFORMANCE_OPTS $KAFKA_GC_LOG_OPTS $KAFKA_JMX_OPTS $KAFKA_LOG4J_OPTS -cp "$CLASSPATH" $KAFKA_OPTS "$@"
      fi
       
      3.kafka-run-class.sh并未設置關于 rmi 的相關參數

       

      解決方案總結

      總結以上分析,考慮到jmx端口、rmi ip、rmi 端口需要同時支持配置,推薦使用kafka啟動腳本調整的方案。
      具體方案參考如下
       
      方案一:調整kafka-run-class.sh
      1.在kafka-run-class.sh中增加rmi參數,如下
      ...省略其他配置...
      
      # JMX settings
      if [ -z "$KAFKA_JMX_OPTS" ]; then
        KAFKA_JMX_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false  -Dcom.sun.management.jmxremote.ssl=false "
      fi
      
      # JMX port to use
      if [  $JMX_PORT ]; then
        KAFKA_JMX_OPTS="$KAFKA_JMX_OPTS -Dcom.sun.management.jmxremote.port=$JMX_PORT "
      fi
      
      # RMI host to use
      # RMI與JMX原則上屬于不同技術,應該重新設計參數變量,如KAFKA_RMI_OPTS,此處共用KAFKA_JMX_OPTS,避免修改最終Java執行參數
      if [  $RMI_HOST ]; then
        KAFKA_JMX_OPTS="$KAFKA_JMX_OPTS -Djava.rmi.server.hostname=$RMI_HOST "
      fi
      
      # RMI port to use
      # RMI與JMX原則上屬于不同技術,應該重新設計參數變量,如KAFKA_RMI_OPTS,此處共用KAFKA_JMX_OPTS,避免修改最終Java執行參數
      if [  $RMI_PORT ]; then
        KAFKA_JMX_OPTS="$KAFKA_JMX_OPTS -Dcom.sun.management.jmxremote.rmi.port=$RMI_PORT "
      fi
      
      ...省略其他配置...

       

      2.參數可以通過多種途徑配置,如下
      • 環境變量 /etc/profile
      • kafka啟動腳本 kafka-server-start.sh內部
      • kafka啟動時動態指定
       
      方案二:不調整kafka-run-class.sh
      1.保持kafka-server-start.sh與kafka-run-class.sh默認
      2.通過多種途徑配置完整的KAFKA_JMX_OPTS,如下
      • 環境變量 /etc/profile
      • kafka啟動腳本 kafka-server-start.sh內部
      • kafka啟動時動態指定
      其中,KAFKA_JMX_OPTS完整參數集合為
      export KAFKA_JMX_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=9999 -Djava.rmi.server.hostname=192.168.11.72 -Dcom.sun.management.jmxremote.rmi.port=9998"
       
      特別關注:需要根據實際運維環境確認選擇何種方案,沒有最好的方案,只有最合適的方案。

       

      特別關注:
      如果沒有配置 -Dcom.sun.management.jmxremote.authenticate=false,則啟動kafka時會提示jmx權限問題,啟動失敗
      錯誤: 找不到口令文件: /usr/local/jdk_8/jdk1.8.0_201/jre/lib/management/jmxremote.password

       

      特別關注:
      如果使用環境變量(/etc/profile)全局配置方案,會影響控制臺生產者(kafka-console-producer.sh)、消費者(kafka-console-consumer.sh)工具的使用,因為在這2個工具的啟動腳本中,也會調用 kafka-run-class.sh ,即也會使用全局配置,監聽JMX端口、RMI端口,然后報【端口已占用】異常。
      以控制臺消費者腳本為例,如下
      [root@localhost bin]# cat kafka-console-consumer.sh 
      #!/bin/bash
      
      if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then
          export KAFKA_HEAP_OPTS="-Xmx512M"
      fi
      
      exec $(dirname $0)/kafka-run-class.sh kafka.tools.ConsoleConsumer "$@"

       

      附錄:參考資料

      posted on 2023-09-05 14:48  xiaoyaozhe  閱讀(2302)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 黑人欧美一级在线视频| 国产95在线 | 欧美| 欧美最猛性xxxxx大叫| www国产精品内射熟女| ww污污污网站在线看com| 亚洲一区二区精品动漫| 国产成人一区二区三区视频免费| 日韩有码中文字幕国产| 精品亚洲精品日韩精品| 国产在线不卡精品网站| 精人妻无码一区二区三区| 亚洲综合网中文字幕在线| 亚洲人妻精品一区二区| 99久久国产福利自产拍| 在线观看国产区亚洲一区| 一本无码av中文出轨人妻| 99麻豆久久精品一区二区| 最新偷拍一区二区三区| 天天摸天天做天天爽水多| 97se亚洲国产综合自在线观看| 精品国产成人午夜福利| 妓院一钑片免看黄大片| 久久国内精品自在自线91| 日韩有码av中文字幕| 色吊丝免费av一区二区| 精品一日韩美女性夜视频| 强开少妇嫩苞又嫩又紧九色| 人妻精品久久无码专区精东影业| 在线观看AV永久免费| 99久久久无码国产精品动漫| 国产精品SM捆绑调教视频| 国产精品一二三区蜜臀av| 熟女精品色一区二区三区| 亚洲国内精品一区二区| 亚洲精品漫画一二三区| 亚洲另类激情专区小说图片| 五月丁香综合缴情六月小说| 午夜DY888国产精品影院| 国产精品亚洲综合网一区| 性xxxx欧美老妇胖老太性多毛| 九九热视频在线观看一区|