成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

實用 | 從Apache Kafka到Apache Spark安全讀取數據

大數據 Kafka Spark
隨著在CDH平臺上物聯網(IoT)使用案例的不斷增加,針對這些工作負載的安全性顯得至關重要。本篇博文對如何以安全的方式在Spark中使用來自Kafka的數據,以及針對物聯網(IoT)使用案例的兩個關鍵組件進行了說明。

實用 | 從Apache Kafka到Apache Spark安全讀取數據

引言

隨著在CDH平臺上物聯網(IoT)使用案例的不斷增加,針對這些工作負載的安全性顯得至關重要。本篇博文對如何以安全的方式在Spark中使用來自Kafka的數據,以及針對物聯網(IoT)使用案例的兩個關鍵組件進行了說明。

Cloudera Distribution of Apache Kafka 2.0.0版本(基于Apache Kafka 0.9.0)引入了一種新型的Kafka消費者API,可以允許消費者從安全的Kafka集群中讀取數據。這樣可以允許管理員鎖定其Kafka集群,并要求客戶通過Kerberos進行身份驗證。此外,也可以允許客戶在與Kafka brokers(通過SSL/TLS)通信時加密數據隨后,在Cloudera Distribution of Apache Kafka 2.1.0版本中,Kafka通過Apache Sentry引入了支持授權功能。這樣可以允許Kafka管理員鎖定某些主題,并針對特定角色和用戶授予權限,充分發揮基于角色的訪問控制功能。

而現在,從Cloudera Distribution of Spark 2.1的第一次發行版開始,我們已經具備了從Spark中的Kafka內安全讀取數據的功能。

要求

  • Cloudera Distribution Spark 2.1第一次發行版或更高版本。
  • Cloudera Distribution Kafka 2.1.0版本或更高版本。

體系架構

使用Spark中新的直接連接器可以支持從安全的Kafka集群中獲取消息。直接連接器不使用單獨的進程(亦稱為接收器)讀取數據。相反,Spark驅動程序將跟蹤各種Kafka主題分區的偏移量,并將偏移量發送到從Kafka中直接讀取數據的執行程序中。直接連接器的簡單描述如下所示。 

 

 

 

圖1:Spark中的Kafka直接連接器

  • Spark節點和Kafka 代理人(broker)不一定在同一地點。
  • 一個Spark分區對應一個Kafka主題分區。
  • 如果出于某種原因,多個主題分區位于單個Kafka節點上,則有多個Spark執行程序可能會命中該節點(不過沒關系)。
  • 上圖只是一個簡單的說明。

非常值得注意的一點是,Spark是以分布式的方式訪問Kafka中的數據。Spark中的每一個任務都會從某個Kafka主題的特定分區中讀取數據,該特定分區稱為主題分區。主題分區理想地均勻分布在Kafka 代理人(broker)之間。

但是,為了以分布式的方式從安全的Kafka中讀取數據,我們需要在Kafka(KAFKA-1696)中使用Hadoop風格的授權令牌,在寫本篇博文時(2017年春季)還不支持這一功能。

我們已經考慮了各種解決這個問題的方法,但是最終決定采用從Kafka中安全讀取數據的建議解決方案(至少應實現Kafka授權令牌的支持)將是Spark應用程序分發用戶的keytab,以便執行程序可以訪問。然后,執行程序將使用共享的用戶密鑰表,與Kerberos密鑰分發中心(KDC)進行身份驗證,并從Kafka 代理人(broker)中讀取數據。YARN分布式緩存用于從客戶端(即網關節點)向驅動程序和執行程序發送和共享密鑰表。下圖顯示了當前解決方案的一覽圖。 

 

 

 

圖2:當前解決方案(假設YARN集群模式)

這種方法存在以下一些常見的問題:

a. 這不能被認為是發送鑰匙表的最佳安全實踐

b.在具有大量Kafka主題分區的情況下,所有執行程序可能會同時嘗試登錄KDC,存在導致重送攻擊的潛在風險(類似于DDOS攻擊)。

關于問題a),Spark已經使用分布式緩存將用戶的密鑰表從客戶端(亦稱為網關)節點發送到驅動程序,并且由于缺少授權令牌,所以沒有辦法繞過。管理員可以選擇自己在Spark外部將密鑰表分發到Spark執行程序節點(即YARN節點,因為Spark在YARN上運行),并調整優化共享的示例應用程序以緩解該問題。

關于問題b),我們在Kafka主題中測試了1000多個主題分區,并且在增加分區數量后未見對KDC服務器產生不利影響。

與Apache Sentry集成

例應用程序假設沒有使用任何Kafka授權。如果使用了Kafka授權的話(通過Apache Sentry),則必須確保應用程序中指定的消費者小組已經獲得Sentry授權。例如,如果應用程序的消費者小組的名稱是my-consumer-group,則必須同時對my-consumer-group和spark-executor-my-consumer-group授予訪問權限(即您的消費者小組名稱前綴為spark-executor-)。這是因為Spark驅動器使用是該應用程序指定的消費者小組,但spark執行程序在此集成中使用的是不同的消費者小組,該集成在驅動程序消費者小組的名稱前指定的前綴是spark-executor-。

結論

簡而言之,您可以使用Cloudera Distribution of Apache Kafka 2.1.0 版本(或更高版本)和Cloudera Distribution of Apache Spark 2.1第一次發行版(或更高版本),以安全的方式從Kafka中使用Spark內的數據——包括身份驗證(使用Kerberos進行身份認證)、授權(使用Sentry進行授權)以及線上加密(使用SSL/TLS進行加密)。 

責任編輯:龐桂玉 來源: 36大數據
相關推薦

2014-02-14 15:43:16

ApacheSpark

2022-06-01 13:52:11

開源大數據

2015-06-08 15:13:27

2017-05-17 08:41:15

ApacheKuduMVCC

2019-11-13 15:44:17

Kafka架構數據

2022-02-19 21:22:23

Kafka事務API的

2009-12-07 14:46:37

2017-04-01 14:01:50

Apache Spar內存管理

2022-12-28 09:17:53

ApacheZookeeperProposals

2023-09-12 10:55:35

Kafka數據庫服務器

2017-09-06 16:49:43

KSQLKafka數據集

2017-08-09 13:30:21

大數據Apache Kafk實時處理

2016-10-19 16:52:52

流數據Apache Kafk

2019-12-06 09:41:40

開源技術 軟件

2016-12-20 09:47:38

Apache SparLambda架構

2023-04-18 08:21:23

KafkaApache預訂應用

2023-12-10 20:37:48

Kafka數據庫工具

2019-07-16 13:15:38

Kafka分布式數據

2024-03-08 22:39:55

GolangApacheKafka

2022-05-10 15:24:34

KafkaZooKeeperKafka Raft
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一级片成人 | 美日韩免费 | 国产精品久久久久aaaa樱花 | 在线观看特色大片免费网站 | 国产一区不卡 | 一区二区久久精品 | 久久精品一区二区三区四区 | 精品一二三区视频 | 狠狠艹| 国产精品久久久久久久久久久新郎 | 精品视频在线观看 | 久久小视频 | 欧美一区二区免费电影 | 久久久久久国产精品免费免费男同 | 午夜激情影院 | 黄色在线免费观看 | www.日本精品| 天天操伊人 | 国产成人99久久亚洲综合精品 | 亚洲一区电影 | 99热这里都是精品 | 国产一区亚洲 | 国产成人久久av免费高清密臂 | 亚洲精品一 | 毛片一级片 | 天天操夜夜爽 | 波多野结衣一区二区三区在线观看 | 国产精品久久久久久亚洲调教 | 久久国产亚洲 | 久久久国产精品入口麻豆 | 91麻豆产精品久久久久久夏晴子 | 久久免费电影 | 欧美三级三级三级爽爽爽 | 国产精品视频www | 国产在线精品一区 | 国产免费一区二区三区网站免费 | 日韩乱码一二三 | 黄频免费 | 色婷婷av久久久久久久 | 五月花丁香婷婷 | 自拍偷拍亚洲视频 |