kafka安裝及配置

操作系統:Windows 10

jdk版本:jdk1.8.0_181

kafka版本:kafka_2.11-2.0.0.tgz

需要導入註冊表,使之能夠右擊鼠標 在當前位置打開cmd命令窗口。

註冊表文件:OpenCmdHere.reg直接運行即可

PS:我原本用jdk1.8.0_065的時候,kafka能夠啓動起來,但進行生產者生產消息,消費者消費就會報錯。搞了好久換了上面的jdk
1.8纔好。版本問題很頭疼

如果要兼容jdk1.7,請使用kafka 0.9版本


1、下載及解壓
至官方網站下載kafka編譯後的二進制包:http://kafka.apache.org/downloads,此處以2.0.0版本爲例,下載kafka_2.11-2.0.0.tgz
將下載壓縮包保存至任意文件夾中,並解壓壓縮包

2、配置
kafka自帶的zookeeper配置位於:config/zookeeper.properties,默認無需修改,配置中clientPort=2181指定了zookeeper運行的端口,如需修改請自行調整
kafka的配置位於:config/server.properties,默認無需修改,配置中zookeeper.connect=localhost:2181指定了zookeeper服務地址,如需修改請自行調整

3、啓動

直接運行上面的註冊表後,進入kafka目錄,右擊鼠標在當前位置打開cmd命令窗口接着執行以下名稱。

啓動自帶的zookeeper(打開新cmd窗口):
    bin\windows\zookeeper-server-start.bat config\zookeeper.properties

啓動kafka(打開新cmd窗口):
    bin\windows\kafka-server-start.bat config\server.properties

創建主題(打開新cmd窗口):
    bin\windows\kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test

查看主題::

    bin\windows\kafka-topics.bat --list --zookeeper localhost:2181

啓動producter(打開新cmd窗口):
    bin\windows\kafka-console-producer.bat --broker-list localhost:9092 --topic test

啓動consumer(打開新cmd窗口):
0.9之後版本:
    bin\windows\kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic test --from-beginning
0.9版本    
    bin\windows\kafka-console-consumer.bat --zookeeper localhost:2181 --topic test

在生產者窗口中輸入內容回車後,消費者窗口中會立即出現對應的內容

4.啓動kafka時報錯解決辦法:

報錯信息 解決辦法
'wmic' 不是內部或外部命令,也不是可運行的程序或批處理文件。 修改kafka-server-start.bat文件第28行,在wmic前加上C:\windows\system32\wbem\
ERROR Failed to clean up log for __consumer_offsets-31 in dir C:\tmp\kafka-logs due to IOException (kafka.server.LogDirFailureChannel)
java.nio.file.FileSystemException: C:\tmp\kafka-logs\__consumer_offsets-31\00000000000000000000.log.cleaned -> C:\tmp\kafka-logs\__consumer_offsets-31\00000
000000000000000.log.swap: 另一個程序正在使用此文件,進程無法訪問。
刪除C:\tmp\kafka-logs文件夾後重新啓動

5.其他配置

kafka默認配置文件中已啓用了消息日誌清理策略,默認策略爲7天(168小時)或1G(1073741824),無論哪個條件達到都觸發清理:

log.retention.hours=168
log.segment.bytes=1073741824

linux下修改kafka運行日誌:

kafka運行日誌(此日誌非上段內容中的日誌,上段內容中的日誌指的是消息隊列數據,可以在server.properties中通過log.dir=配置,如啓用了清理策略則體積不會太大)保存在安裝目錄下的logs,由於kafka會產生大量日誌,建議修改日誌保存路徑,修改bin/kafka-run-class.sh,在對應代碼段添加LOG_DIR=xxx,如:

# Log directory to use
LOG_DIR=/data/kafka/logs
if [ "x$LOG_DIR" = "x" ]; then
  LOG_DIR="$base_dir/logs"
fi

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章