Linux Kafka叢集部署
阿新 • • 發佈:2021-06-20
官網下載Kafka 安裝包,解壓安裝:
http://kafka.apache.org/downloads.html
tar zxvf kafka_2.11-0.8.2.2.tgz mv kafka_2.11-0.8.2.2 kafka cd kafka
編輯配置檔案
vim ./config/server.properties broker.id=1 # 確保叢集中唯一即可 log.dirs=/opt/kafaka/kafka-log listeners=PLAINTEXT://192.168.10.110:9092 # 填寫本機IP zookeeper.connect=192.168.10.110:2181,192.168.10.141:2181,192.168.10.142:2181 # zk資訊
#將kafka資料夾複製到另外兩臺節點下
注意修改每個節點對應的server.properties檔案的broker.id和listenrs
配置說明: broker.id:每個broker在叢集中的唯一標識,正整數。當該伺服器的ip地址發生變更,但broker.id未變,則不會影響consumers的消費情況 listeners:kafka的監聽地址與埠,在實際測試中如果寫0.0.0.0會報錯。 num.network.threads:kafka用於處理網路請求的執行緒數 num.io.threads:kafka用於處理磁碟io的執行緒數 socket.send.buffer.bytes:傳送資料的緩衝區 socket.receive.buffer.bytes:接收資料的緩衝區 socket.request.max.bytes:允許接收的最大資料包的大小(防止資料包過大導致OOM) log.dirs:kakfa用於儲存資料的目錄,所有的訊息都會儲存在該目錄當中。可以通過逗號來指定多個路徑,kafka會根據最少被使用的原則選擇目錄分配新的partition。需要說明的是,kafka在分配partition的時候選擇的原則不是按照磁碟空間大小來定的,而是根據分配的partition的個數多少而定 num.partitions:設定新建立的topic的預設分割槽數 number.recovery.threads.per.data.dir:用於恢復每個資料目錄時啟動的執行緒數 log.retention.hours:配置kafka中訊息儲存的時間,還支援log.retention.minutes和log.retention.ms。如果多個同時設定會選擇時間最短的配置,預設為7天。 log.retention.check.interval.ms:用於檢測資料過期的週期 log.segment.bytes:配置partition中每個segment資料檔案的大小。預設為1GB。超出該大小後,會自動建立一個新的segment檔案。 zookeeper.connect:指定連線的zk的地址,zk中儲存了broker的元資料資訊。可以通過逗號來設定多個值。格式為:hostname:port/path。hostname為zk的主機名或ip,port為zk監聽的埠。/path表示kafka的元資料儲存到zk上的目錄,如果不設定,預設為根目錄 zookeeper.connection.timeout:kafka連線zk的超時時間 group.initial.rebalance.delay.ms:在實際環境當中,當將多個consumer加入到一個空的consumer group中時,每加入一個consumer就會觸發一次對partition消費的重平衡,如果加入100個,就得重平衡100次,這個過程就會變得非常耗時。通過設定該引數,可以延遲重平衡的時間,比如有100個consumer會在10s內全部加入到一個consumer group中,就可以將該值設定為10s,10s之後,只需要做一次重平衡即可。預設為0則代表不開啟該特性。 auto.create.topics.enable:當有producer向一個不存在的topic中寫入訊息時,是否自動建立該topic delete.topics.enable:kafka提供了刪除topic的功能,但預設並不會直接將topic資料物理刪除。如果要從物理上刪除(刪除topic後,資料檔案也一併刪除),則需要將此項設定為true
啟動kafka
[root@node2 kafka]# cd bin/ [root@node2 bin]# ./kafka-server-start.sh -daemon ../config/server.properties
# 登入zk檢視kafka的topic資訊 cd /opt/zk/apache-zookeeper-3.7.0-bin/bin ./zkCli.sh
[zk: localhost:2181(CONNECTED) 0] ls /
[admin, brokers, cluster, config, consumers, controller, controller_epoch, isr_change_notification, latest_producer_id_block, log_dir_event_notification, zookeeper][zk: localhost:2181(CONNECTED) 0] ls /brokers
[ids, seqid, topics][zk: localhost:2181(CONNECTED) 1] ls /brokers/topics
[]
(檢視/brokers/topics,目前為空,說明還沒有建立任何的topic)