天天看點

Kafka單機、叢集模式安裝詳解(一)

本文環境如下: 作業系統: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記憶體配置,如果機器記憶體較小,需要調整啟動配置。 

繼續閱讀