摘要:附帶的這些示例配置文件使用您之前啟動的默認本地群集配置,并創建兩個連接器第一個是源連接器,用于讀取輸入文件中的行,并將每個連接生成為,第二個為連接器它從讀取消息,并在輸出文件中產生每行消息。
轉載請注明原創地址為:http://www.54tianzhisheng.cn/2018/01/04/Kafka/
介紹官網:http://kafka.apache.org/
Apache Kafka是分布式發布-訂閱消息系統。它最初由LinkedIn公司開發,之后成為Apache項目的一部分。Kafka是一種快速、可擴展的、設計內在就是分布式的,分區的和可復制的提交日志服務。
Apache Kafka與傳統消息系統相比,有以下不同:
它被設計為一個分布式系統,易于向外擴展;
它同時為發布和訂閱提供高吞吐量;
它支持多訂閱者,當失敗時能自動平衡消費者;
它將消息持久化到磁盤,因此可用于批量消費,例如ETL,以及實時應用程序。
安裝 kafka下載地址:https://kafka.apache.org/down...
wget http://mirrors.shuosc.org/apache/kafka/1.0.0/kafka_2.11-1.0.0.tgz
解壓:
tar -zxvf kafka_2.11-1.0.0.tgz cd /usr/local/kafka_2.11-1.0.0/
修改 kafka-server 的配置文件
vim /usr/local/kafka/config/server.properties
修改其中的:
broker.id=1 log.dir=/data/kafka/logs-1功能驗證: 1、啟動 zk
使用安裝包中的腳本啟動單節點 Zookeeper 實例:
bin/zookeeper-server-start.sh -daemon config/zookeeper.properties2、啟動Kafka 服務
使用 kafka-server-start.sh 啟動 kafka 服務:
bin/kafka-server-start.sh config/server.properties3、創建 topic
使用 kafka-topics.sh 創建單分區單副本的 topic test:
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
查看 topic 列表:
bin/kafka-topics.sh --list --zookeeper localhost:2181
查詢創建的 topic 列表報錯:
解決方法:
vim /etc/hosts
將 host 里的
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
修改為:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 ip6-localhost ip6-localhost.localdomain localhost6 localhost6.localdomain6
方法參考:zookeeper unable to open socket to localhost/0:0:0:0:0:0:0:1:2181
再次查詢就不報錯了。
4、產生消息使用 kafka-console-producer.sh 發送消息:
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test5、消費消息
使用 kafka-console-consumer.sh 接收消息并在終端打印:
bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning
打開個新的命令窗口執行上面命令即可查看信息:
6、查看描述 topics 信息bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic test
結果:
Topic:test PartitionCount:1 ReplicationFactor:1 Configs: Topic: test Partition: 0 Leader: 1 Replicas: 1 Isr: 1
第一行給出了所有分區的摘要,每個附加行給出了關于一個分區的信息。 由于我們只有一個分區,所以只有一行。
“Leader”: 是負責給定分區的所有讀取和寫入的節點。 每個節點將成為分區隨機選擇部分的領導者。
“Replicas”: 是復制此分區日志的節點列表,無論它們是否是領導者,或者即使他們當前處于活動狀態。
“Isr”: 是一組“同步”副本。這是復制品列表的子集,當前活著并被引導到領導者。
集群配置Kafka 支持兩種模式的集群搭建:可以在單機上運行多個 broker 實例來實現集群,也可在多臺機器上搭建集群,下面介紹下如何實現單機多 broker 實例集群,其實很簡單,只需要如下配置即可。
單機多broker 集群配置利用單節點部署多個 broker。 不同的 broker 設置不同的 id,監聽端口及日志目錄。 例如:
cp config/server.properties config/server-2.properties cp config/server.properties config/server-3.properties vim config/server-2.properties vim config/server-3.properties
修改 :
broker.id=2 listeners = PLAINTEXT://your.host.name:9093 log.dir=/data/kafka/logs-2
和
broker.id=3 listeners = PLAINTEXT://your.host.name:9094 log.dir=/data/kafka/logs-3
啟動Kafka服務:
bin/kafka-server-start.sh config/server-2.properties & bin/kafka-server-start.sh config/server-3.properties &
至此,單機多broker實例的集群配置完畢。
多機多 broker 集群配置分別在多個節點按上述方式安裝 Kafka,配置啟動多個 Zookeeper 實例。
假設三臺機器 IP 地址是 : 192.168.153.135, 192.168.153.136, 192.168.153.137
分別配置多個機器上的 Kafka 服務,設置不同的 broker id,zookeeper.connect 設置如下:
vim config/server.properties
里面的 zookeeper.connect
修改為:
zookeeper.connect=192.168.153.135:2181,192.168.153.136:2181,192.168.153.137:2181使用 Kafka Connect 來導入/導出數據
從控制臺寫入數據并將其寫回控制臺是一個方便的起點,但您可能想要使用其他來源的數據或將數據從 Kafka 導出到其他系統。對于許多系統,您可以使用 Kafka Connect 來導入或導出數據,而不必編寫自定義集成代碼。
Kafka Connect 是 Kafka 包含的一個工具,可以將數據導入和導出到 Kafka。它是一個可擴展的工具,運行 連接器,實現與外部系統交互的自定義邏輯。在這個快速入門中,我們將看到如何使用簡單的連接器運行 Kafka Connect,這些連接器將數據從文件導入到 Kafka topic,并將數據從 Kafka topic 導出到文件。
首先,我們將通過創建一些種子數據開始測試:
echo -e "zhisheng tian" > test.txt
接下來,我們將啟動兩個以獨立模式運行的連接器,這意味著它們將在單個本地專用進程中運行。我們提供三個配置文件作為參數。首先是 Kafka Connect 過程的配置,包含常見的配置,例如要連接的 Kafka 代理以及數據的序列化格式。其余的配置文件都指定一個要創建的連接器。這些文件包括唯一的連接器名稱,要實例化的連接器類以及連接器所需的任何其他配置。
bin/connect-standalone.sh config/connect-standalone.properties config/connect-file-source.properties config/connect-file-sink.properties
Kafka 附帶的這些示例配置文件使用您之前啟動的默認本地群集配置,并創建兩個連接器:第一個是源連接器,用于讀取輸入文件中的行,并將每個連接生成為 Kafka topic,第二個為連接器它從 Kafka topic 讀取消息,并在輸出文件中產生每行消息。
在啟動過程中,您會看到一些日志消息,其中一些指示連接器正在實例化。Kafka Connect 進程啟動后,源連接器應該開始讀取 test.txt topic connect-test,并將其生成 topic ,并且接收器連接器應該開始讀取 topic 中的消息 connect-test 并將其寫入文件 test.sink.txt。我們可以通過檢查輸出文件的內容來驗證通過整個管道傳輸的數據:
數據存儲在 Kafka topic 中 connect-test,因此我們也可以運行控制臺使用者來查看 topic 中的數據
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic connect-test --from-beginning
連接器繼續處理數據,所以我們可以將數據添加到文件中,并看到它在管道中移動:
echo zhishengtian>> test.txt echo zhishengtian2>> test.txt echo zhishengtian3>> test.txt echo zhishengtian4>> test.txt使用 Kafka 流來處理數據
Kafka Streams 是用于構建關鍵任務實時應用程序和微服務的客戶端庫,輸入和/或輸出數據存儲在 Kafka 集群中。Kafka Streams 結合了在客戶端編寫和部署標準 Java 和 Scala 應用程序的簡單性以及 Kafka 服務器端集群技術的優勢,使這些應用程序具有高度可伸縮性,彈性,容錯性,分布式等特性。
可參考官網入門案例:http://kafka.apache.org/10/do...
參考1、在CentOS 7上安裝Kafka
2、http://kafka.apache.org/10/do...
關注我文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/68195.html
摘要:附帶的這些示例配置文件使用您之前啟動的默認本地群集配置,并創建兩個連接器第一個是源連接器,用于讀取輸入文件中的行,并將每個連接生成為,第二個為連接器它從讀取消息,并在輸出文件中產生每行消息。 轉載請注明原創地址為:http://www.54tianzhisheng.cn/2018/01/04/Kafka/ showImg(https://segmentfault.com/img/rem...
摘要:前提好幾周沒更新博客了,對不斷支持我博客的童鞋們說聲抱歉了。熟悉我的人都知道我寫博客的時間比較早,而且堅持的時間也比較久,一直到現在也是一直保持著更新狀態。 showImg(https://segmentfault.com/img/remote/1460000014076586?w=1920&h=1080); 前提 好幾周沒更新博客了,對不斷支持我博客的童鞋們說聲:抱歉了!。自己這段時...
閱讀 1802·2021-11-24 09:39
閱讀 2290·2021-09-30 09:47
閱讀 4144·2021-09-22 15:57
閱讀 1873·2019-08-29 18:36
閱讀 3577·2019-08-29 12:21
閱讀 590·2019-08-29 12:17
閱讀 1263·2019-08-29 11:25
閱讀 724·2019-08-28 18:26