您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關(guān)單節(jié)點(diǎn)KAFKA的安裝部署是怎樣的,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
項(xiàng)目背景:
項(xiàng)目需要為使用增量數(shù)據(jù)同步工具,接入大數(shù)據(jù)平臺(tái),實(shí)現(xiàn)增量同步功能。根據(jù)公司要求kafka版本為0.11
本文搭建的是單節(jié)點(diǎn)的kafka。
下載地址
http://kafka.apache.org/downloads.html
一、測(cè)試環(huán)境信息(個(gè)人虛擬機(jī))
[root@zrd soft]# uname -a
Linux zrd 2.6.32-696.el6.x86_64 #1 SMP Tue Mar 21 19:29:05 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
[root@zrd soft]# free -h
total used free shared buffers cached
Mem: 1.8G 448M 1.4G 1.1M 26M 204M
-/+ buffers/cache: 216M 1.6G
Swap: 1.0G 0B 1.0G
[root@zrd soft]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 29G 11G 18G 39% /
tmpfs 932M 72K 932M 1% /dev/shm
/dev/mapper/vg_test-lv_test
21G 211M 20G 2% /data
/CentOS-6.9-x86_64-LiveDVD.iso
1.9G 1.9G 0 100% /yumdir
[root@zrd soft]# java -version
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)
二、kafka簡(jiǎn)介
kafka是一種高吞吐量的分布式發(fā)布訂閱消息系統(tǒng),它可以處理消費(fèi)者規(guī)模的網(wǎng)站中的所有動(dòng)作流數(shù)據(jù)。這種動(dòng)作(網(wǎng)頁瀏覽,搜索和其他用戶的行動(dòng))是在現(xiàn)代網(wǎng)絡(luò)上的許多社會(huì)功能的一個(gè)關(guān)鍵因素。這些數(shù)據(jù)通常是由于吞吐量的要求而通過處理日志和日志聚合來解決。
2.1kafka目錄介紹
/bin 操作kafka的可執(zhí)行腳本,還包含windows下腳本
/config 配置文件所在目錄
/libs 依賴庫目錄
/logs 日志數(shù)據(jù)目錄,目錄kafka把server端日志分為5種類型,分為:server,request,state,log-cleaner,controller
2.2kafka名詞解釋
producer:生產(chǎn)者。
consumer:消費(fèi)者。
topic: 消息以topic為類別記錄,Kafka將消息種子(Feed)分門別類,每一類的消息稱之為一個(gè)主題(Topic)。
broker:以集群的方式運(yùn)行,可以由一個(gè)或多個(gè)服務(wù)組成,每個(gè)服務(wù)叫做一個(gè)broker;消費(fèi)者可以訂閱一個(gè)或多個(gè)主題(topic),并從Broker拉數(shù)據(jù),從而消費(fèi)這些已發(fā)布的消息。
每個(gè)消息(也叫作record記錄,也被稱為消息)是由一個(gè)key,一個(gè)value和時(shí)間戳構(gòu)成。
2.3kafka有四個(gè)核心API介紹
應(yīng)用程序使用producer API發(fā)布消息到1個(gè)或多個(gè)topic中。
應(yīng)用程序使用consumer API來訂閱一個(gè)或多個(gè)topic,并處理產(chǎn)生的消息。
應(yīng)用程序使用streams API充當(dāng)一個(gè)流處理器,從1個(gè)或多個(gè)topic消費(fèi)輸入流,并產(chǎn)生一個(gè)輸出流到1個(gè)或多個(gè)topic,有效地將輸入流轉(zhuǎn)換到輸出流。
connector API允許構(gòu)建或運(yùn)行可重復(fù)使用的生產(chǎn)者或消費(fèi)者,將topic鏈接到現(xiàn)有的應(yīng)用程序或數(shù)據(jù)系統(tǒng)。
2.4kafka應(yīng)用場(chǎng)景
構(gòu)建實(shí)時(shí)的流數(shù)據(jù)管道,可靠地獲取系統(tǒng)和應(yīng)用程序之間的數(shù)據(jù)。
構(gòu)建實(shí)時(shí)流的應(yīng)用程序,對(duì)數(shù)據(jù)流進(jìn)行轉(zhuǎn)換或反應(yīng)。
2.5kafka消費(fèi)者組
什么是consumer group? 一言以蔽之,consumer group是kafka提供的可擴(kuò)展且具有容錯(cuò)性的消費(fèi)者機(jī)制。既然是一個(gè)組,那么組內(nèi)必然可以有多個(gè)消費(fèi)者或消費(fèi)者實(shí)例(consumer instance),它們共享一個(gè)公共的ID,即group ID。組內(nèi)的所有消費(fèi)者協(xié)調(diào)在一起來消費(fèi)訂閱主題(subscribed topics)的所有分區(qū)(partition)。當(dāng)然,每個(gè)分區(qū)只能由同一個(gè)消費(fèi)組內(nèi)的一個(gè)consumer來消費(fèi)。
三個(gè)特性:
1consumer group下可以有一個(gè)或多個(gè)consumer instance,consumer instance可以是一個(gè)進(jìn)程,也可以是一個(gè)線程
2group.id是一個(gè)字符串,唯一標(biāo)識(shí)一個(gè)consumer group
3consumer group下訂閱的topic下的每個(gè)分區(qū)只能分配給某個(gè)group下的一個(gè)consumer(當(dāng)然該分區(qū)還可以被分配給其他group)
三、安裝步驟
3.1安裝jdk(自行安裝)
3.2安裝zookeeper(單節(jié)點(diǎn))
[root@zrd soft]# tar -zxvf zookeeper-3.4.10.tar.gz
在主目錄下創(chuàng)建data和logs兩個(gè)目錄用于存儲(chǔ)數(shù)據(jù)和日志
在conf目錄下新建zoo.cfg文件,寫入以下內(nèi)容保存
tickTime=2000
dataDir=/soft/zookeeper-3.4.10/data
dataLogDir=/soft/zookeeper-3.4.10/logs
clientPort=2181
進(jìn)入bin目錄,啟動(dòng)、停止、重啟分和查看當(dāng)前節(jié)點(diǎn)狀態(tài)(包括集群中是何角色)別執(zhí)行:
./zkServer.sh start
./zkServer.sh stop
./zkServer.sh restart
./zkServer.sh status
touch /soft/zookeeper-3.4.10/data/myid
echo '1' > data/myid
3.2安裝kafka
3.2.1解壓包
tar -zxvf kafka_2.11-0.11.0.2
3.2.2配置
[root@zrd config]# ls
connect-console-sink.properties connect-log4j.properties server.properties
connect-console-source.properties connect-standalone.properties tools-log4j.properties
connect-distributed.properties consumer.properties zookeeper.properties
connect-file-sink.properties log4j.properties
connect-file-source.properties producer.properties
[root@zrd config]# pwd
/soft/kafka_2.11-0.11.0.2/config
//kafka最為重要三個(gè)配置依次為:broker.id、log.dir、zookeeper.connect,kafka server端config/server.properties參數(shù)說明和解釋如下:https://blog.csdn.net/lizhitao/article/details/25667831
[root@zrd config]# vim server.properties
broker.id=0
delete.topic.enable=true
listeners=PLAINTEXT://192.168.15.131:9092
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/data/kafka/data
num.partitions=1
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
log.flush.interval.messages=10000
log.flush.interval.ms=1000
log.retention.hours=168
log.retention.bytes=1073741824
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
zookeeper.connect=192.168.15.131:2181,192.168.15.132:2181,192.168.15.133:2181
zookeeper.connection.timeout.ms=6000
group.initial.rebalance.delay.ms=0
啟動(dòng)進(jìn)程
./kafka-server-start.sh ./kafka/config/server.properties
進(jìn)行測(cè)試:創(chuàng)建topic --test
[root@zrd bin]# jps
4729 Kafka
3049 QuorumPeerMain
5019 Jps
4238 QuorumPeerMain
[root@zrd bin]# ./kafka-topics.sh --create --zookeeper 192.168.6.105:2181 --replication-factor 1 --partitions 1 --topic test
Created topic "test".
另一個(gè)窗口:列出已創(chuàng)建的topic列表
[root@zrd bin]# ./kafka-topics.sh --list --zookeeper 192.168.6.105:2181
test
模擬客戶端去發(fā)送消息
[root@zrd bin]# ./kafka-console-producer.sh --broker-list 192.168.6.105:9092 --topic r7_test
>hello world
[2018-05-17 15:26:39,412] WARN Error while fetching metadata with correlation id 1 : {r7_test=LEADER_NOT_AVAILABLE} (org.apache.kafka.clients.NetworkClient)
>20180517
模擬客戶端去接受消息
[root@zrd bin]# ./kafka-console-consumer.sh --zookeeper 192.168.6.105:2181 --from-beginning --topic r7_test
Using the ConsoleConsumer with old consumer is deprecated and will be removed in a future major release. Consider using the new consumer by passing [bootstrap-server] instead of [zookeeper].
以上就是單節(jié)點(diǎn)KAFKA的安裝部署是怎樣的,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。