0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

想要kafka好用你就得知道這些工具

jf_78858299 ? 來源:JAVA旭陽 ? 作者:JAVA旭陽 ? 2023-05-22 16:33 ? 次閱讀

前言

工欲善其事,必先利其器。本文主要分享一下消息中間件kafka安裝部署的過程,以及我平時(shí)在工作中針對(duì)kafka用的一些客戶端工具和監(jiān)控工具。

kafka部署架構(gòu)

圖片

一個(gè)kafka集群由多個(gè)kafka broker組成,每個(gè)broker將自己的元數(shù)據(jù)信息注冊到zookeeper中,通過zookeeper關(guān)聯(lián)形成一個(gè)集群。

prettyZoo客戶端

既然kafka依賴zookeeper,我難免就需要看看zookeeper中究竟存儲(chǔ)了kafka的哪些數(shù)據(jù),這邊介紹一款高顏值的客戶端工具prettyZoo。PrettyZoo是一款基于Apache CuratorJavaFX 實(shí)現(xiàn)的 Zookeeper 圖形化管理客戶端,使用非常簡單。

下載地址: https://github.com/vran-dev/PrettyZoo

  • 連接

圖片

  • 界面化操作zookeeper

圖片

tips: kafka部署時(shí)配置文件中配置zookeeper地址的時(shí)候,可以采用如下的方式,帶上目錄,比如xxxx:2181/kafka或者xxxx:2181/kafka1,可以避免沖突。

#配置連接 Zookeeper 集群地址(在 zk 根目錄下創(chuàng)建/kafka,方便管理)
zookeeper.connect=hadoop102:2181,hadoop103:2181,hadoop104:2181/ka
fka

kafka Tool客戶端

Kafka Tool是一個(gè)用于管理和使用Apache Kafka集群的GUI應(yīng)用程序。Kafka Tool提供了一個(gè)較為直觀的UI可讓用戶快速查看Kafka集群中的對(duì)象以及存儲(chǔ)在topic中的消息,提供了一些專門面向開發(fā)人員和管理員的功能。

下載地址: https://www.kafkatool.com/index.html

圖片

kafka監(jiān)控工具

kafka 自身并沒有集成監(jiān)控管理系統(tǒng),因此對(duì) kafka 的監(jiān)控管理比較不便,好在有大量的第三方監(jiān)控管理系統(tǒng)來使用,這里介紹一款優(yōu)秀的監(jiān)控工具Kafka Eagle,可以用監(jiān)控 Kafka 集群的整體運(yùn)行情況。

下載地址https://www.kafka-eagle.org/,部署也很簡單,根據(jù)官方文檔一步一步來即可。

注意,kafka需要開啟JMX端口,即修改kafka的啟動(dòng)命令文件kafka-server-start.sh,如下圖:

圖片

圖片

圖片

kafka集群部署

一、zookeeper集群部署

  1. 上傳安裝包
  2. 移動(dòng)到指定文件夾
mv zookeeper-3.4.6.tar.gz /opt/apps/
  1. 解壓
tar -zxvf zookeeper-3.4.6.tar.gz
  1. 修改配置文件
  • 進(jìn)入配置文件目錄
cd /opt/apps/zookeeper-3.4.6/conf
  • 修改配置文件名稱
mv zoo_sample.cfg zoo.cfg
  • 編輯配置文件 vi zoo.cfg
## zk數(shù)據(jù)保存位置
dataDir=/opt/apps/data/zkdata
## 集群配置, hadoop1、hadoop2、hadoop3是主機(jī)名,后面是端口,沒有被占用即可
server.1=hadoop1:2888:3888 
server.2=hadoop2:2888:3888 
server.3=hadoop3:2888:3888
  1. 創(chuàng)建數(shù)據(jù)目錄
mkdir -p /opt/apps/data/zkdata
  1. 生成一個(gè) myid 文件,內(nèi)容為它的id, 表示是哪個(gè)節(jié)點(diǎn)。
echo 1 > /opt/apps/data/zkdata/myid
  1. 配置環(huán)境變量
vi /etc/profile 

#ZOOKEEPER_HOME 
export ZOOKEEPER_HOME=/opt/apps/zookeeper-3.4.6 
export PATH=$PATH:$ZOOKEEPER_HOME/bin 

source /etc/profile
  1. 在其他幾個(gè)節(jié)點(diǎn),即hadoop2, hadoop3上重復(fù)上面的步驟,但是myid文件的內(nèi)容有所區(qū)別,分別是對(duì)應(yīng)的id。
echo 2 > /opt/apps/data/zkdata/myid
echo 3 > /opt/apps/data/zkdata/myid
  1. 啟停集群
bin/zkServer.sh start zk 服務(wù)啟動(dòng) 
bin/zkServer.sh status zk 查看服務(wù)狀態(tài)
bin/zkServer.sh stop zk 停止服務(wù)

二、kafka集群部署

  1. 官方下載地址:http://kafka.apache.org/downloads.html
  2. 上傳安裝包, 移動(dòng)到指定文件夾
mv kafka_2.11-2.2.2.tgz /opt/apps/
  1. 解壓
tar -zxvf kafka_2.11-2.2.2.tgz
  1. 修改配置文件
  • 進(jìn)入配置文件目錄
cd /opt/apps/kafka_2.11-2.2.2/config
  • 編輯配置文件vi server.properties
#為依次增長的:0、1、2、3、4,集群中唯一 id 
broker.id=0 
#數(shù)據(jù)存儲(chǔ)的?錄 
log.dirs=/opt/apps/data/kafkadata 
#指定 zk 集群地址,注意這里加了一個(gè)目錄 
zookeeper.connect=hadoop1:2181,hadoop2:2181,hadoop3:2181/kafka

其他的配置內(nèi)容說明如下:

#broker 的全局唯一編號(hào),不能重復(fù),只能是數(shù)字。
broker.id=0
#處理網(wǎng)絡(luò)請求的線程數(shù)量
num.network.threads=3
#用來處理磁盤 IO 的線程數(shù)量
num.io.threads=8
#發(fā)送套接字的緩沖區(qū)大小
socket.send.buffer.bytes=102400
#接收套接字的緩沖區(qū)大小
socket.receive.buffer.bytes=102400
#請求套接字的緩沖區(qū)大小
socket.request.max.bytes=104857600
#kafka 運(yùn)行日志(數(shù)據(jù))存放的路徑,路徑不需要提前創(chuàng)建,kafka 自動(dòng)幫你創(chuàng)建,可以
配置多個(gè)磁盤路徑,路徑與路徑之間可以用","分隔
log.dirs=/opt/module/kafka/datas
#topic 在當(dāng)前 broker 上的分區(qū)個(gè)數(shù)
num.partitions=1
#用來恢復(fù)和清理 data 下數(shù)據(jù)的線程數(shù)量
num.recovery.threads.per.data.dir=1
# 每個(gè) topic 創(chuàng)建時(shí)的副本數(shù),默認(rèn)時(shí) 1 個(gè)副本
offsets.topic.replication.factor=1
#segment 文件保留的最長時(shí)間,超時(shí)將被刪除
log.retention.hours=168
#每個(gè) segment 文件的大小,默認(rèn)最大 1G
log.segment.bytes=1073741824
# 檢查過期數(shù)據(jù)的時(shí)間,默認(rèn) 5 分鐘檢查一次是否數(shù)據(jù)過期
log.retention.check.interval.ms=300000
#配置連接 Zookeeper 集群地址(在 zk 根目錄下創(chuàng)建/kafka,方便管理)
zookeeper.connect=hadoop102:2181,hadoop103:2181,hadoop104:2181/ka
fka
  1. 配置環(huán)境變量
vi /etc/profile 

export KAFKA_HOME=/opt/apps/kafka_2.11-2.2.2 
export PATH=$PATH:$KAFKA_HOME/bin 

source /etc/profile
  1. 在不同的節(jié)點(diǎn)上重復(fù)上面的步驟,但是需要修改配置文件server.properties中的broker.id。
# broker.id標(biāo)記是哪個(gè)kafka節(jié)點(diǎn),不能重復(fù)
broker.id=1 
broker.id=2
  1. 啟停集群
# 啟動(dòng)集群
bin/kafka-server-start.sh -daemon /opt/apps/kafka_2.11-2.2.2/config/server.properties 
# 停止集群 
bin/kafka-server-stop.sh stop

kafka命令行工具

1. 主題命令行操作

圖片

  • 查看當(dāng)前服務(wù)器中的所有 topic
bin/kafka-topics.sh --bootstrap-server hadoop102:9092 --list
  • 創(chuàng)建 first topic
bin/kafka-topics.sh --bootstrap-server hadoop102:9092 --create --partitions 1 --replication-factor 3 --topic first

選項(xiàng)說明:

--topic 定義 topic 名

--replication-factor 定義副本數(shù)

--partitions 定義分區(qū)數(shù)

  • 查看 first 主題的詳情
bin/kafka-topics.sh --bootstrap-server hadoop102:9092 --describe --topic first
  • 修改分區(qū)數(shù)(注意: 分區(qū)數(shù)只能增加,不能減少
bin/kafka-topics.sh --bootstrap-server hadoop102:9092 --alter --topic first --partitions 3
  • 刪除 topic
bin/kafka-topics.sh --bootstrap-server hadoop102:9092 --delete --topic first

2. 生產(chǎn)者命令行操作

  • 查看操作生產(chǎn)者命令參數(shù)kafka-console-producer.sh

圖片

  • 發(fā)送消息
bin/kafka-console-producer.sh --bootstrap-server hadoop102:9092 --topic first
>hello world
>xuyang hello

3. 消費(fèi)者命令行操作

  • 查看操作消費(fèi)者命令參數(shù)kafka-console-consumer.sh

圖片

圖片

  • 消費(fèi)消息
bin/kafka-console-consumer.sh --bootstrap-server hadoop102:9092 --topic first
  • 把主題中所有的數(shù)據(jù)都讀取出來(包括歷史數(shù)據(jù))。
bin/kafka-console-consumer.sh --bootstrap-server hadoop102:9092 --from-beginning --topic first

總結(jié)

本文分享了平時(shí)我在工作使用kafka以及zookeeper常用的一些工具,同時(shí)分享了kafka集群的部署,值得一提的是kafka部署配置zookeeper地址的時(shí)候,我們可以添加一個(gè)路徑,比如hadoop:2181/kafka這種方式,那么kafka的元數(shù)據(jù)信息都會(huì)放到/kafka這個(gè)目錄下,以防混淆。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 配置
    +關(guān)注

    關(guān)注

    1

    文章

    187

    瀏覽量

    18302
  • kafka
    +關(guān)注

    關(guān)注

    0

    文章

    49

    瀏覽量

    5195
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    緩存有大key?你得知道的一些手段

    是掃描出來的大key,此處只放置了有效關(guān)鍵信息。 ?? ? 圖1 大key介紹: 想要解決大key,首先我們得知道什么定義為大key。 什么是大KEY: 大key 并不是指 key 的值很大,而是
    的頭像 發(fā)表于 06-19 09:38 ?586次閱讀
    緩存有大key?你<b class='flag-5'>得知道</b>的一些手段

    好用工具欄翻譯軟件

    這是一款很好用工具欄,提示欄,英譯漢軟件,鼠標(biāo)放到想要翻譯的地方釋放就可以翻譯成中文,簡潔方便,可以很好地解決PCB Layout中出現(xiàn)的英文提示欄看不懂的問題。
    發(fā)表于 05-30 08:23

    基于發(fā)布與訂閱的消息系統(tǒng)Kafka

    Kafka權(quán)威指南》——初識(shí) Kafka
    發(fā)表于 03-05 13:46

    Kafka基礎(chǔ)入門文檔

    kafka系統(tǒng)入門教程(原理、配置、集群搭建、Java應(yīng)用、Kafka-manager)
    發(fā)表于 03-12 07:22

    Kafka幾個(gè)比較重要的配置參數(shù)

    Kafka在彈性、容錯(cuò)性以及高吞吐量方面有著很大的優(yōu)勢。想要達(dá)到生產(chǎn)環(huán)境最優(yōu),發(fā)揮這些特性,需要我們進(jìn)行一系列的配置。Kafka提供了非常多的配置屬性,對(duì)于初學(xué)者而言,很容易陷入困惑。
    發(fā)表于 11-04 08:10

    Kafka集群環(huán)境的搭建

    1、環(huán)境版本版本:kafka2.11,zookeeper3.4注意:這里zookeeper3.4也是基于集群模式部署。2、解壓重命名tar -zxvf
    發(fā)表于 01-05 17:55

    Kafka和消息隊(duì)列的關(guān)系

    與消息隊(duì)列系統(tǒng)不同的就是它能夠支持pub/sub,可以在許多服務(wù)器上進(jìn)行擴(kuò)展,并重新播放消息。 平時(shí)你可能不太關(guān)注這些問題,但是當(dāng)你想要采用響應(yīng)式編程風(fēng)格而不是命令式編程風(fēng)格時(shí),上述這些就是你需要進(jìn)行關(guān)注的了。 命令式編程和響應(yīng)
    發(fā)表于 09-28 17:15 ?0次下載
    <b class='flag-5'>Kafka</b>和消息隊(duì)列的關(guān)系

    安全工程師的這些事你得知道

    從領(lǐng)證,到注冊,再到執(zhí)業(yè)!來自靈魂的質(zhì)問三連擊,考過了注冊安全工程師,這些事兒你得知道
    的頭像 發(fā)表于 10-10 16:58 ?3092次閱讀

    2020年最火十大物聯(lián)網(wǎng)應(yīng)用你知道有哪些嗎

    電子發(fā)燒友網(wǎng)站提供《2020年最火十大物聯(lián)網(wǎng)應(yīng)用你知道有哪些嗎.pdf》資料免費(fèi)下載
    發(fā)表于 11-26 00:28 ?32次下載
    2020年最火十大物聯(lián)網(wǎng)應(yīng)<b class='flag-5'>用你</b><b class='flag-5'>知道</b>有哪些嗎

    Kafka的概念及Kafka的宕機(jī)

    問題要從一次Kafka的宕機(jī)開始說起。 筆者所在的是一家金融科技公司,但公司內(nèi)部并沒有采用在金融支付領(lǐng)域更為流行的 RabbitMQ ,而是采用了設(shè)計(jì)之初就為日志處理而生的 Kafka ,所以我一直
    的頭像 發(fā)表于 08-27 11:21 ?1951次閱讀
    <b class='flag-5'>Kafka</b>的概念及<b class='flag-5'>Kafka</b>的宕機(jī)

    kafkaUI-lite Kafka UI界面客戶端工具

    ./oschina_soft/gitee-kafka-ui-lite.zip
    發(fā)表于 06-14 11:07 ?6次下載
    kafkaUI-lite <b class='flag-5'>Kafka</b> UI界面客戶端<b class='flag-5'>工具</b>

    Kafka 的簡介

    ? 1 kafka簡介 2 為什么要用消息系統(tǒng) 3 kafka基礎(chǔ)知識(shí) 4 kafka集群架構(gòu) 5 總結(jié) ? 1 kafka簡介 其主要設(shè)計(jì)目標(biāo)如下: 以時(shí)間復(fù)雜度為O(1)的方式提供
    的頭像 發(fā)表于 07-03 11:10 ?518次閱讀
    <b class='flag-5'>Kafka</b> 的簡介

    監(jiān)控Kafka集群的常用的方法和工具介紹

    Control等工具連接到Kafka Broker的JMX端口,并監(jiān)控各種關(guān)鍵指標(biāo),如吞吐量、延遲、磁盤使用率、網(wǎng)絡(luò)連接數(shù)等。
    發(fā)表于 08-30 10:05 ?1868次閱讀
    監(jiān)控<b class='flag-5'>Kafka</b>集群的常用的方法和<b class='flag-5'>工具</b>介紹

    pcb菲林是什么?這5個(gè)作用你知道

    pcb菲林是什么?這5個(gè)作用你知道
    的頭像 發(fā)表于 11-22 11:14 ?6649次閱讀

    好用的串口工具

    好用的串口工具
    發(fā)表于 08-15 10:35 ?0次下載