學習目標
初始化環境準備
安裝 JDK
安裝JDK參考鏈接:https://blog.csdn.net/wzc8961661/article/details/104954079
安裝 Zookeeper ,並保證 zk 服務正常啓動
安裝Zookeeper參考鏈接:https://blog.csdn.net/weixin_43563705/article/details/103479545
下載安裝包並上傳解壓
node01 執行以下命令,下載並解壓
//下載目錄
cd /export/softwares
//下載kafka
wget http://archive.apache.org/dist/kafka/1.0.0/kafka_2.11-1.0.0.tgz
//解壓目錄
tar -zxvf kafka_2.11-1.0.0.tgz -C /export/servers/
解壓命令
node01服務器修改 kafka 配置文件
node01執行以下命令進入到kafka的配置文件目錄,修改配置文件
node01執行以下命令創建數據文件存放目錄
//創建 kafka 日誌存放logs
mkdir -p /export/servers/kafka_2.11-1.0.0/logs
//進入該目錄 修改配置文件
cd /export/servers/kafka_2.11-1.0.0/config
修改:vim server.properties 配置文件
主要修改配置:
- broker.id=0(每個節點id不能重複):kafka集羣角色的唯一id
- log.dirs=/export/servers/kafka_2.11-1.0.0/logs(kafka日誌存放路徑)
- zookeeper.connect=node01:2181,node02:2181,node03:2181(zk節點)
- delete.topic.enable=true(自行添加):是否可以動態刪除topic數據
- host.name=node01(自行添加,配置哪個節點就修改對應主機名或IP)
broker.id=0
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/export/servers/kafka_2.11-1.0.0/logs
num.partitions=2
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
log.flush.interval.messages=10000
log.flush.interval.ms=1000
log.retention.hours=168
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
zookeeper.connect=node01:2181,node02:2181,node03:2181
zookeeper.connection.timeout.ms=6000
group.initial.rebalance.delay.ms=0
delete.topic.enable=true
host.name=node01
安裝包分發到其他服務器(node02,node03)
node01執行以下命令,將node01服務器的kafka安裝包發送到node02和node03服務器上面去
cd /export/servers/
scp -r kafka_2.11-1.0.0/ node02:$PWD
scp -r kafka_2.11-1.0.0/ node03:$PWD
node02 與 node03 服務器修改配置文件
node02與node03服務器修改kafka配置文件
node02使用以下命令修改kafka配置文件
cd /export/servers/kafka_2.11-1.0.0/config
修改:vim server.properties 配置文件
主要修改配置:
- broker.id=1(每個節點id不能重複):kafka集羣角色的唯一id
- log.dirs=/export/servers/kafka_2.11-1.0.0/logs(kafka日誌存放路徑)
- zookeeper.connect=node01:2181,node02:2181,node03:2181(zk節點)
- delete.topic.enable=true(自行添加):是否可以動態刪除topic數據
- host.name=node02(自行添加,配置哪個節點就修改對應主機名或IP)
broker.id=1
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/export/servers/kafka_2.11-1.0.0/logs
num.partitions=2
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
log.flush.interval.messages=10000
log.flush.interval.ms=1000
log.retention.hours=168
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
zookeeper.connect=node01:2181,node02:2181,node03:2181
zookeeper.connection.timeout.ms=6000
group.initial.rebalance.delay.ms=0
delete.topic.enable=true
host.name=node02
node03使用以下命令修改kafka配置文件
cd /export/servers/kafka_2.11-1.0.0/config
修改:vim server.properties 配置文件
主要修改配置:
- broker.id=2(每個節點id不能重複):kafka集羣角色的唯一id
- log.dirs=/export/servers/kafka_2.11-1.0.0/logs(kafka日誌存放路徑)
- zookeeper.connect=node01:2181,node02:2181,node03:2181(zk節點)
- delete.topic.enable=true(自行添加):是否可以動態刪除topic數據
- host.name=node03(自行添加,配置哪個節點就修改對應主機名或IP)
broker.id=2
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/export/servers/kafka_2.11-1.0.0/logs
num.partitions=2
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
log.flush.interval.messages=10000
log.flush.interval.ms=1000
log.retention.hours=168
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
zookeeper.connect=node01:2181,node02:2181,node03:2181
zookeeper.connection.timeout.ms=6000
group.initial.rebalance.delay.ms=0
delete.topic.enable=true
host.name=node03
kafka 集羣啓動與停止
注意事項:在kafka啓動前,一定要讓zookeeper啓動起來。
node01,node02,node03三臺節點執行以下命令將kafka進程啓動在後臺
//進入kafka
cd /export/servers/kafka_2.11-1.0.0
// 各節點啓動kafka
// nohup:將啓動信息寫入nohup這個文件中
// ./bin/kafka-server-start.sh config/server.properties:
// 啓動 server,啓動的是剛剛修改好的配置文件
// & :後臺運行
node01:nohup ./bin/kafka-server-start.sh config/server.properties &
node02:nohup ./bin/kafka-server-start.sh config/server.properties &
node03:nohup ./bin/kafka-server-start.sh config/server.properties &
node01,node02,node03三臺節點執行以下命令將kafka進程停止
// 進入kafka
cd /export/servers/kafka_2.11-1.0.0
// 停止 kafka集羣
bin/kafka-server-stop.sh