本文環境如下: 作業系統:CentOS 6 32位 JDK版本:1.8.0_77 32位 Kafka版本:0.9.0.1(Scala 2.11)
1. 所需要的環境
Kafka需要以下運作環境:
Java 安裝參考CentOS 6使用rpm方式安裝JDK8
Zookeeper 安裝參考:CentOS下ZooKeeper單機模式、叢集模式安裝
2. 下載下傳、解壓Kafka安裝包
Kafka官網位址: http://kafka.apache.org/
例如:
wget "http://mirrors.hust.edu.cn/apache/kafka/0.9.0.1/kafka_2.11-0.9.0.1.tgz"
tar -xzvf kafka_2.11-0.9.0.1.tgz
mv kafka_2.11-0.9.0.1 /opt/
- 1
- 2
- 3
3. 配置環境變量(可選)
将kafka_2.11-0.9.0.1/bin添加到path,以友善通路
vi /etc/profile
- 1
在末尾添加:
KAFKA_HOME=/opt/kafka_2.11-0.9.0.1
PATH=$PATH:$KAFKA_HOME/bin
- 1
- 2
4. 啟動單機模式
4.1 修改配置檔案
cd /opt/kafka_2.11-0.9.0.1/config
vi server.properties
- 1
- 2
修改配置檔案中的以下内容:
broker.id=0 //為依次增長的:0、1、2、3、4,叢集中唯一id
log.dirs=/opt/kafka_2.11-0.9.0.1/logs //日志位址
zookeeper.connect=master:2181,slave1:2181,slave2:2181 //zookeeperServers清單,各節點以逗号分開
- 1
- 2
- 3
4.2 啟動程式
先要確定zookeeper已啟動,然後在Kafka目錄執行
nohup bin/kafka-server-start.sh config/server.properties&
- 1
如果無報錯則說明啟動成功。nohup &是實作在背景啟動。
4.3 簡單測試
打開2個終端,分别在Kafka目錄執行以下指令
啟動producer
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
- 1
啟動consumer
bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning
- 1
在producer的指令行輸入任意字元,觀察consumer是否能正确接收。
5. 常見錯誤
5.1 啟動Kafka時出現
Java HotSpot(TM) Server VM warning: INFO: os::commit_memory(0x67e00000, 1073741824, 0) failed; error='Cannot allocate memory' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 1073741824 bytes for committing reserved memory.
# An error report file with more information is saved as:
# /opt/kafka_2.11-0.9.0.1/hs_err_pid2249.log
- 1
- 2
- 3
- 4
- 5
- 6
錯誤原因:
Kafka預設使用-Xmx1G -Xms1G的JVM記憶體配置,如果機器記憶體較小,需要調整啟動配置。