吳愛芝
摘 要:針對Hadoop和MapReduce在空間大數(shù)據(jù)處理上存在的局限性,研究Hadoop平臺在分布式計算環(huán)境中跨多數(shù)據(jù)中心的應(yīng)用。提出了層次化Hadoop分布式計算框架,通過虛擬HDFS文件視圖實現(xiàn)全局?jǐn)?shù)據(jù)訪問,由任務(wù)調(diào)度器自動將任務(wù)分解到對應(yīng)的數(shù)據(jù)中心所在計算節(jié)點上,給出了任務(wù)處理和調(diào)度流程。
關(guān)鍵詞:數(shù)據(jù)密集型計算;多數(shù)據(jù)中心;Hadoop平臺;層次化分布式計算
中圖分類號:TB
文獻標(biāo)識碼:A
doi:10.19311/j.cnki.16723198.2016.26.159
1 Hadoop平臺在處理空間大數(shù)據(jù)上的局限性
Hadoop和Map/Reduce是Google提出的一個軟件架構(gòu),用于大規(guī)模數(shù)據(jù)集的并行運算,具有多種優(yōu)點:簡單方便的編程界面、高數(shù)據(jù)處理能力、高擴展能力和容錯性。因此Map/Reduce已經(jīng)被廣泛應(yīng)用在多種計算體系結(jié)構(gòu)內(nèi)。但是我們注意到,Hadoop運行平臺仍然存在著很重大的缺陷,影響其在空間數(shù)據(jù)處理方面的廣泛、深入地應(yīng)用:
(1)Hadoop只能運行在一個局域網(wǎng)中的計算集群或者數(shù)據(jù)中心,不能支持廣域網(wǎng)上大規(guī)模分布的多數(shù)據(jù)中心的并行數(shù)據(jù)處理。
(2)當(dāng)前Hadoop不包括用戶安全機制,不同節(jié)點間的通訊采用無密碼的SSH機制。因此Hadoop不適合分布式、多數(shù)據(jù)中心、多管理域的空間數(shù)據(jù)架構(gòu)。
(3)現(xiàn)有Hadoop執(zhí)行流程是將一個任務(wù)(執(zhí)行代碼)制作副本后并發(fā)同時在多個slave node上執(zhí)行,這些任務(wù)之間互不干擾和交互,子任務(wù)的分配沒有什么原則和選擇,可以說是一種與數(shù)據(jù)無關(guān)的任務(wù)分配和處理。
本研究致力于大規(guī)模分布式多數(shù)據(jù)中心的空間數(shù)據(jù)并行處理關(guān)鍵技術(shù),力爭能夠在多集群計算機上并行處理分布在多數(shù)據(jù)中心的數(shù)據(jù)集,達到較高的數(shù)據(jù)吞吐能力和處理能力。
2 基于多數(shù)據(jù)中心的分布式Hadoop運行框架
Hadoop運行(runtime)系統(tǒng)是架構(gòu)在局域網(wǎng)單計算集群上。本研究嘗試擴展Hadoop運行系統(tǒng),分布各個原Hadoop工作節(jié)點和TaskTrackler到分布式數(shù)據(jù)中心的多計算集群,進行分布式數(shù)據(jù)集的并行處理。保持Hadoop主節(jié)點(Master node)的應(yīng)用程序接口不變以兼容已有的Hadoop應(yīng)用程序。
可選的技術(shù)方案有兩種:一種是將各類不同的集群系統(tǒng)硬件平臺進行統(tǒng)一的封裝(即在現(xiàn)有各類集群系統(tǒng)之上增加一層特殊用途的架構(gòu)層),轉(zhuǎn)化成一致的虛擬集群系統(tǒng)平臺,在此虛擬平臺上進行各類MapReduce任務(wù)的處理;另一種是直接在各個集群系統(tǒng)之間建立聯(lián)系,實現(xiàn)資源的交互和任務(wù)的協(xié)同處理,該技術(shù)很接近網(wǎng)格計算的思想和方法。本文中借鑒了第一種思想,構(gòu)建統(tǒng)一的資源管理和任務(wù)調(diào)度層,來匯集各集群硬件資源,記錄各數(shù)據(jù)中心的信息,以數(shù)據(jù)為驅(qū)動來統(tǒng)一匹配和調(diào)度相應(yīng)的處理資源。該平臺的總體架構(gòu)如圖1所示,使其可以在分布式多數(shù)據(jù)中心環(huán)境中得以應(yīng)用和實施。
該層次化Hadoop分布式計算架構(gòu)也采用主從模式(master/slave),具有一個Master Node(也可稱為Global Name Node)和多個Slave Node。Master Node是整個平臺的資源調(diào)度和任務(wù)管理層,負(fù)責(zé)將用戶提交的處理任務(wù)(task)分解為更小單位的子任務(wù)(sub-task),使得這些子任務(wù)可以在特定的Slave Node(對應(yīng)為一個集群系統(tǒng))上被執(zhí)行(Master Node上的Sub- ob Adapter負(fù)責(zé)完成這種匹配),該Slave Node所對應(yīng)的集群系統(tǒng)上具有該子任務(wù)處理所需的數(shù)據(jù)。
為實現(xiàn)該平臺上各個子任務(wù)能分配到所處理數(shù)據(jù)所在的集群系統(tǒng)(數(shù)據(jù)中心)上,需要在Master Node上登記和管理各個集群系統(tǒng)所在數(shù)據(jù)中心上所有數(shù)據(jù)的元數(shù)據(jù)?;诖笠?guī)模分布式文件系統(tǒng)管理的思想,本文中利用Virtual HDFS來存儲全局的數(shù)據(jù)文件元信息,記錄在分布式處理平臺中注冊和調(diào)度的所有數(shù)據(jù)中心上的數(shù)據(jù)信息。
在Virtual HDFS文件系統(tǒng)中,并不存儲具體的數(shù)據(jù),只記錄各個集群系統(tǒng)中HDFS文件系統(tǒng)中所存儲的數(shù)據(jù)文件的基礎(chǔ)信息(主要是與位置和屬性有關(guān)的元信息)。該Virtual HDFS中的信息需要依靠分布在各個數(shù)據(jù)中心的HDFS文件系統(tǒng)定期進行更新和交互,用戶在進行數(shù)據(jù)處理任務(wù)編碼和運行之前,通過Virtual HDFS中所提供的元信息來查詢和選擇所需要的數(shù)據(jù)文件,當(dāng)任務(wù)提交后處理平臺會自動地將編程模型中的數(shù)據(jù)集或文件名轉(zhuǎn)換為對應(yīng)的真實訪問路徑。
3 基于多數(shù)據(jù)中心的分布式任務(wù)處理流程
借助Master Node上記錄的Virtual HDFS元信息和計算向數(shù)據(jù)遷移的思想,將空間數(shù)據(jù)處理任務(wù)映射到相應(yīng)的數(shù)據(jù)中心和處理節(jié)點上(遵循location-aware manner方式),可實現(xiàn)空間數(shù)據(jù)處理任務(wù)的跨域分布式任務(wù)處理和計算。
在層次化Hadoop分布式處理平臺中,用戶通過Virtual HDFS中所提供的元信息來選擇所需要的數(shù)據(jù)文件名,在所提交的代碼進行編譯后,這些文件名會自動轉(zhuǎn)換為特定集群系統(tǒng)上的HDFS訪問地址,并且此代碼將會在數(shù)據(jù)文件存放位置的一個或若干個集群上執(zhí)行,可實現(xiàn)計算向數(shù)據(jù)遷移的目的。
面向多計算節(jié)點的層次化Hadoop分布式計算任務(wù)處理流程可分為以下7個步驟。
步驟1:數(shù)據(jù)選擇:在作業(yè)提交之前,需要由程序員從Virtual HDFS查詢和選擇所需要處理的數(shù)據(jù)文件,這些文件名寫在MapReduce程序中,將來會在作業(yè)分解和分配時轉(zhuǎn)換為對應(yīng)數(shù)據(jù)中心上HDFS的具體數(shù)據(jù)訪問路徑。
步驟2:作業(yè)提交:用戶從客戶端提交作業(yè)(MapReduce程序)和其配置信息(包括:參數(shù)、輸入文件名、附加資源等),作業(yè)交給Master Node上的 ob Scheduler進行排隊和等待,并為該作業(yè)分配ID號。
步驟3:程序編譯和分解:在隊列中的作業(yè)會根據(jù)所處理數(shù)據(jù)的位置分布情況被重新編譯和分解,使得各個子作業(yè)能夠在處理數(shù)據(jù)所存放位置集群上被執(zhí)行。若某個作業(yè)所要處理的數(shù)據(jù)都在同一集群的數(shù)據(jù)中心(某個Slave Node)上,則將任務(wù)整體打包(程序 AR文件和配置信息)發(fā)送到對應(yīng)的集群上執(zhí)行;若所要處理的數(shù)據(jù)存儲在不同的數(shù)據(jù)中心上,則該作業(yè)將被重新編譯為Map-Map-Reduce或Map-Reduce-Map- Reduce模式的程序,使得該作業(yè)的子作業(yè)依次在對應(yīng)的集群上被執(zhí)行。
步驟4:子作業(yè)定位和分配:依據(jù)Virtual HDFS中所記錄的各個數(shù)據(jù)的位置信息,以上子作業(yè)將按照數(shù)據(jù)依賴的方式定位和分配到對應(yīng)的集群上被執(zhí)行,在對應(yīng)集群上將啟動run ob()命令并讀取本地文件系統(tǒng)開始進行子作業(yè)的處理。
步驟5:任務(wù)提交和執(zhí)行:當(dāng)打包和子作業(yè)傳輸?shù)綄?yīng)的集群上后,在其name node上將會被 obTracker再次分解為更小的計算任務(wù)task,并分配到所從屬的若干個data node上進行最終的處理和執(zhí)行,該過程將由data node上的TaskTracker來調(diào)度和完成。
步驟6:子作業(yè)完成和反饋:在某個集群中的name node將監(jiān)控所有data node上任務(wù)的完成狀態(tài),當(dāng)某個子作業(yè)所有的task都完成后,處理結(jié)果將存儲在本地HDFS文件系統(tǒng)目錄中。該作業(yè)執(zhí)行結(jié)果的訪問路徑將由name node主動反饋給Master Node上的Sub- ob Adapter模塊。
步驟7:作業(yè)完成和反饋:Master Node上的Sub- ob Adapter模塊接收到某個子作業(yè)處理結(jié)果反饋后,將檢查該子作業(yè)是否還有關(guān)聯(lián)的其他子作業(yè)?還是它是一個簡單的作業(yè)(所有處理子作業(yè)都在同一集群上處理)?若有后繼關(guān)聯(lián)的其他子作業(yè),則啟動后繼子作業(yè)的執(zhí)行和處理(已完成子作業(yè)的輸出可以根據(jù)作業(yè)要求作為后繼任務(wù)的輸入?yún)?shù))。當(dāng)同屬于一個作業(yè)job的所有子作業(yè)sub-job都完成后,將最終處理結(jié)果數(shù)據(jù)文件信息在Virtual HDFS上進行注冊和登記,并向 ob Scheduler模塊返回處理結(jié)果文件列表,最終根據(jù)作業(yè)ID向相應(yīng)的用戶返回程序處理結(jié)果訪問鏈接路徑。
4 結(jié)論
本研究力爭在不破壞原有Map/Reduce計算模型的基礎(chǔ)上,針對該模型存在的不足進行適應(yīng)性改造和完善,以更好地支持分布式多中心數(shù)據(jù)模式的海量空間數(shù)據(jù)處理需要,設(shè)計基于多數(shù)據(jù)中心的Map/Reduce運行模型和軟件體系結(jié)構(gòu),擴展Hadoop運行系統(tǒng)和架構(gòu),將各個原Hadoop工作節(jié)點和TaskTrackler分布到分布式數(shù)據(jù)中心的多計算集群,實現(xiàn)分布式數(shù)據(jù)集的并行處理。初步形成面向多數(shù)據(jù)中心(多機群環(huán)境)的分布式任務(wù)處理平臺架構(gòu)和工作流程,希望能為基于Hadoop的大規(guī)模分布式海量空間數(shù)據(jù)并行處理提供參考。
參考文獻
[1] Yadav Krishna R, urnima Singh.MapReduce rogramming aradigm Solving Big-Data roblems by Using Data-Clustering Algorithm.International ournal of Advanced Research in Computer Engineering & Technology,2014,3(1),7780.
[2]Lu Huang,HaiShan Chen,TingTing Hu.Research on Hadoop Cloud Computing Model and its Applications[C].The Third International Conference on Networking and Distributed Computing,2012:5963.
[3]I. Tomasic,A.Rashkovska and M. Depolli.Using Hadoop MapReduce in a Multicluster Environment[C].The 36th International Convention on Information & Communication Technology Electronics & Microelectronics,2013:345350.
[4]Chun-Yu Wang, Tzu-Li Tai, ui-Shing Shu, yh-Biau Chang and Ce-Kuen Shieh.Federated MapReduce to Transparently Run Application on Multicluster Environment [C]. IEEE International Congress on Big Data,2014:296302.
[5]Y. Luo,B. lale,Z.Guo,W.W.Li, .Qiu,Y. Sun.Hierarchical MapReduce: towards simplified across-domain data processing.Concurrency and Computation: ractice and Experience,2014,26(4):878893.