劉瑾 鄭玉清 山東農業大學網信中心
基于Hadoop集群的多租戶管理方案探討
劉瑾 鄭玉清 山東農業大學網信中心
現代社會正以不可想象的速度產生大數據,人類已經進入數據爆炸性增長的全新時代。伴隨著計算機技術與互聯網技術的發展,在產生大數據的同時,也為人們帶來了全新的云計算技術。而作為云計算技術的佼佼者,Hadoop平臺以其低成本和高效率贏得了市場的認可。本文以浪潮Insight平臺為例,從多租戶的角度出發,探討不同用戶之間的資源分配、權限隔離問題。
hadoop集群 多租戶 權限管理 資源分配
隨著大數據時代的來臨,數據類型不再僅限于結構化數據,圖片等非結構化數據也越來越多。各種各樣的數據呈現爆炸性增長趨勢。數據的多樣化,碎片化,迫切需要一種平臺來支撐處理。此時,hadoop生態系統應運而生。
近年來我校在農業大數據研究和應用方面取得了突破性的進展,鑒于農業數據存儲和處理需求日益增加,學校投資并擴建了500T的農業大數據云平臺供師生開展課題與研究。當前我校的大數據平臺是把不同類型的應用分別部署在獨立的Hadoop集群上,每個課題項目組都有它自己的私有計算空間滿足計算資源,但由于硬件資源的配置缺乏統一標準,通常會導致平均利用率差,同時也給系統管理員增加了維護難度。為了提高資源利用率,降低資源成本,希望利用多租戶技術來滿足資源高度共享的模式。
目前Hadoop版本演進為2.0版本。與1.0的最大差別是引入了HA(高可用)與YARN(資源調度)。它的主要組成部分有:HDFS:Hadoop分布式文件系統,提供高吞吐量的數據訪問,適合大規模數據集方面的應用。Yarn:資源管理系統,它是一個通用的資源模塊,可以為各類應用程序進行資源管理和調度。MapReduce:提供快速并行處理海量數據的能力,是一種分布式數據處理模式。Spark:基于內存進行計算的分布式計算框架。Hive:建立在Hadoop之上的數據倉庫,提供類似于SQL的HQL語言、操作結構化數據存儲服務和基本的數據分析服務。HBase:提供海量數據存儲功能,是一種構建在HDFS之上的分布式、面向列的存儲系統。ZooKeeper:提供分布式、高可用性的協調服務能力。幫助系統避免單點故障,從而建立可靠的應用程序。Oozie:提供了對Hadoop組件的任務編排、執行的功能。以Java Web應用程序的形式運行在Java servlet容器(如:Tomcat)中,并使用數據庫來存儲工作流定義當前運行的工作流實例(含實例的狀態和變量)。Flume:支持在系統中定制各類數據發送方,用于收集數據;提供了對數據進行簡單處理和寫入各種數據接收方的能力。
如圖所示:

多租戶技術是一種軟件架構技術,它旨在探討如何在多用戶環境下共用相同的系統或程序組件,同時又能確保用戶間數據的隔離性。Hadoop的多租戶是指一個Hadoop集群對多部門多用戶進行服務,每一個用戶被稱之為租戶。允許企業客戶用統一的平臺對同一份數據來進行實時處理、交互訪問,從而提高企業對hadoop集群的利用率。
在大數據環境下,要想實現多租戶涉及以下關鍵技術:
2.1.1 公平調度:
在Hadoop集群中,由于資源是有限的,多租戶環境下會有很多作業在同時運行,因此,資源的合理分配和回收對多租戶來講相當重要。多租戶環境通常用到的是公平調度策略。因為這種高度既能讓長時間運行的作業及時完成,也能并發的運行占用資源少的作業。
2.1.2 Kerberos:
Kerberos是Hadoop集群中的安全認證組件。集群運行時,集群內的節點為使用密鑰得到認證。只有被認證的節點才能正常使用。
2.1.3 Ranger:
Ranger是Hadoop集群中的策略控制組件。該組件可以用圖形化界面對hive、hbase、hdfs和yarn等進行策略配置。通過Ranger可以實現用戶之間的權限隔離。
2.1.4 資源池:
每個資源池里由管理員按照CPU虛擬核數和內存量配置一定量的資源,包含一些用戶。這些用戶提交的作業可以使用這個池中的資源。
2.2.1 租戶管理
創建及管理租戶基本信息并且為租戶分配計算資源和存儲資源,為租戶分配相應的權限模型。同時還能監控租戶資源使用情況,包括CPU、內存資源利用率、該租戶下運行的作業等。在Hadoop集群中該功能模塊主要由yarn來實現。
2.2.2 資源管理
在yarn中基于cpu和內存為粒度設計資源池,并為其分配資源權重、共享資源量等參數,同時監控整個平臺的資源使用情況并對其進行動態調整。
2.2.3 權限管理
在該模塊中,針對hive庫表、hbase表、hdfs文件系統中的文件及目錄操作、MR作業提交配置相應的權限模型,分配模型給對應的用戶。在Hadoop集群中該功能模塊主要由Ranger來實現。
浪潮Insight是業界比較領先的HADOOP企業級發行版本。它以開源的Apache Hadoop及其相關項目為核心組件,并在開源框架的基礎上進行了安全性增強。它提供了公平調度策略作為多租戶的資源管理,可以通過web方式進行層次化隊列,以確保一個組織的子隊列之間共享其它隊列被允許的使用資源。
平臺測試環境為 3臺裝載了 centos6.7 系統的管理節點和7臺裝載了 centos6.7 系統的計算節點,并安裝浪潮Insight組件。以我校兩個課題組A和B為例,層次結構如圖所示:
首先登陸到Insight 的管理控制臺 Ambari,管理員的缺省用戶名和密碼是 admin / admin。成功登陸以后,可以看到整個 Hadoop 集群的狀況。點擊“九宮格”進入YARN QUEUE Manger選項,可以看到Insight缺省只有一個隊列得法default。單擊default隊列,可以看到該隊列所需的資源。新建課題A和課題B隊列,并在課題A和課題B隊列下新建與層次結構圖相應的隊列。
如圖所示:

每個隊列擁有集群容量的一小部分,而這個指定的隊列容量可以動態地從集群節點中獲得。因為總容量可以變化,因此隊列的容量配置值表示為百分數。依次選中每個隊列,進行 Capacity 屬性的設置,可以拖拽來調整百分比。Capacity 屬性在層次結構中的任何級別的總和必須等于100%,當設置不正確的時候,配置界面會出現紅色警告。
下面視圖可以看出 researchA隊列和researchB隊列由不同的用戶 lj、mhj、participatorA、分別提交任務,在ResourceManager UI 的 Scheduler 視圖可以監控到任務被分配到不同的隊列。
如圖所示:

本文通過理論聯系實際的方式描述了如何在浪潮Insight上采用公平調度策略來實現多租戶。Insight管理控制臺提供web視圖的方式來管理多租戶。實踐結果表明,本文研究成果有效提升集群計算能力,統一平臺用戶使用界面,節省維護成本與管理開支。
[1]林海略,韓燕波.多租戶應用的性能管理關鍵問題研究[J].計算機學報.2010(10)
[2]廖鋒,成靜靜.大數據環境下Hadoop分布式系統的研究與設計[J].廣東通信技術.2013(10)
[3]李偉衛.基于Hadoop平臺的數據挖掘技術研究[D].西北農林科技大學.(2013)
[4]曹英.大數據環境下Hadoop性能優化的研究[D].大連海事大學.(2013)
[5]陳娜.基于Hadoop平臺的海量數據處理應用[D].吉林大學.(2012)
劉瑾(1983-),女,漢,泰安市寧陽縣人,工程師,碩士研究生,主要研究方向為計算機網絡、大數據與虛擬化。