官方文件:
三颱機器
hostname
ipkafka01
10.27.148.84
kafka02
10.27.148.85
kafka03
10.27.148.86
yum install -y install jdk1.8.0_101.x86_64
kafka的安裝包裡預設帶了乙個zookeeper,因為kafka資料一致性包括集群borker資訊、分割槽、消費者、生產者等一些關鍵性配置都儲存在kafka中,所以生產環境最好是有乙個單獨的zookeeper集群。這裡用三颱kafka節點同時安裝zookeeper。
mkdir -p /data/zookeeper/
cd /data/zookeeper/
wget
tar zxvf zookeeper-3.4.12.tar.gz
#複製乙份zoo_sample.cfg 並命名為zoo.cfg zookeeper啟動是讀取zoo.cfg檔案。
cp zookeeper-3.4.12/conf/zoo_sample.cfg zookeeper-3.4.12/conf/zoo.cfg
cd zookeeper-3.4.12/conf/
#vim zoo.cfg
ticktime=2000 #心跳時間間隔
initlimit=10 #初始化連線時最長能忍受多少個心跳時間間隔數,5*2000 = 10秒
synclimit=5 #最長不能超過多少個 ticktime 的時間長度
datadir=/data/zookeeper/zkdata #快照日誌的儲存路徑
datalogdir=/data/zookeeper/zkdatalog 事物日誌的儲存路徑#
clientport=2181
server.1 = 10.27.148.84:2888:3888 #第乙個埠( port )是從( follower )機器連線到主( leader )機器的埠,第二個埠是用來進行 leader 選舉的埠
server.2 = 10.27.148.85:2888:3888
server.3 = 10.27.148.86:2888:3888
#建立myid檔案 每個server的id不一樣
echo
"1"> /opt/zookeeper/zkdata/myid
#server2
echo
"2"> /opt/zookeeper/zkdata/myid
#server3
echo
"3"> /opt/zookeeper/zkdata/myid
將三颱機器的ip也加進每台機器的iptables白名單裡邊,同時zookeeper的三個埠也加進白名單
cd /data/zookeeper/zookeeper-3.4.12/bin/
./zkserver.sh start
./zkserver.sh status
mkdir -p /data/kafka/kafkalogs
cd /data/kafka
wget
tar zxvf kafka_2.11-1.1.0.tgz
cd kafka_2.11-1.1.0/config/
#vim server.properties
#每台伺服器的broker.id都不能相同
broker.id=0
port = 9092
host.name= 10.27.148.84
#在log.retention.hours=168 下面新增下面三項
message.max.byte=5242880
default.replication.factor=2
replica.fetch.max.bytes=5242880
log.dirs = /data/kafka/kafkalogs #訊息存放的目錄,這個目錄可以配置為「,」逗號分割的表示式,num.io.threads要大於這個目錄的個數
#設定zookeeper的連線埠
zookeeper.connect=10.27.148.84:2181,10.27.148.85:2181,10.27.148.86:2181
iptables -a input -p tcp --dport 9092 -j accept
iptables -a output -p tcp --sport 9092 -j accept
service iptables restart
./kafka-server-start.sh -daemon ../config/server.properties #啟動kafka
#建立乙個topic並生產和消費測試一下
./kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 2 --partitions 1 --topic test
#建立topic
./kafka-console-producer.sh --broker-list localhost:9092 --topic test
#在一台伺服器上建立乙個生產者
./kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning #在一台伺服器上建立消費者
檢視topic的分割槽資訊
./kafka-topics.sh --describe --zookeeper 127.0.0.1:2181
生產一條資料
./kafka-console-producer.sh --broker-list 127.0.0.1:9092--topic testtopic
消費資料
./kafka-console-consumer.sh --bootstrap-server 10.11.128.87:9092 --topic testtopic
修改分割槽數量(分割槽數量只可以增加,不能刪除)
./kafka-topics.sh --zookeeper 127.0.0.1:2181 --alter --topic testtopic --partitions 60
檢視消費者分組
./kafka-consumer-groups.sh --list --bootstrap-server 127.0.0.1:9092
分割槽消費情況和消費者資訊
./kafka-consumer-groups.sh --bootstrap-server 127.0.0.1:9092 --describe --group test
檢視佇列堆積
./kafka-run-class.sh kafka.tools.consumeroffsetchecker --zookeeper 127.0.0.1:2181 --group test --topic testtopic
建立topic
./kafka-topics.sh --create --zookeeper 127.0.0.1:2181 --replication-factor 1 --partitions 1 --topic testtopic
Kafka 集群部署
kafka是乙個分布式訊息佇列,需要依賴zookeeper,請先安裝好zk集群 kafka安裝包解壓 tar xf kafka 2.10 0.9.0.1 tgz mv kafka 2.10 0.9.0.1 usr kafka cd usr kafka 配置檔案 server.properties t...
kafka集群部署
一台伺服器上可以啟動多個broker例項,或者將broker部署到多台伺服器上,以下以172.16.50.21集群為例,多台伺服器上部署broker。tar xzf kafka 2.11 1.0.0.tgz cd kafka 2.11 1.0.0kafka依賴zookeeper,如果環境中沒有zoo...
Kafka集群部署
前提 在啟動kafaka集群,呼叫 bin kafka server start.sh config server.properties 前,需要把每台機器上zookeeper服務都給啟動了。zookeeper的安裝配置看,1 kafka集群規劃 s101 s102 s103 s104 zk zk ...