1. 程式人生 > >kafka安裝部署

kafka安裝部署

targe blog create text post 節點 https 正常 cat

kafka安裝教程

1.下載

下載地址:http://kafka.apache.org/downloads

技術分享圖片

以鍵頭所指版本為例

2.安裝

下載的版本已經編譯,直接解壓到想要的目錄就算安裝好了

tar -zxf kafka_2.11-0.11.0.1.tgz -C /usr/myapp

3.配置單節點

3.1 配置單節點zookeeper

我們使用kafka自帶的zookeeper

技術分享圖片
cd /usr/myapp/kafka_2.11 #進入kafka主目錄
mkdir -p zk/data   #創建zookeeper數據存放目錄
mkdir -p zk/logs    #創建zookeeperl存放日誌目錄
cd config       #進入配置文件所在目錄
mv zookeeper.properties zookeeper.properties.bak #將原配置文件移走

cat > zookeeper.properties << EOF
tickTime=2000
dataDir=/usr/myapp/kafka_2.11/zk/data
dataLogDir=/usr/myapp/kafka_2.11/zk/logs
clientPort=2181
EOF
技術分享圖片

到具體情況時註意修昨dataDir和dataLogDir為自己的相應目錄

3.2 配置單結點kafka

技術分享圖片
cd /usr/myapp/kafka_2.11 #進入kafka主目錄
mkdir logs    #創建logs目錄用於存放日誌
cd config       #進入配置文件所在目錄
mv server.properties server.properties.bak #將原配置文件移走
cat > server.properties << EOF broker.id=1 listeners=PLAINTEXT://192.168.220.128:9092 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=/usr/myapp/kafka_2.11/logs num.partitions=1 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.retention.hours=168 log.segment.bytes=1073741824 log.retention.check.interval.ms=300000 zookeeper.connect=192.168.220.128:2181 zookeeper.connection.timeout.ms=6000 group.initial.rebalance.delay.ms=0 EOF
技術分享圖片

上邊配置的server.properties的內容基本都是原server.properties的默認配置,到自己安裝時主要修改:

broker.id--broker的id;修改為任意自己想要的數值(和zookeeper中的id類似的)

listeners--監聽址址;修改為kafka要監聽的地址

log.dirs--日誌文件存放目錄;修改為自己要存放日誌的目錄

zookeeper.connect--zookeeper監聽地址;修改為自己的zookeeper的監聽地址,如果是集群所有地址全寫上用逗號(半角)隔開即可

4.啟動和停止

啟動前要配置JAVA_HOME,不然無法啟動(和tomcat一樣雖然輸出started了但並有有啟,可查看kafkaServer.out)

啟動:

./zookeeper-server-start.sh -daemon ../config/zookeeper.properties    #啟動zookeeper
./kafka-server-start.sh -daemon ../config/server.properties           #啟動kafka

停止:

./zookeeper-server-stop.sh    #停止zookeeper
./kafka-server-stop.sh        #停止kafka,centos7上可能關不了用kill -9直接殺掉

查看是否有zookeeper和kafka進程:

jps

5.搭建集群

5.1 zookeeper改造

技術分享圖片
cd /usr/myapp/kafka_2.11/config     #進入配置文件路徑

cat >> zookeeper.properties << EOF
initLimit=5
syncLimit=2
server.1=192.168.220.128:2888:3888
server.2=192.168.220.129:2888:3888
server.3=192.168.220.130:2888:3888
EOF

echo ‘1‘ > ../zk/data/myid #配置zookeeper的myid文件
技術分享圖片

5.2 kafka改造

編緝server.properties文件,將所有的zookeeper集群地址追加到zookeeper.connect後,每個地址間用逗號(半角)隔開即可

5.3 集群搭建

將上邊安裝配置好的kafka打包傳到其創機器上,然後解壓;

對於zookeeper,各機修改myid文件的為不同的值,然後各機重啟zookeeper即可。

對於kafka,各機修改server.properties中的broker.id為不同的值listeners修改為本各機IP,然後各機重啟kafka即可。

6.測試是否可用

創建topics:

./kafka-topics.sh --create --zookeeper 192.168.220.128:2181 --replication-factor 2 --partitions 1 --topic test_topics

在一臺上創建生產者:

./kafka-console-producer.sh --broker-list 192.168.220.128:9092 --topic test_topics

在另一臺上創建消費者:

./kafka-console-consumer.sh --zookeeper 192.168.220.128:2181 --topic test_topics --from-beginning

正常的話在生產者中輸入的內容,會在消費者端輸出。

kafka安裝部署