大數(shù)據(jù)平臺(tái)多租戶管理實(shí)現(xiàn)(理論篇)

????????隨著數(shù)據(jù)量的指數(shù)型增長(zhǎng),以及Hadoop生態(tài)系統(tǒng)的不斷完善,越來(lái)越多的公司選擇Hadoop作為數(shù)據(jù)倉(cāng)庫(kù),并在大數(shù)據(jù)集群上架設(shè)了越來(lái)越多的相對(duì)復(fù)雜的應(yīng)用場(chǎng)景需求。在公司內(nèi)部,多用戶業(yè)務(wù)應(yīng)用架設(shè)在同一個(gè)Hadoop集群上,容易出現(xiàn)數(shù)據(jù)與集群資源混亂無(wú)序的狀態(tài),需要建立統(tǒng)一的調(diào)度平臺(tái)實(shí)現(xiàn)數(shù)據(jù)統(tǒng)一管理、任務(wù)合理化調(diào)度,集群資源按需分配;

????????從集群使用角度延申,Hadoop大數(shù)據(jù)平臺(tái)多租戶管理實(shí)現(xiàn)在以下幾點(diǎn)實(shí)現(xiàn):



一、集群使用認(rèn)證:

? ? ? ?不能隨便某個(gè)用戶就可以直接登錄大數(shù)據(jù)平臺(tái),必須有一個(gè)開(kāi)關(guān),將大數(shù)據(jù)開(kāi)發(fā)平臺(tái)整體隔絕。目前絕大部分公司使用Kerberos組件進(jìn)行認(rèn)證管理。

? ? ? ?大致的做法為,大數(shù)據(jù)平臺(tái)設(shè)置某公共堡壘機(jī)(大業(yè)務(wù)應(yīng)用系統(tǒng)可以使用專用堡壘機(jī)),多租戶登陸堡壘機(jī)后,通過(guò)Kerberos認(rèn)證成功后,才能使用大數(shù)據(jù)平臺(tái),并且設(shè)置失效時(shí)間。Kerberos可以將認(rèn)證的密鑰在集群部署時(shí)事先放到可靠的節(jié)點(diǎn)上。集群運(yùn)行時(shí),集群內(nèi)的節(jié)點(diǎn)使用密鑰得到認(rèn)證。只有被認(rèn)證過(guò)節(jié)點(diǎn)才能正常使用。企圖冒充的節(jié)點(diǎn)由于沒(méi)有事先得到的密鑰信息,無(wú)法與集群內(nèi)部的節(jié)點(diǎn)通信。


二、數(shù)據(jù)庫(kù)管理

? ? ? ?多租戶模式下,數(shù)據(jù)安全是最重要的問(wèn)題,集群需要將不同用戶的數(shù)據(jù)統(tǒng)一管理運(yùn)維,對(duì)不同的數(shù)據(jù)進(jìn)行權(quán)限隔離。Hadoop集群數(shù)據(jù)存儲(chǔ)主要依賴HDFS,主要從以下幾個(gè)方面進(jìn)行多租戶下數(shù)據(jù)層的管理:

(1)首先內(nèi)部應(yīng)制定并嚴(yán)格遵守hadoop集群數(shù)據(jù)存放管理規(guī)則。

? ? ? ? ?示例一存放規(guī)則:第一級(jí)別目錄:(公共資源、不同用戶)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 第二級(jí)別目錄:(數(shù)據(jù)類型)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 第三級(jí)別目錄:(時(shí)間)

? ? ? ? 規(guī)則的指定需要嚴(yán)加執(zhí)行。

? ? ? ? ? ?同時(shí)為了保證對(duì)各用戶獨(dú)立數(shù)據(jù)資源量的可控,需要對(duì)其設(shè)置數(shù)據(jù)存儲(chǔ)的上線(50%三級(jí);75%二級(jí);90%一級(jí))可在集群監(jiān)控中進(jìn)行每日調(diào)度監(jiān)控。

(2)目錄權(quán)限控制:

? ? ? ?在數(shù)據(jù)資產(chǎn)價(jià)值日益凸顯,以及數(shù)據(jù)安全日益重要的情況下,應(yīng)嚴(yán)格控制數(shù)據(jù)獲取權(quán)限,特別在某些金融行業(yè),客戶的隱私尤為重要。

????????多租戶下,hadoop生態(tài)系統(tǒng)有Ranger、Sentry兩個(gè)組件。大致功能一樣,可以對(duì)Hive、Hbase細(xì)粒度級(jí)、基于角色的授權(quán)。最近在搞ranger,ranger(HD出品)支持的組件相對(duì)較多。同時(shí)Cloudra公司在研發(fā)一種更好的權(quán)限控制組件。

(3)數(shù)據(jù)庫(kù)使用權(quán)限控制:

? ? ? ?hadoop生態(tài)圈使用加多的數(shù)據(jù)庫(kù)主要有HBase、Hive等,大致都支持多schema分離設(shè)置??梢酝ㄟ^(guò)數(shù)據(jù)庫(kù)分區(qū)與存放目錄權(quán)限結(jié)合起來(lái)控制數(shù)據(jù)訪問(wèn)。


三、資源管理

(1)資源隔離

? ? ? 在操作系統(tǒng)層面服務(wù)層面YARN)都可以做資源隔離。

? ? ? (1.1)服務(wù)層面, Hadoop資源池(pool),或者作業(yè)池的分配主要依賴yarn組件(相對(duì)較多的計(jì)算引擎都支持yarn管理)。 每個(gè)pool里有一定量的資源(管理員配置),每個(gè)用戶屬于某個(gè)pool,其提交的作業(yè)可使用這個(gè)pool中的資源。資源的分配主要是依據(jù)CPU虛擬核數(shù)和內(nèi)存量。另外個(gè)別組件有單獨(dú)的多租戶管理,但是在一個(gè)統(tǒng)一的大數(shù)據(jù)平臺(tái)上,還是用yarn統(tǒng)計(jì)管理的好。

? ? ?(1.2)操作系統(tǒng)層Linux用CGROUPS做靜態(tài)資源隔離。2006年 Google工程師在創(chuàng)建 CGROUPS這個(gè)特性的時(shí)候,本來(lái)的名字不是 CGROUPS,而是進(jìn)程容器,這也是這個(gè)特性的本意,就是在 Linux內(nèi)核級(jí)別創(chuàng)建一個(gè)容器的概念,使得這些進(jìn)程只競(jìng)爭(zhēng)容器內(nèi)部的資源。容器內(nèi)的應(yīng)用不會(huì)收到容器外的應(yīng)用對(duì)于操作系統(tǒng)資源,CPU、內(nèi)存、網(wǎng)絡(luò) IO、句柄的侵占,運(yùn)行出現(xiàn)問(wèn)題。CGROUPS同時(shí)也是 Docker的底層技術(shù),Docker在 CGROUPS的基礎(chǔ)之上,實(shí)現(xiàn)了更加廣泛和易用的接口,和建立的一個(gè)廣泛的生態(tài)。個(gè)別公司的大數(shù)據(jù)平臺(tái)已經(jīng)實(shí)現(xiàn)Docker底層資源隔離(星環(huán)的TDH)

(2)資源調(diào)度

????????在 Hadoop集群中 ,由于資源是有限的,多租戶環(huán)境下會(huì)有很 多作業(yè)在同時(shí)運(yùn)行,因此,資源的合理 分配和回收對(duì)多租戶來(lái)講相 當(dāng)重要。多租戶環(huán)境通常用到的是公平調(diào)度策略。因?yàn)檫@種高度既能讓長(zhǎng)時(shí)間運(yùn)行的作業(yè)及時(shí)完成,也能并發(fā)的運(yùn)行占用資源少的作業(yè) 。

????????還是主要使用yarn的公平調(diào)度,這是一種賦予作業(yè)(job)資源的方法,它的目的是讓所有的作業(yè)隨著時(shí)間的推移,都能平均的獲取等同的共享資源。當(dāng)單獨(dú)一個(gè)作業(yè)在運(yùn)行時(shí),它將使用整個(gè)集群。當(dāng)有其它作業(yè)被提交上來(lái)時(shí),系統(tǒng)會(huì)將任務(wù)(task)空閑時(shí)間片(slot)賦給這些新的作業(yè),以使得每一個(gè)作業(yè)都大概獲取到等量的CPU時(shí)間。


四、系統(tǒng)接入管理

外部用用系統(tǒng)應(yīng)用工程全部部署在堡壘機(jī)專有用戶下的目錄中,同時(shí)只將部署在堡壘機(jī)上的應(yīng)用作為后臺(tái)處理使用。



????????通過(guò)以上設(shè)置,一個(gè)大數(shù)據(jù)平臺(tái)可以從三個(gè)視角實(shí)現(xiàn)多用戶隔離:

????????一是邏輯隔離。

????????從租戶的角度出發(fā),每個(gè)租戶都有自己獨(dú)立的邏輯模型,擁有自己獨(dú)立的資源以及基于相同的邏輯模型實(shí)現(xiàn)的統(tǒng)一授權(quán)模型。

????????二是資源隔離。

????????對(duì)于不同租戶的任務(wù),在集群運(yùn)行時(shí),能夠?qū)崿F(xiàn)統(tǒng)一的、全局最優(yōu)的任務(wù)調(diào)度能力以及資源隔離能力。

????????三是運(yùn)行隔離機(jī)制。

????????用戶任務(wù)請(qǐng)求運(yùn)行在yarn調(diào)度上,相互無(wú)影響,各進(jìn)行隔離。


目前在工作中才開(kāi)始使用ranger作為目錄權(quán)限控制,后續(xù)待將以下整體實(shí)現(xiàn)下,然后將各個(gè)部署再總結(jié)下。好的總結(jié)是成功的開(kāi)始,Good Luck。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容