《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > HDFS可視化管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
HDFS可視化管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
2015年微型機(jī)與應(yīng)用第8期
李振舉1,2,李學(xué)軍1,楊 晟1,羅 劍3,張榮華4
(1.裝備學(xué)院 信息裝備系,北京 101416; 2.裝備學(xué)院 研究生管理大隊(duì),北京 101416; 3.裝備學(xué)院 裝備試驗(yàn)系,北京 101416; 4.中國(guó)人民解放軍71375部隊(duì),山東 濰坊 261053)
摘要: Hadoop工具核心模塊包括分布式文件系統(tǒng)(Hadoop Distributed File System,HDFS)和分布式編程模型MapReduce,其中HDFS是Hadoop數(shù)據(jù)存儲(chǔ)處理的核心模塊,但目前缺乏有效的HDFS可視化管理工具,因此設(shè)計(jì)實(shí)現(xiàn)了一套可視化管理工具,該工具基于Java Swing組件開發(fā)。以此工具為基礎(chǔ),搭建了一套基于Hadoop的海量遙感數(shù)據(jù)云存儲(chǔ)系統(tǒng)。實(shí)驗(yàn)表明,該系統(tǒng)界面友好,易于部署,可以很好地支持HDFS可視化管理。
Abstract:
Key words :

  摘  要Hadoop工具核心模塊包括分布式文件系統(tǒng)(Hadoop Distributed File System,HDFS)和分布式編程模型MapReduce,其中HDFS是Hadoop數(shù)據(jù)存儲(chǔ)處理的核心模塊,但目前缺乏有效的HDFS可視化管理工具,因此設(shè)計(jì)實(shí)現(xiàn)了一套可視化管理工具,該工具基于Java Swing組件開發(fā)。以此工具為基礎(chǔ),搭建了一套基于Hadoop的海量遙感數(shù)據(jù)云存儲(chǔ)系統(tǒng)。實(shí)驗(yàn)表明,該系統(tǒng)界面友好,易于部署,可以很好地支持HDFS可視化管理。

  關(guān)鍵詞: Hadoop;分布式文件系統(tǒng);可視化管理系統(tǒng)

0 引言

  近年來(lái),隨著遙感技術(shù)的發(fā)展,遙感數(shù)據(jù)的類型不斷擴(kuò)展,遙感數(shù)據(jù)的量級(jí)在不斷增加,這給遙感數(shù)據(jù)的管理帶來(lái)了新的挑戰(zhàn)。云計(jì)算作為大數(shù)據(jù)時(shí)代的典型技術(shù)代表,可以有效地進(jìn)行海量遙感數(shù)據(jù)的處理。Hadoop[1]是目前云計(jì)算技術(shù)應(yīng)用最廣泛的一個(gè)技術(shù)平臺(tái),是谷歌文件系統(tǒng)[2]和MapReduce編程模型的開源實(shí)現(xiàn)[2]。然而如何使用Hadoop技術(shù)進(jìn)行海量遙感數(shù)據(jù)的處理,是一個(gè)值得研究的問(wèn)題。為了對(duì)海量遙感數(shù)據(jù)進(jìn)行有效的管理,需開發(fā)一套基于Hadoop集群的云存儲(chǔ)系統(tǒng)。該系統(tǒng)可對(duì)海量遙感數(shù)據(jù)進(jìn)行管理,與用戶進(jìn)行交互,上傳和下載海量遙感數(shù)據(jù)文件。但是現(xiàn)有的HDFS管理工具無(wú)法高效地進(jìn)行可視化管理,基于此,本文設(shè)計(jì)實(shí)現(xiàn)了一套可視化管理系統(tǒng),旨在提高HDFS可視化管理的水平,方便用戶使用。

1 研究背景

  1.1 Hadoop生態(tài)系統(tǒng)

  為了搭建國(guó)產(chǎn)軟硬件環(huán)境下的云存儲(chǔ)平臺(tái),本文采用Hadoop作為基礎(chǔ)軟件。該平臺(tái)目前已經(jīng)發(fā)展成為包括HDFS[3]、分布式編程模型MapReduce、數(shù)據(jù)庫(kù)(HBase、Cassandra)、數(shù)據(jù)倉(cāng)庫(kù)Hive和數(shù)據(jù)流處理語(yǔ)言Pig在內(nèi)的完整的生態(tài)系統(tǒng)(Ecosystem)[4]。系統(tǒng)結(jié)構(gòu)框架如圖1所示。從某種程度上可以說(shuō),Hadoop已經(jīng)成為大數(shù)據(jù)處理工具事實(shí)上的標(biāo)準(zhǔn)。

001.jpg

  HDFS是Hadoop生態(tài)系統(tǒng)的核心子項(xiàng)目之一,基于流數(shù)據(jù)模式和處理超大文件的需求開發(fā),可以處理TB(TeraByte)甚至是PB(PeteByte)級(jí)別的數(shù)據(jù),對(duì)硬件要求比較低,容錯(cuò)性好,可靠性高。Hadoop2.0之前的版本,HDFS集群通常包括一個(gè)NameNode(主節(jié)點(diǎn))和若干個(gè)DataNode(從節(jié)點(diǎn))[5]。NameNode管理命名空間,維護(hù)整個(gè)文件系統(tǒng)的文件目錄樹及這些文件的索引目錄。DataNode是文件系統(tǒng)工作節(jié)點(diǎn),用來(lái)執(zhí)行具體的任務(wù)。同時(shí),它可以通過(guò)心跳(Heartbeat)定時(shí)向NameNode發(fā)送所存儲(chǔ)的文件塊信息[6]。

1.2 HDFS常見管理工具

  現(xiàn)有HDFS的管理工具可以分為三類:HDFS自帶的命令行工具、HDFS應(yīng)用程序接口(API)和基于Web的HDFS管理工具。

  HDFS自帶的命令行工具運(yùn)行在操作系統(tǒng)的shell終端,由一系列的命令組成。其優(yōu)點(diǎn)是簡(jiǎn)單快捷,無(wú)需安裝其他軟件;缺點(diǎn)是可視化程度不高,各種命令比較多,用戶需要具備專業(yè)的水平才能完全掌握。常見的HDFS命令如表1所示[7]。

009.jpg

  HDFS應(yīng)用程序接口是Hadoop為第三方軟件提供的交互接口。這種方法的優(yōu)點(diǎn)是操作簡(jiǎn)單,對(duì)用戶專業(yè)水平要求不高;缺點(diǎn)是只有在安裝了Eclipse IDE的機(jī)器上才能運(yùn)行。HDFS中提供的API功能如表2所示。

010.jpg

  基于Web的管理工具研究是在前兩種工具的基礎(chǔ)上開發(fā)而來(lái)的,黃文依等人[7]在研究HDFS架構(gòu)的基礎(chǔ)上,設(shè)計(jì)實(shí)現(xiàn)了基于Web的HDFS可視化文件訪問(wèn)系統(tǒng)。其優(yōu)點(diǎn)是操作簡(jiǎn)便快捷,易于部署;缺點(diǎn)是功能相對(duì)簡(jiǎn)單,只是實(shí)現(xiàn)了基本的功能。此外,用戶通過(guò)瀏覽器可以直接訪問(wèn)Hadoop集群的50030端口,但是這種方式只可以瀏覽顯示HDFS文件系統(tǒng),用戶無(wú)法與HDFS交互。

  通過(guò)以上內(nèi)容可以看出,HDFS現(xiàn)有的可視化系統(tǒng)可視化程度不高,用戶友好程度相對(duì)不高。如何設(shè)計(jì)和實(shí)現(xiàn)用戶界面友好的HDFS可視化管理系統(tǒng),是一個(gè)需要解決的問(wèn)題。

2 HDFS可視化管理系統(tǒng)的設(shè)計(jì)

  2.1 系統(tǒng)功能設(shè)計(jì)

  本文設(shè)計(jì)的HDFS可視化管理系統(tǒng)一方面完成文件(夾)與Hadoop集群之間的交互,另一方面可對(duì)集群的一些基本信息進(jìn)行顯示。HDFS可視化系統(tǒng)的功能從整體上包含文件管理模塊和集群信息模塊。其中文件管理模塊負(fù)責(zé)HDFS文件信息的顯示、目錄信息的管理以及HDFS文件與本地文件之間的交互,包括文件上傳、文件下載[8]和文件刪除等功能。集群信息模塊可以顯示Hadoop集群的節(jié)點(diǎn)信息、集群的存儲(chǔ)容量和提供幫助信息等。HDFS可視化系統(tǒng)的功能結(jié)構(gòu)圖如圖2所示。

002.jpg

  2.2 系統(tǒng)界面設(shè)計(jì)

  HDFS可視化管理系統(tǒng)設(shè)計(jì)的主界面包括4個(gè)區(qū)域:標(biāo)題欄、工具欄、HDFS目錄顯示區(qū)域和文件信息顯示區(qū)域。其中標(biāo)題欄包括文件管理按鈕和集群信息管理按鈕,通過(guò)這兩個(gè)按鈕可以調(diào)用文件管理模塊和集群信息管理模塊。HDFS目錄顯示區(qū)域類似于Windows的資源管理器,以目錄樹的形式顯示HDFS文件系統(tǒng)信息。文件信息顯示區(qū)域用來(lái)顯示選中的文件的基本信息。

  HDFS系統(tǒng)可視化界面采用Java Swing[9]組件設(shè)計(jì)開發(fā)。界面使用到的控件包括JTree、JLabel、JText、JPanel等。其中,JTree用來(lái)管理HDFS文件系統(tǒng)目錄;JLabel顯示文件基本信息;JPanel用來(lái)進(jìn)行控件的管理,當(dāng)做容器用來(lái)控制界面的布局;JButtonItem用來(lái)右鍵顯示命令。此外標(biāo)準(zhǔn)對(duì)話框用來(lái)顯示提示信息。

3 HDFS可視化管理系統(tǒng)的實(shí)現(xiàn)

  3.1 開發(fā)及運(yùn)行環(huán)境

  HDFS可視化系統(tǒng)開發(fā)工具為Eclipse和OpenJDK 1.6.0??紤]到HDFS需要在Hadoop集群搭建的基礎(chǔ)上才能運(yùn)行,本文首先搭建了一個(gè)Hadoop集群。本文搭建的Hadoop集群采用0.20.2版本,包括1個(gè)NameNode節(jié)點(diǎn)和6個(gè)DataNode節(jié)點(diǎn)。目前集群配置存儲(chǔ)空間大小為1.19 TB,包括21 628個(gè)文件和目錄,21 067個(gè)文件塊,塊大小為128 MB;HDFS文件備份數(shù)量采用默認(rèn)的3個(gè)。集群HDFS信息如圖3所示。

003.jpg

  3.2 系統(tǒng)開發(fā)流程

004.jpg

  系統(tǒng)開發(fā)流程如圖4所示。開發(fā)環(huán)境的操作系統(tǒng)采用Kylin Linux操作系統(tǒng),OpenJDK版本是1.6.0。在開發(fā)環(huán)境中使用Eclipse進(jìn)行界面和功能設(shè)計(jì),編寫代碼并且封裝成JAR包以方便部署。開發(fā)工具采用Eclipse 3.5版本。

  3.3 系統(tǒng)功能測(cè)試

  為了驗(yàn)證HDFS可視化系統(tǒng)的可靠性,對(duì)系統(tǒng)功能進(jìn)行測(cè)試。目前用戶數(shù)量為10人,經(jīng)過(guò)擴(kuò)展可以添加更多用戶。Hadoop集群信息如圖5所示,HDFS中某一系統(tǒng)的文件信息如圖6所示,文件上傳功能如圖7所示,文件下載功能如圖8所示。

005.jpg

006.jpg

007.jpg

008.jpg

4 結(jié)論

  本文針對(duì)Hadoop分布式文件系統(tǒng)缺乏界面友好的可視化管理工具的問(wèn)題,設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)HDFS可視化管理系統(tǒng)。該管理系統(tǒng)核心功能通過(guò)封裝HDFS命令轉(zhuǎn)換為Java可以識(shí)別的對(duì)象實(shí)現(xiàn)。該系統(tǒng)已經(jīng)在基于國(guó)產(chǎn)軟硬件環(huán)境的云存儲(chǔ)系統(tǒng)中得到應(yīng)用,經(jīng)過(guò)實(shí)驗(yàn)證明,該系統(tǒng)提供了一個(gè)簡(jiǎn)便易操作的HDFS可視化管理工具,提高了云計(jì)算的數(shù)據(jù)管理水平。下一步研究的重點(diǎn)是設(shè)計(jì)實(shí)現(xiàn)基于此管理系統(tǒng)的云計(jì)算平臺(tái),為集群外的節(jié)點(diǎn)訪問(wèn)和數(shù)據(jù)處理提供服務(wù)。

  參考文獻(xiàn)

  [1] Apache Hadoop[EB/OL].(2009-09-12)[2014-10-15].http://hadoop.apache.org/.

  [2] GHEMAWAT S, GOBIOFF H, LEUNG S T. The Google file system[C]. ACM SIGOPS Operating Systems Review,ACM, 2003,37(5):29-43.

  [3] Hadoop Distributed Filesystem[EB/OL].(2008-12-13)[2014-10-15].http://hadoop.apache.org/hdfs.

  [4] 趙書蘭.典型Hadoop云計(jì)算[M].北京:電子工業(yè)出版社,2013.

  [5] 蔡斌,陳湘萍.Hadoop技術(shù)內(nèi)幕:深入解析Hadoop Common和HDFS架構(gòu)設(shè)計(jì)與實(shí)現(xiàn)原理[M].北京:機(jī)械工業(yè)出版社,2013.

  [6] 陸嘉恒.Hadoop實(shí)戰(zhàn)(第2版)[M].北京:機(jī)械工業(yè)出版社,2012.

  [7] 黃文依,王勁松,林勝.HDFS可視化操作系統(tǒng)研究與實(shí)現(xiàn)[J].天津理工大學(xué)學(xué)報(bào),2012,28(1):31-34.

  [8] 曹寧,吳忠海,劉宏志,等.HDFS下載效率的優(yōu)化[J].計(jì)算機(jī)應(yīng)用,2010,30(8):2060-2065.

  [9] CADENHEAD R S, LEMAY L.21天學(xué)通Java 6(第五版)[M].袁國(guó)忠,張劼,譯.北京:人民郵電出版社,2008.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。