您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關單節點KAFKA的安裝部署是怎樣的,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
項目背景:
項目需要為使用增量數據同步工具,接入大數據平臺,實現增量同步功能。根據公司要求kafka版本為0.11
本文搭建的是單節點的kafka。
下載地址
http://kafka.apache.org/downloads.html
一、測試環境信息(個人虛擬機)
[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簡介
kafka是一種高吞吐量的分布式發布訂閱消息系統,它可以處理消費者規模的網站中的所有動作流數據。這種動作(網頁瀏覽,搜索和其他用戶的行動)是在現代網絡上的許多社會功能的一個關鍵因素。這些數據通常是由于吞吐量的要求而通過處理日志和日志聚合來解決。
2.1kafka目錄介紹
/bin 操作kafka的可執行腳本,還包含windows下腳本
/config 配置文件所在目錄
/libs 依賴庫目錄
/logs 日志數據目錄,目錄kafka把server端日志分為5種類型,分為:server,request,state,log-cleaner,controller
2.2kafka名詞解釋
producer:生產者。
consumer:消費者。
topic: 消息以topic為類別記錄,Kafka將消息種子(Feed)分門別類,每一類的消息稱之為一個主題(Topic)。
broker:以集群的方式運行,可以由一個或多個服務組成,每個服務叫做一個broker;消費者可以訂閱一個或多個主題(topic),并從Broker拉數據,從而消費這些已發布的消息。
每個消息(也叫作record記錄,也被稱為消息)是由一個key,一個value和時間戳構成。
2.3kafka有四個核心API介紹
應用程序使用producer API發布消息到1個或多個topic中。
應用程序使用consumer API來訂閱一個或多個topic,并處理產生的消息。
應用程序使用streams API充當一個流處理器,從1個或多個topic消費輸入流,并產生一個輸出流到1個或多個topic,有效地將輸入流轉換到輸出流。
connector API允許構建或運行可重復使用的生產者或消費者,將topic鏈接到現有的應用程序或數據系統。
2.4kafka應用場景
構建實時的流數據管道,可靠地獲取系統和應用程序之間的數據。
構建實時流的應用程序,對數據流進行轉換或反應。
2.5kafka消費者組
什么是consumer group? 一言以蔽之,consumer group是kafka提供的可擴展且具有容錯性的消費者機制。既然是一個組,那么組內必然可以有多個消費者或消費者實例(consumer instance),它們共享一個公共的ID,即group ID。組內的所有消費者協調在一起來消費訂閱主題(subscribed topics)的所有分區(partition)。當然,每個分區只能由同一個消費組內的一個consumer來消費。
三個特性:
1consumer group下可以有一個或多個consumer instance,consumer instance可以是一個進程,也可以是一個線程
2group.id是一個字符串,唯一標識一個consumer group
3consumer group下訂閱的topic下的每個分區只能分配給某個group下的一個consumer(當然該分區還可以被分配給其他group)
三、安裝步驟
3.1安裝jdk(自行安裝)
3.2安裝zookeeper(單節點)
[root@zrd soft]# tar -zxvf zookeeper-3.4.10.tar.gz
在主目錄下創建data和logs兩個目錄用于存儲數據和日志
在conf目錄下新建zoo.cfg文件,寫入以下內容保存
tickTime=2000
dataDir=/soft/zookeeper-3.4.10/data
dataLogDir=/soft/zookeeper-3.4.10/logs
clientPort=2181
進入bin目錄,啟動、停止、重啟分和查看當前節點狀態(包括集群中是何角色)別執行:
./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最為重要三個配置依次為:broker.id、log.dir、zookeeper.connect,kafka server端config/server.properties參數說明和解釋如下: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
啟動進程
./kafka-server-start.sh ./kafka/config/server.properties
進行測試:創建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".
另一個窗口:列出已創建的topic列表
[root@zrd bin]# ./kafka-topics.sh --list --zookeeper 192.168.6.105:2181
test
模擬客戶端去發送消息
[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].
以上就是單節點KAFKA的安裝部署是怎樣的,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。