

摘?要:Hama的出現彌補了Hadoop平臺的不足,不僅僅實現了類似于Hadoop的并行計算,而且在圖計算方面也展示出顯著的優勢。但是因為Hama的應用實踐較短,很多的地方還有很大的改善空間。文章重點從基于Hama并行計算框架的多層級作業調度算法設計與實現兩方面做全面系統的闡述,提出建議。
關鍵詞:Hama;Hadoop平臺;多層級作業調度算法
Hama是一種基于BSP模型的分布式并行計算框架,在大規模科學計算中最為常用。與Hadoop類似,Hama也可以有效屏蔽分布式系統的底層實現細節,可以為用戶提供簡單易行的API。更重要的一點是,Hama在存儲功能設計上可以兼容HBase和HDFS。在系統架構上,Hama采用主-從架構,往往一個Hama集群由一個BSPMaster主節點和若干個GroomServer從節點組成,就現階段Hama同步過程實現來看,其主要是依靠Zookeeper。Hama作業調度框架設計上,所用的作業調度器是運行于BSPMaster節點之上,而其作業調度器“可插拔”使用則是通過Schedulable和TaskScheduler類接口實現。
一、 基于Hama并行計算框架的多層級作業調度算法的設計
Hama作業調度可以分為兩大部分,一是從候選作業隊列中選擇一個作業,二是對已經選擇好的作業進行分配GroomServer,以此來開展相關任務。可以說,這兩大部分是Hama作業調度的核心設計內容。文章所提出的基于Hama并行計算框架的多層級作業調度算法包括四大模塊,即資源管理、作業選擇、任務分配及配置文件管理。
資源管理的作用在于合理將“任務槽”分配給不同的資源容器,以此保證資源可以充分被集群中的各個作業共享。可以將集群中的資源劃分為Hama物理集群、作業類型資源池及用戶作業等待隊列,層級劃分方式可以通過配置文件實現有效的監管,兼顧性強。與集群中的資源劃分相對應,作業類型資源池的選擇策略包括速率策略、輪詢策略、公平共享策略及資源利用率策略;用戶作業等待隊列的選擇策略包括速率策略、輪詢策略、公平共享策略;作業選擇策略包括FIFO策略、小作業優先策略及大作業優先策略。在任務分配策略設計中,文章考慮GroomServer負載水平的任務分配策略—負載均衡策略,這一策略的優勢在于可以將節點負荷水平看成節點特征,可以作為作業調度器實現選取GroomServer組合的目的。作業調度器配置設計中文章在其啟動時加入了后臺線程,以此控制配置文件的更改,如果配置文件發生改動則可以在第一時間進行重新加載,而后根據最新的配置信息對相應的設置加以調整優化。
基于Hama并行計算框架的多層級作業調度算法流程為:集群啟動與資源初始化→作業進入等待隊列(具體流程見圖1)→多層級作業調度算法作業選擇流程(具體流程見圖2)→挑選合適的GroomServer組合,并分配到具體的GroomServer中去執行→分配具體的執行節點,發送至每一個GroomServer節點,生成指令→指令發送至各個GroomServer,執行具體任務。
二、 基于Hama并行計算框架的多層級作業調度算法的實現
Hama多層級作業調度算法的實現基于Hama0.6.3之上,同時利用Java實現語言開發,作業調度器熱插拔接口采用Schedulable。本次設計實現過程中對作業等待隊列采用公平共享策略,資源選擇策略采用輪詢策略,作業選擇策略次用FIFO策略和最大作用優先策略。在具體實現上主要從作業調度流程管理、資源管理、配置文件監聽等方面針對性實現。
在作業調度流程管理實現中,將MultiLayerScheduler作為作業調度組織者和調度流程的管理者,并將其作為整個算法的核心加以優化管理。所應用的方法包括四類,即start、terminate、getJobs、findJobById。需要明確的一點是,Hama中的任務分配策略注冊于JobInProgress類,這與作業調度器注冊相類似。資源管理類包括ResourcesManager類、WaitingQueue類、ResourcesPool類,ResourcesManager類是整個集群資源的管理者,資源管理工作均由其完成。WaitingQueue可以實現維護內部作業等待隊列的作用。ResourcesPool類不單單具有維護內部作業等待隊列的作用,且有維護資源池各種限制條件的作用。在配置文件監聽實現方面,其動態修改依靠ResourcesManage類和ConfigurationFileMonitor類共同實現,ConfigurationFileMonitor類主要負責配置文件的更改監控,ResourcesManage主要負責配置文件重新加載及修改等待隊列等任務。
三、 結語
Hama并行計算框架還有很大的完善空間,多層級作業調度算法可以有效提升Hama集群資源的利用能力,同時可以提升整個作業調度的靈活性。但是值得注意的一點是,該算法在任務分配策略上還需要大力改進,增加更多的任務分配策略至關重要。
參考文獻:
[1]趙博穎,肖鵬,張力.基于混合并行布谷鳥搜索的作業調度算法[J].計算機工程與設計,2019,40(3):719-724.
[2]李安民,計衛星,廖心怡,等.一種面向異構計算的結構化并行編程框架[J].計算機工程與科學,2019,41(3):424-432.
作者簡介:
肖堅,湖南省長沙市,湖南外貿職業學院。