大資料體系下的多租戶管理方案

ITPUB社群發表於2022-12-05

一、多租戶的基本含義

1. 什麼是多租戶?

多租戶是一種軟體架構模式,通俗來講,就是構建一套應用來服務多個使用者,但又能確保一定的隔離性。區別於使用者的概念,使用者是資源的使用者,而租戶一般對應一個組織或一類使用者。通常資料許可權、計算資源與租戶直接繫結,而租戶與使用者又存在一定的對映關係,這樣,使用者就可以訪問該租戶所具備的資源。

2. 為什麼需要多租戶?

多租戶管理的優點在於降低了資訊化建設和管理的成本,尤其是在大資料領域,隨著資料量快速增長,資料集中化程度越來越高,企業內部對算力的需求也逐步增大,大量業務應用構建在統一的大資料平臺之上,對資源的控制、對許可權的控制也越來越越嚴格,各子公司、各部門、各業務線既有共享資源的需求、又希望透過一定的資料隔離和資源隔離技術來解決安全性和資源搶佔的問題,所以多租戶管理在大資料技術方案中已經變成了一個必選方案。

3. 大資料的多租戶管的是什麼?

大資料的技術元件眾多,但可分為資料儲存型的、資料查詢型的、資料計算型的。所以多租戶管理就是針對這些核心元件的許可權、資源和配額進行管理。儲存型的,主要就是分散式儲存系統HDFS,配額和目錄許可權管理;資料查詢型的,主要是hbase、hive的庫、表、欄位相關許可權管理;以及計算型的,主要是yarn,管理cpu和記憶體。

二、常見的大資料多租戶體系設計

由於開源大資料技術的複雜性,每個元件的資料隔離、資源配額控制都大不相同,所以也就沒有統一的產品或技術能完成多租戶的管理,現在比較常用的是透過多套技術組合來實現。先看下常見需求:假設一個公司有一個大資料平臺P,上面有兩個部門A、B,兩個部門都希望有獨享的計算資源,做到互不影響。又希望資料儲存和查詢做到隔離,避免資料洩露。從使用者角度講,能滿足他們的隔離性需求即可,這裡面就包括資料的隔離性和資源的隔離性。但從提供者角度,也就是平臺,還要考慮安全客戶端的認證鑑權、統一使用者中心管理、統一許可權管理、使用者操作審計等等一系列的管理方案,同時還要考慮資源的超賣問題(畢竟業務申請的資源都會虛高,所以適當的超賣是不影響的)。這裡邊涉及到的技術體系就包括Kerberos(統一認證)、Ranger許可權管理(CDH提供的是Sentry)、Ldap(身份資訊管理)、Yarn的佇列機制等等。

從平臺層面,核心操作以及流程如下

第一步:先規劃YARN的佇列劃分,可以考慮一個租戶一個佇列,透過給佇列劃分配額來控制佇列資源,根據業務使用模式配置是否搶佔。

第二步:編寫ldif檔案,將組織資訊、使用者資訊等初始化到ldap內,相當於建立一個租戶,ldap實現了身份資訊管理。

第三步:kerberos會同步ldap內的使用者,並針對每個租戶生成一個票據(可以繫結到主機),可以理解為令牌檔案,使用者只有在安全客戶端上用這個令牌做認證,才能執行後續的平臺操作。

第四步:在ranger中配置許可權策略,ranger很強大, 可以透過plugin的方式適配幾乎所有的核心大資料元件,來完成大資料元件的許可權管理。ranger會從ldap同步身份資訊(需要修改配置),將租戶的身份資訊與許可權資訊做關聯,就完成了許可權的管理。這裡就包括yarn的佇列許可權、hive的庫表欄位許可權、hbase的schema許可權等等。

第五步:ranger還提供了審計功能,可以對提交到大資料平臺的操作,包括hive的訪問、hbase的訪問、hdfs目錄的訪問等等做檢索。記錄的資訊包括:時間、發起請求的主機IP、租戶資訊(ldap內的身份資訊)、執行的操作(SQL或其他執行命令)、是否成功等資訊。

從使用者使用層面,只需要登入到主機上,kinit令牌,然後訪問大資料平臺資源,包括提交任務到佇列、訪問hive表。而不需要關心底層的細節,就已經實現了資源隔離和資料安全隔離。

大資料體系下的多租戶管理方案

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70024420/viewspace-2926737/,如需轉載,請註明出處,否則將追究法律責任。

相關文章