1. 程式人生 > 其它 >Linux Kafka叢集部署

Linux Kafka叢集部署


官網下載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)


更多學習連線