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