1. 程式人生 > >kafka本地單機安裝部署

kafka本地單機安裝部署

kafka是一種高吞吐量的分散式釋出訂閱訊息系統,這幾天要上kafka,只在其中的一個節點使用,結合具體的專案實踐在此將kafka的本地安裝部署流程記錄下來與各位同仁分享交流。
準備工作:
這裡寫圖片描述

上述的檔案除了jdk以外均放在/usr/local/kafka目錄下。

1、安裝jdk,kafka的使用要用到jdk
首先檢查有無jdk:java -version
cd /usr/local/hadoop(本例中我是將jdk的安裝包放到hadoop資料夾下,各位可以依據自己情況)
http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html


將下載的安裝包上傳到伺服器上的/usr/local/hadoop資料夾下
tar-zxvf jdk-7u79-linux-x64.tar.gz
配置jdk的環境變數:
vim /etc/profile

這裡寫圖片描述

使其立即生效 source /etc/profile
檢查是否安裝成功:java –version

這裡寫圖片描述

至此jdk安裝配置成功。

這裡寫圖片描述

使之立即生效
source /etc/profile

測試zookeeper是否安裝成功
cd /usr/local/zookeeper-3.3.6/bin
./zkServer.sh start

這裡寫圖片描述

如上圖所示,即為zookeeper安裝配置成功。

3、安裝kafka
cd /usr/local/kafka
wget

https://archive.apache.org/dist/kafka/0.8.0/kafka_2.8.0-0.8.0.tar.gz
tar -zxvf kafka_2.8.0-0.8.0.tar.gz
配置kafka,修改檔案server.properties
cd /usr/local/kafka/kafka_2.8.0-0.8.0/config

這裡寫圖片描述

vim server.properties

這裡寫圖片描述

將上圖中的host.name處寫上本地伺服器的IP地址

這裡寫圖片描述

上圖中的log.dirs結合自己所建的資料夾路徑填寫,沒有嚴格要求

這裡寫圖片描述

上圖中的紅框處預設為2181埠

配置kafka下zookeeper
mkdir /usr/local/kafka/zookeeper #建立zookeeper目錄
mkdir /usr/local/kafka/log/zookeeper #建立zookeeper日誌目錄
cd /usr/local/kafka/kafka_2.8.0-0.8.0/config
vim zookeeper.properties

這裡寫圖片描述

上圖中的dataDir和dataLogDir可以依據自己建立的資料夾路徑填寫。

4、建立啟動和關閉kafka指令碼
(1)建立kafka指令碼
vim kafkastart.sh

這裡寫圖片描述

(2)建立關閉kafka指令碼
vim kafkastop.sh

這裡寫圖片描述

(3)新增指令碼執行許可權
chmod +x kafkastart.sh
chmod +x kafkastop.sh

(4)設定指令碼開機啟動自動執行
vim /etc/rc.d/rc.local

這裡寫圖片描述

5、測試kafka

(1)建立主題
cd /usr/local/kafka/kafka_2.8.0-0.8.0/bin
./kafka-create-topic.sh –partition 1 –replica 1 –zookeeper localhost:2181 –topic test

這裡寫圖片描述

檢查主題是否建立成功
./kafka-list-topic.sh –zookeeper localhost:2181

這裡寫圖片描述

(2)啟動producer
./kafka-console-producer.sh –broker-list 192.168.18.229:9092 –topic test
(192.168.18.229是本地伺服器IP地址,讀者根據情況填寫)

這裡寫圖片描述

如上圖所示,輸入hello kafka!後,回車
然後另外開啟一個shell終端
cd /usr/local/kafka/kafka_2.8.0-0.8.0/bin
在此終端下啟動consumer
./kafka-console-consumer.sh –zookeeper localhost:2181 –topic test

這裡寫圖片描述

由上圖可見,終端1生產者下所輸入的hello kafka!,在終端2下的消費者下顯現,至此kafka的單機安裝部署完成。

(6)關閉kafka

cd /usr/local/kafka
./kafkastop.sh

附:有可能遇到的問題和解決方案
問題1: Failed to acquire lock on file .
這裡寫圖片描述

解決方案:
這是因為之前已經有kafka程序在執行,可以如下:
通過jps命令檢視程序號,並kill掉,然後重新啟動kafka即問題解決

這裡寫圖片描述

問題2:BindException: Address already in use
這裡寫圖片描述

解決方案:
這個有時可以忽略,只要最後成功啟動了kafka就可以,也可以將server.properties下的2181的埠號換一下,這個報錯是因為2181埠被佔用了。