摘 要: 隨著全國數字化進程加快,很多組織機構都具備了海量的數據,都需要使用大數據平臺來進行數據處理。然而,在同一個組織機構內部,大數據資源如果不進行限制,所有用戶都可以訪問到,可能會存在資源使用不合理與數據泄露等問題。為了解決這個痛點,本文通過對大數據多租戶技術進行了深入研究,結合業務具體需求場景研究與設計了多租戶技術落地方案,最后對多租戶技術應用進行了總結與展望。
關鍵詞 : 多租戶:大數據; Hadoop;
1 、引言
隨著大數據的普及,越來越多的組織機構將自己的海量數據的存儲與運算放在Hadoop集群上。然而由于同公司不同項目或者部門之間對計算和存儲的需求不同,原有提供一套底層Hadoop集群給用戶使用已經不能滿足用戶的需求,主要存在以下幾個問題:
(1)多個用戶之間公用一套底層存儲資源,彼此之間數據沒有進行隔離,會導致存儲的數據泄露;
(2)不同用戶編寫的不同計算任務公用底層全量計算資源,會導致計算資源要求高的任務無法獲得足夠資源等;
(3)對IO,CPU,內存等的要求不同的任務無法分配到具備相應特長的節點上運行。
正是上述問題,在沒有對Hadoop集群資源進行精細化管理時,很容易出現數據與集群資源混亂無序的狀態。
2 、相關概念
在介紹多租戶相關研究與設計前,首先需要對下述概念進行介紹:
(1)存儲資源:分布式存儲文件系統(Hadoop Distributed File System,HDFS)中的一個或者多個目錄;
(2)計算資源:資源調度協調系統(Yet Another Resource Negotiator,YARN)中隊列;
(3)隊列:計算任務進行資源分配的最小單位。
3、 多租戶技術研究
目前,多租戶的實現有多種方案,下面對相關技術方案進行分析。
基于容器的多租戶大數據平臺構建方案,通過容器化技術封裝大數據組件成描述性文件,再通過云計算,云安全提供多租戶安全的隔離與共享。該方案主要利用了云計算的租戶隔離手段,來實現對所運行組件的隔離,但是由于其每個大數據組件所具有的數據是彼此隔離的,容易產生數據孤島,在需要對各個租戶數據進行全量計算時,難以適用。
基于Hadoop的多租戶大數據平臺方案主要是基于Hadoop生態的HDFS、YARN等的功能來對資源進行隔離。HDFS可以通過目錄的訪問權限,來對各個租戶相關的用戶訪問權限進行隔離限制。YARN中的計算隊列也可以通過相關配置來對其進行更細粒度的訪問控制以達到不同租戶的訪問隔離。
4、 多租戶技術方案
由于可能需要對各租戶數據進行更高層次的計算,本論文主要采用基于Hadoop生態的多租戶實現方案。
但是由于不同版本的Hadoop在租戶相關的功能上是有區別的。Hadoop2.7雖然也支持多租戶能力,但是其對YARN中隊列動態控制能力還有些欠缺。其無法做到對動態資源的刪除,每次要徹底刪除動態資源都需要對組件進行重啟。其次由于系統需要對國產飛騰服務器(ARM架構)支持。所以選擇了Hadoop3.3.0版本。
考慮到需要支持隊列可選擇不同特性的節點分區與需要支持多級租戶,采用了容量調度器來實現對動態資源的管控。容量調度器的節點標簽功能(Node Label)可以對計算節點進行打標簽分類,然后通過對動態資源配置不同標簽的節點資源池,來實現對動態資源的節點分區選擇。
具體的租戶與資源訪問權限的配置,主要有兩方面,一方面為存儲資源權限,主要是基于POSIX模型,在創建完目錄后對目錄的訪問權限進行設置;另一方面是動態計算資源的訪問權限,主要是通過設置動計算態資源的acl_submit_applications與acl_administer_queue兩個參數來控制。
本項目對Hadoop相關組件的整體管控方案如圖1所示,通過平臺層下發指令或者HTTP請求來實現對底層組件的控制。
圖1 整體管控方案
5 、總結
本文所提出的大數據租戶實現方案,相對于基于容器的租戶方案,不存在集群化的數據隔離。對于使用者來說,避免了存儲數據的泄露,對計算資源進行了更細化的管控,提高了機器的使用效率與計算任務的執行效率,在實際使用中有著不錯的反饋。
參考文獻
[1]林偉偉,張子龍, 劉凱,等. -種基于容器的多租戶大數據平臺構建方法[P]. CN106569895A,2017.
[2]張子龍面向大數據的多租戶關鍵技術研究[D]華南理工大學.
[3]何美斌,胡精英基于Hadoop的大數據平臺多租戶管理策略研究[J]電腦編程技巧與維護, 2017(23):58-60.