1. 程式人生 > >大資料環境搭建之Kafka偽分散式環境搭建步驟詳解

大資料環境搭建之Kafka偽分散式環境搭建步驟詳解

文章目錄

Kafka簡介

Kafka是一個訊息中介軟體(http://kafka.apache.org/),可以提供高吞吐量、高容錯、高效能的大型系統訊息傳送。Kafka的資料是持久的,有序的(同一分割槽),且可以指定讀取位置。資料是分散式儲存的,通過zookeeper同步。有關Kafka更詳細介紹參照前述文章。
其他訊息中介軟體有 ActiveMQ和RabbitMQ等。

環境準備

Linux:CentOS
Zookeeper:Kafak內建了zookeeper
Kafka: Scala 2.11-kafka_2.11-1.0.0.tgz(asc,sha512)
下載連結http://kafka.apache.org/downloads

解壓安裝

將安裝檔案加壓到/opt/目錄

tar -zxf kafka_2.11-1.0.0.tgz /opt

配置檔案

進入解壓後的Kafka目錄

cd /opt/kafka_2.11-1.0.0

1、配置config目錄下的server.properties檔案

broker.id=0 #叢集內不能重複
listeners=
PLAINTEXT://:9092 #日誌放入tmp目錄 log.dirs=/tmp/kafka-logs zookeeper.connect=bigdata:2181

注:如果zookeeper有三臺叢集
zookeeper.connect=bigdata01:2181,bigdata02:2181,bigdata03:2181
2、Kafka偽分散式配置
config目錄下配置多個server.properties檔案,新增以下配置檔案後,一共有三個server.properties檔案。因為在一臺機器上啟動,所以埠號不一樣。如果是叢集啟動,都使用9092。

cd config
cp server.properties server-1.properties
cp
server.properties server-2.properties

server-1.properties內容:

broker.id=1
listeners=PLANTEXT://:9093
log.dirs=/tmp/kafka-logs-1

server-2.properties內容:

broker.id=2
listeners=PLANTEXT://:9094
log.dirs=/tmp/kafka-logs-2

服務啟動

因為啟動命令後介面都會列印相關日誌,新起一個視窗進行後續命令
1、啟動內建的zookeeper

#kafka目錄下執行
./bin/zookeeper-server-start.sh config/zookeeper.properties 

如果要後臺執行,不列印日誌:

#如果要後臺執行,即使關閉視窗程序也不會中斷
nohup ./bin/zookeeper-server-start.sh config/zookeeper.properties > /dev/null 2>&1 &

2、啟動kafka

#末尾新增&後,即時Ctrl+C後,程序還是在的,只要不關閉視窗
./bin/kafka-server-start.sh config/server.properties & 
./bin/kafka-server-start.sh config/server-1.properties &
./bin/kafka-server-start.sh config/server-2.properties &

啟動以後三個視窗不要關閉,關閉後進程將中斷。
zookeeper如果前臺執行,關閉視窗會出現TIME_WAIT,過段時間程序沒有了
在這裡插入圖片描述
可用如下命令檢視端口占用程式的程序號
netstat -lnp | grep 2181
netstat -lntup

Topic相關操作

先建立一個topic,再發送此topic的訊息。
kafka-topics.sh命令可以建立、描述、改變、刪除一個topic,本文僅介紹前兩個命令,後兩個謹慎使用。
指定Topic名稱為"firsttopic" 、分割槽數量(和叢集數量相等)為3,複製數量為2.

./bin/kafka-topics.sh  --create --zookeeper bigdata:2181 --topic firsttopic --partitions 3 --replication-factor 2

檢視剛才建立的topic的描述

./bin/kafka-topics.sh  --describe --zookeeper bigdata:2181 --topic firsttopic

檢視有多少topic

./bin/kafka-topics.sh --zookeeper bigdata:2181 --list

控制檯生產者

啟動控制檯生產者

./bin/kafka-console-producer.sh --topic firsttopic --broker-list bigdata:9092

控制檯消費者

新建一個視窗,啟動控制檯消費者

./bin/kafka-console-consumer.sh --bootstrap-server bigdata:9092 --topic firsttopic

在生成者視窗輸入訊息“test”,按回車,消費者視窗會打印出訊息。
如果要從頭開始消費:

./bin/kafka-console-consumer.sh --bootstrap-server bigdata:9092 --topic firsttopic --from-beginning