天天看點

附錄E 安裝Kafka

E.1   安裝Kafka

Kafka是由LinkedIn設計的一個高吞吐量、分布式、基于釋出訂閱模式的消息系統,使用Scala編寫,它以可水準擴充、可靠性、異步通信和高吞吐率等特性而被廣泛使用。目前越來越多的開源分布式處理系統都支援與Kafka內建,其中Spark Streaming作為後端流引擎配合Kafka作為前端消息系統正成為目前流處理系統的主流架構之一。

Kafka安裝包可以在其官網下載下傳頁面下載下傳,下載下傳位址如下,為加快下載下傳速度可以選擇中國境内的鏡像,選擇穩定版本kafka_2.11-0.9.0.1.tgz安裝包。

http://kafka.apache.org/downloads.html

下載下傳後把安裝包方放在目錄/home/spark/work目錄下,用下面指令解壓縮Kafka安裝包,并把解壓後的目錄移動到/app/soft目錄下:

$cd /home/spark/work/

$tar -zxf kafka_2.11-0.9.0.1.tgz

$mv kafka-0.9.0.1 /app/soft

$ll /app/soft

為了友善運作Kafka相關腳本,将Kafka的bin路徑加入到/etc/profile中,設定如下内容(分發到各節點後,在各節點上做同樣設定):

export KAFKA_HOME=/app/soft/kafka-0.9.0.1

export PATH=$PATH:$KAFKA_HOME/bin

設定完畢後使用如下指令使配置生效:

$source /etc/profile

在Kafka的根目錄下建立log目錄用于存放日志檔案:

$mkdir /app/soft/kafka-0.9.0.1/logs/

修改$KAFKA_HOME/config/server.properties配置檔案内容(僅列出重要配置):

################ Server Basics ################

#建議根據ip區分,這裡使用ZooKeeper中的id來設定,如master節點設定為0,slave1節點設定為1,slave2節點設定為2

broker.id=1

################ Socket Server Settings ################

#broker用于接收producer消息的端口

port=9092

#broker的hostname

host.name=master

#配置PRODUCER/CONSUMER連上來的時候使用的位址

advertised.host.name=master

################ Log Basics ################

#kafka存放消息檔案的路徑

log.dirs=/app/soft/kafka-0.9.0.1/logs/

#topic的預設分區數

num.partitions=2

################ ZooKeeper ################

#ZooKeeper叢集連接配接位址資訊

zookeeper.connect=master:2181,slave1:2181,slave2:2181

#連接配接ZooKeeper逾時時間,機關為毫秒

zookeeper.connection.timeout.ms=6000

使用scp指令到Kafka分發到slave1和slave2節點上:

$cd /app/soft/kafka-0.9.0.1

$scp -r kafka-0.9.0.1 spark@slave1:/app/soft

$scp -r kafka-0.9.0.1 spark@slave2:/app/soft

分發完畢後,修改server.properties配置檔案中broker.id、host.name、advertised.host. name和zookeeper.connect等配置項。

1.  啟動ZooKeeper

分别在master、slave1和slave2節點上啟動ZooKeeper服務:

$zkServer.sh start

2.  啟動Kafka

分别在master、slave1和slave2節點上啟動Kafka服務:

$kafka-server-start.sh $KAFKA_HOME/config/server.properties

附錄E 安裝Kafka

圖 附錄E‑1 啟動Kafka

3.  在master節點上建立主題Topic

$kafka-topics.sh --create --topic kafkaTopic --replication-factor 3 --partitions 2 --zookeeper master:2181

附錄E 安裝Kafka

圖 附錄E‑2 在Kafka中建立主題

4.  在slave1模拟消息生産者,發送消息至Kafka

$kafka-console-producer.sh --broker-list master:9092 --sync --topic kafkaTopic

當消費者連接配接後,在發送消息的終端輸入:hello kafka/who are you?

附錄E 安裝Kafka

圖 附錄E‑3 slave1模拟消息生産者發送消息

5.  在slave2模拟消息消費者,顯示消息的消費

$kafka-console-consumer.sh --zookeeper master:2181 --topic kafkaTopic --from-beginning

由于設定接收從開始到現在的消息,以前發送的消息也顯示在slave2終端上。

附錄E 安裝Kafka

圖 附錄E‑4 slave2模拟消息消費者收到消息

本文轉自shishanyuan部落格園部落格,原文連結: http://www.cnblogs.com/shishanyuan/p/6195876.html   ,如需轉載請自行聯系原作者

繼續閱讀