日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

2021年大数据Spark(四十二):SparkStreaming的Kafka快速回顾与整合说明

發布時間:2023/11/28 生活经验 61 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2021年大数据Spark(四十二):SparkStreaming的Kafka快速回顾与整合说明 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

目錄

Kafka快速回顧

?消息隊列:

?發布/訂閱模式:

Kafka 重要概念:

常用命令

整合說明

兩種方式

兩個版本API


在實際項目中,無論使用Storm還是SparkStreaming與Flink,主要從Kafka實時消費數據進行處理分析,流式數據實時處理技術架構大致如下:

?

技術棧: Flume/SDK/Kafka Producer API ?-> KafKa ?—> ?SparkStreaming/Flink/Storm(Hadoop YARN) -> Redis ?-> UI

1)、阿里工具Canal:監控MySQL數據庫binlog文件,將數據同步發送到Kafka Topic中https://github.com/alibaba/canalhttps://github.com/alibaba/canal/wiki/QuickStart2)、Maxwell:實時讀取MySQL二進制日志binlog,并生成 JSON 格式的消息,作為生產者發送給 Kafka,Kinesis、RabbitMQ、Redis、Google Cloud Pub/Sub、文件或其它平臺的應用程序。http://maxwells-daemon.io/https://github.com/zendesk/maxwell

擴展:Kafka 相關常見面試題:

1)、Kafka 集群大小(規模),Topic分區函數名及集群配置?2)、Topic中數據如何管理?數據刪除策略是什么?3)、如何消費Kafka數據?4)、發送數據Kafka Topic中時,如何保證數據發送成功?

?

Apache Kafka: 最原始功能【消息隊列】,緩沖數據,具有發布訂閱功能(類似微信公眾號)。

Kafka快速回顧

Kafka 是一個分布式的基于發布/訂閱模式的消息隊列(Message Queue),主要應用與大數據實時處理領域。

?消息隊列:

Kafka 本質上是一個 MQ(Message Queue),使用消息隊列的好處?(面試會問)

  • 解耦:允許我們獨立的擴展或修改隊列兩邊的處理過程;
  • 可恢復性:即使一個處理消息的進程掛掉,加入隊列中的消息仍可以在系統恢復后被處理;
  • 緩沖:有助于解決生產消息和消費消息的處理速度不一致的情況;
  • 靈活性&峰值處理能力:不會因為突發的超負荷的請求而完全崩潰,消息隊列能夠使關鍵組件頂住突發的訪問壓力;
  • 異步通信:消息隊列允許用戶把消息放入隊列但不立即處理它;

?發布/訂閱模式

?

?

一對多,生產者將消息發布到 Topic 中,有多個消費者訂閱該主題,發布到 Topic 的消息會被所有訂閱者消費,被消費的數據不會立即從 Topic 清除。

Kafka 框架架構圖如下所示:

?

Kafka 存儲的消息來自任意多被稱為 Producer 生產者的進程,數據從而可以被發布到不同的 Topic 主題下的不同 Partition 分區。在一個分區內,這些消息被索引并連同時間戳存儲在一起。其它被稱為 Consumer 消費者的進程可以從分區訂閱消息。Kafka 運行在一個由一臺或多臺服務器組成的集群上,并且分區可以跨集群結點分布。

Kafka 重要概念:

?1)、Producer: 消息生產者,向 Kafka Broker 發消息的客戶端;

?2)、Consumer:消息消費者,從 Kafka Broker 取消息的客戶端;

?3)、Consumer Group:消費者組(CG),消費者組內每個消費者負責消費不同分區的數據,提高消費能力。一個分區只能由組內一個消費者消費,消費者組之間互不影響。所有的消費者都屬于某個消費者組,即消費者組是邏輯上的一個訂閱者;

?4)、Broker:一臺 Kafka 機器就是一個 Broker。一個集群由多個 Broker 組成。一個 Broker 可以容納多個 Topic;

?5)、Topic:可以理解為一個隊列,Topic 將消息分類,生產者和消費者面向的是同一個 Topic;

?6)、Partition:為了實現擴展性,提高并發能力,一個非常大的 Topic 可以分布到多個 Broker (即服務器)上,一個 Topic 可以分為多個 Partition,每個 Partition 是一個 有序的隊列;

?7)、Replica:副本,為實現備份的功能,保證集群中的某個節點發生故障時,該節點上的 Partition 數據不丟失,且 Kafka 仍然能夠繼續工作,Kafka 提供了副本機制,一個 Topic 的每個分區都有若干個副本,一個 Leader 和若干個 Follower;

?8)、Leader:每個分區多個副本的“主”副本,生產者發送數據的對象,以及消費者消費數據的對象,都是 Leader;

?9)、Follower:每個分區多個副本的“從”副本,實時從 Leader 中同步數據,保持和 Leader 數據的同步。Leader 發生故障時,某個 Follower 還會成為新的 Leader;

?10)、Offset:消費者消費的位置信息,監控數據消費到什么位置,當消費者掛掉再重新恢復的時候,可以從消費位置繼續消費;

?11)、Zookeeper:Kafka 集群能夠正常工作,需要依賴于 Zookeeper,Zookeeper 幫助 Kafka 存儲和管理集群信息;

?

常用命令

#啟動kafka/export/server/kafka/bin/kafka-server-start.sh -daemon /export/server/kafka/config/server.properties #停止kafka/export/server/kafka/bin/kafka-server-stop.sh #查看topic信息/export/server/kafka/bin/kafka-topics.sh --list --zookeeper node1:2181#創建topic/export/server/kafka/bin/kafka-topics.sh --create --zookeeper node1:2181 --replication-factor 1?--partitions 3 --topic test#查看某個topic信息/export/server/kafka/bin/kafka-topics.sh --describe --zookeeper node1:2181 --topic test#刪除topic/export/server/kafka/bin/kafka-topics.sh --zookeeper node1:2181 --delete --topic test#啟動生產者--控制臺的生產者--一般用于測試/export/server/kafka/bin/kafka-console-producer.sh --broker-list node1:9092 --topic spark_kafka# 啟動消費者--控制臺的消費者/export/server/kafka/bin/kafka-console-consumer.sh --bootstrap-server node1:9092 --topic spark_kafka --from-beginning

?

整合說明

兩種方式

Receiver-based Approach:

1.KafkaUtils.createDstream基于接收器方式,消費Kafka數據,已淘汰,企業中不再使用;

2.Receiver作為常駐的Task運行在Executor等待數據,但是一個Receiver效率低,需要開啟多個,再手動合并數據(union),再進行處理,很麻煩;

3.Receiver那臺機器掛了,可能會丟失數據,所以需要開啟WAL(預寫日志)保證數據安全,那么效率又會降低;

4.Receiver方式是通過zookeeper來連接kafka隊列,調用Kafka高階API,offset存儲在zookeeper,由Receiver維護;

5.Spark在消費的時候為了保證數據不丟也會在Checkpoint中存一份offset,可能會出現數據不一致;

?

Direct Approach (No Receivers):

1.KafkaUtils.createDirectStream直連方式,Streaming中每批次的每個job直接調用Simple Consumer API獲取對應Topic數據,此種方式使用最多,面試時被問的最多;

2.Direct方式是直接連接kafka分區來獲取數據,從每個分區直接讀取數據大大提高并行能力

3.Direct方式調用Kafka低階API(底層API),offset自己存儲和維護,默認由Spark維護在checkpoint中,消除了與zk不一致的情況 ;

4.當然也可以自己手動維護,把offset存在MySQL/Redis中;

?

?

?

兩個版本API

Spark Streaming與Kafka集成,有兩套API,原因在于Kafka Consumer API有兩套,文檔:

http://spark.apache.org/docs/2.4.5/streaming-kafka-integration.html

?

1. Kafka 0.8.x版本 -早已淘汰

  • 底層使用老的KafkaAPI:Old Kafka Consumer?API
  • 支持Receiver(已淘汰)和Direct模式:

2.Kafka 0.10.x版本-開發中使用

  • 底層使用新的KafkaAPI: New Kafka Consumer API
  • 只支持Direct模式

?

?

?

?

?

總結

以上是生活随笔為你收集整理的2021年大数据Spark(四十二):SparkStreaming的Kafka快速回顾与整合说明的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美日韩另类视频 | 裸体毛片 | 微拍福利一区二区 | 姐姐的秘密韩剧免费观看全集中文 | 色在线免费 | 免费欧美一级视频 | 中文字幕av第一页 | 久久久国产打桩机 | 91精品999 | 日本精品免费一区二区三区 | 欧美一区二区三区成人精品 | 欧美精品午夜 | 久久免费高清视频 | 91片黄在线观看喷潮 | jizz18欧美18| 欧美 日韩 国产 成人 | 三级黄色在线播放 | 日韩123区| 91丨国产丨白丝 | 中文字幕狠狠干 | 少妇又色又紧又黄又刺激免费 | 美女福利一区 | a视频在线免费观看 | 国产一区二区黄色 | 国产精品久久AV无码 | 国产精品主播 | 黄色成年网站 | 噜噜噜久久,亚洲精品国产品 | 高清视频免费在线观看 | 男人的天堂狠狠干 | 亚洲色图50p| 国产又粗又黄视频 | 国产视频三级 | 成人av教育 | 男朋友是消防员第一季 | 日韩69视频 | 国产最爽的乱淫视频国语对白 | 牛牛精品一区二区 | 久久九九视频 | 午夜电影一区二区 | 青草综合| 神马午夜精品 | 美女被爆操网站 | 夜夜夜夜爽| 精品人妻一区二区三区免费看 | 成年人视频网址 | 久久久久国产精品区片区无码 | 亚洲成人三级 | 大尺度床戏揉捏胸视频 | 亚洲精品国产成人av在线 | www.国产视频.com | 欧美成人aaaaa | 樱空桃在线 | 成年人看片网站 | √资源天堂中文在线视频 | 国产无套粉嫩白浆内谢 | 中文一区二区在线 | 欧美视频一区二区三区在线观看 | 一区二区三区高清在线观看 | 久久综合网址 | 欲求不满的岳中文字幕 | wwwwww色 | 国产一区二区三区免费视频 | 日韩在线无 | 91无限观看 | 福利视频亚洲 | 轻轻色在线观看 | 桃谷绘里香在线播放 | 亚洲第一福利网站 | 色噜噜狠狠一区二区三区果冻 | 亚洲精品在线视频观看 | 91黄在线看 | 成人高清视频免费观看 | 日本无遮羞调教打屁股网站 | 精品亚洲乱码一区二区 | 少妇人妻丰满做爰xxx | 日本精品一区二区三区视频 | 杨幂一区二区三区免费看视频 | 欧美日韩一区不卡 | 亚洲精品一区中文字幕乱码 | 精品国产免费视频 | 黑巨茎大战欧美白妞 | 中文字幕无码精品亚洲35 | 免费毛片软件 | 天天久久综合网 | 精品国产不卡 | 91淫黄大片 | 五月婷婷丁香六月 | 成人女同在线观看 | 玖玖在线视频 | 日本成人免费在线视频 | 欧美卡一卡二 | 精品无码久久久久 | 日本www视频在线观看 | 无码人妻丰满熟妇啪啪网站 | 亚洲一本在线观看 | √天堂中文官网8在线 | 日韩最新av | av2014天堂网|