1 多租戶概念
多租戶技術( Multi Tenancy Technology )又稱多重租賃技術,用于實作如何在多用戶的環境下共用相同的系統或程式組件,并且仍可確保各用戶間資料的隔離性,
具體的多租戶技術有多種,資料庫通常有以下三種:
1.1 獨立資料庫
這是第一種方案,即一個租戶一個資料庫,這種方案的用戶資料隔離級別最高、安全性最好,但成本也高,
優點:為不同的租戶提供獨立的資料庫,有助于簡化資料模型的擴展設計,滿足不同租戶的獨特需求;如果出現故障,則恢復資料比較簡單,
缺點:增大了資料庫的安裝數量,隨之帶來維護成本和購置成本的增加,這種方案與傳統的一個客戶、一套資料、一套部署類似,差別只在于軟體統一部署在運營商那里,如果面對的是銀行、醫院等要求資料隔離級別非常高的租戶,則可以選擇這種模式,提高租用的定價,如果定價較低,產品走低價路線,那么這種方案對運營商來說是無法承受的,
1.2 共享資料庫,隔離資料架構
這是第二種方案,即多個或所有租戶共享Database,但一個Tenant一個Schema,
優點:為安全性要求較高的租戶提供了一定程度的邏輯資料隔離,但并不是完全隔離;每個資料庫可以支持更多的租戶數量,
缺點;如果出現故障,則資料恢復比較困難,因為恢復資料庫將涉及其他租戶的資料;如果需要跨租戶統計資料,則存在一定的困難,
1.3 共享資料庫,共享資料架構
這是第三種方案,即租戶共享同一個Database、同一個Schema,但在表中通過Tenant ID區分租戶的資料,這是共享程度最高、隔離級別最低的模式,
優點:三種方案比較,第三種方案的維護和購置成本最低,允許每個資料庫支持的租戶數量最多,
缺點:隔離級別最低,安全性最低,需要在設計開發時加大對安全的開發量;資料備份和恢復最困難,需要逐表逐條備份和還原,如果希望以最少的服務器為最多的租戶提供服務,并且租戶接受以犧牲隔離級別換取降低成本,那么這種方案最合適,
2 多租戶方案
在大資料技術里面,實作多租戶會有多種部署模式,與傳統資料庫不同的是,在大資料場景下,客戶通常希望不同租戶之間的資料可以共享,但計算資源可以相互隔離而互不影響,
例如,一家企業有兩個租戶,一個租戶做ETL計算,另個租戶做經營分析,為了實作多租戶,會有多種不同的部署方式,
2.1 方案一
ETL和經營分析合并部署為一個Hadoop集群,并為資料處理和資料分析分別設定不同的租戶,通過對兩類租戶設定不同的資源上限,實作資源隔離,做到互不影響,

(1)優點:
這是較常規的部署方式,比較穩定,
部署簡單,維護簡單,通過YARN進行資源隔離簡單、方便,
修改資源的配額簡單,
集群的擴容簡單,并且不需要更改資源配額,
資源利用率高,所有計算均可以利用所有節點的計算資源,
(2)缺點:
共用YARN,如果YARN崩潰,則ETL和Hadoop的計算都將崩潰,
YARN的隔離是邏輯隔離,不如物理隔離更徹底,
2.2 方案二
ETL和經營分析共享一個HDFS,控制計算資源的YARN部署為兩個,分別為資料處理和資料分析服務,做到存盤資源的共享和計算資源的物理隔離,同時通過Hadoop的機架感知能力,保證三個副本的資料至少在ETL和經營分析計算集群所在的節點上各有一個副本,達到計算的本地化,

(1)優點:
計算資源物理隔離,兩個YARN不會相互影響,一個崩潰不會影響另一個,
(2)缺點:
這種方案部署復雜、維護復雜,相當于維護兩個集群,
修改配額等于重新配置YARN集群,
系統擴容后,兩個計算集群均需要重新配置,
計算資源利用率低,可能出現一個計算集群繁忙、另一個計算集群閑置的情況,
讓三個副本保證兩個計算集群所在的節點各有一個,目前的社區版本無此方案,只能通過將兩個集群設定為兩個邏輯機架的方式實作,但是這樣部署很可能會出現大量的三個副本分別部署在不同機架上的情況,影響整個HDFS集群的性能,
如果HDFS集群崩潰,則仍然會導致整個系統崩潰,
2.3 方案三
ETL和經營分析合并部署為一個Hadoop集群,并為資料處理和資料分析分別設定不同的Hive、Spark等組件實體,實體可以指定具體部署的物理機或者容器,通過實體做到物理隔離,即在YARN之上的計算資源完全隔離,做到互不影響,

方案三是方案一的升級版,相較于方案一有更好的隔離性,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/255866.html
標籤:其他
上一篇:美賽(三)——E題
下一篇:討伐Redis
