1. 程式人生 > 實用技巧 >Kafka學習筆記

Kafka學習筆記

Kafka學習筆記

一、Kafka快速入門

1、安裝部署

1.1.1叢集規劃

伺服器1 伺服器2 伺服器3
Zookeeper Zookeeper Zookeeper
kafka kafka kafka

1.1.2叢集部署

1)解壓安裝包

[gaocl@hadoop102 software]$ tar -zxvf kafka_2.11-0.11.0.0.tgz -C /opt/module/

2)修改解壓後的檔名稱

[gaocl@hadoop102 module]$ mv kafka_2.11-0.11.0.0/ kafka

3)在/opt/module/kafka目錄下建立logs資料夾

[gaocl@hadoop102 kafka]$ mkdir logs

4)修改配置檔案

[gaocl@hadoop102 kafka]$ cd config/

[gaocl@hadoop102 config]$ vi server.properties

輸入以下內容:

#broker的全域性唯一編號,不能重複
broker.id=0
#刪除topic功能使能
delete.topic.enable=true
#處理網路請求的執行緒數量
num.network.threads=3
#用來處理磁碟IO的現成數量
num.io.threads=8
#傳送套接字的緩衝區大小
socket.send.buffer.bytes=102400
#接收套接字的緩衝區大小
socket.receive.buffer.bytes=102400
#請求套接字的緩衝區大小
socket.request.max.bytes=104857600
#kafka執行日誌存放的路徑	
log.dirs=/opt/module/kafka/logs
#topic在當前broker上的分割槽個數
num.partitions=1
#用來恢復和清理data下資料的執行緒數量
num.recovery.threads.per.data.dir=1
#segment檔案保留的最長時間,超時將被刪除
log.retention.hours=168
#配置連線Zookeeper叢集地址
zookeeper.connect=hadoop102:2181,hadoop103:2181,hadoop104:2181

5)配置環境變數

[gaocl@hadoop102 module]$ sudo vi /etc/profile
\#KAFKA_HOME

export KAFKA_HOME=/opt/module/kafka

export PATH=$PATH:$KAFKA_HOME/bin
[gaocl@hadoop102 module]$ source /etc/profile

6)分發安裝包

[gaocl@hadoop102 module]$ xsync kafka/

​ 注意:分發之後記得配置其他機器的環境變數

​ 分發指令碼

#!/bin/bash
#1 獲取輸入引數個數,如果沒有引數,直接退出
pcount=$#
if((pcount==0)); then
echo no args;
exit;
fi

#2 獲取檔名稱
p1=$1
fname=`basename $p1`
echo fname=$fname

#3 獲取上級目錄到絕對路徑 –P指向實際實體地址,防止軟連線
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir

#4 獲取當前使用者名稱稱
user=`whoami`

#5 迴圈
for((host=102; host<105; host++)); do
        echo ------------------- hadoop$host --------------
        rsync -rvl $pdir/$fname $user@hadoop$host:$pdir
done

7)分別在hadoop103和hadoop104上修改配置檔案/opt/module/kafka/config/server.properties中的broker.id=1、broker.id=2

​ 注:broker.id不得重複

8)啟動叢集

依次在hadoop102、hadoop103、hadoop104節點上啟動kafka

[gaocl@hadoop102 kafka]$ bin/kafka-server-start.sh -daemon config/server.properties

[gaocl@hadoop103 kafka]$ bin/kafka-server-start.sh -daemon config/server.properties

[gaocl@hadoop104 kafka]$ bin/kafka-server-start.sh -daemon config/server.properties

9)關閉叢集

[gaocl@hadoop102 kafka]$ bin/kafka-server-stop.sh

[gaocl@hadoop103 kafka]$ bin/kafka-server-stop.sh

[gaocl@hadoop104 kafka]$ bin/kafka-server-stop.sh

10)kafka群起指令碼

for i in `cat /opt/module/hadoop-2.7.2/etc/hadoop/slaves`

do

echo "========== $i ==========" 

ssh $i 'source /etc/profile&&/opt/module/kafka_2.11-0.11.0.2/bin/kafka-server-start.sh -daemon /opt/module/kafka_2.11-0.11.0.2/config/server.properties'

echo $?

done