技術(shù)領(lǐng)域
本發(fā)明涉及一種科學(xué)計(jì)算應(yīng)用技術(shù)領(lǐng)域,具體地說是分布式集群上實(shí)現(xiàn)科學(xué)計(jì)算應(yīng)用部署的方法及系統(tǒng)。
背景技術(shù):
通常的科學(xué)計(jì)算應(yīng)用部署于高性能集群中,高性能集群能最大限度榨取計(jì)算資源的能力是高性能集群的一大特點(diǎn),也是作為科學(xué)計(jì)算應(yīng)用所選擇的主要集群種類的原因之一。
但要想實(shí)現(xiàn)在高性能集群中高效并行,首要條件是用于科學(xué)計(jì)算應(yīng)用能并行計(jì)算,換言之,該應(yīng)用是經(jīng)過并行編程和開發(fā)的。就目前的應(yīng)用市場(chǎng)來看,大多數(shù)用于自然科學(xué)的應(yīng)用都是并行程序,而用于社會(huì)科學(xué)的應(yīng)用則很少是并行編譯的,在高性能集群中它們只能單節(jié)點(diǎn)串行計(jì)算。
分布式集群也就是我們常提到的hadoop集群,hadoop是一種開源技術(shù), Hadoop的分布式架構(gòu),將大數(shù)據(jù)處理引擎盡可能的靠近存儲(chǔ)。Hadoop的MapReduce(映射化簡)功能實(shí)現(xiàn)了將單個(gè)任務(wù)打碎,并將碎片任務(wù)(Map)發(fā)送到多個(gè)節(jié)點(diǎn)上,之后再以單個(gè)數(shù)據(jù)集的形式加載(Reduce)到數(shù)據(jù)倉庫里。Hadoop 由許多元素構(gòu)成。其最底部是Hadoop Distributed File System(HDFS分布式文件系統(tǒng)),它存儲(chǔ) Hadoop 集群中所有存儲(chǔ)節(jié)點(diǎn)上的文件。Hadoop的MapReduce采用Master/Slave(主/從)結(jié)構(gòu)。Master:是整個(gè)集群的唯一的全局管理者,功能包括:作業(yè)管理、狀態(tài)監(jiān)控和任務(wù)調(diào)度等,即MapReduce中的JobTracker。Slave:負(fù)責(zé)任務(wù)的執(zhí)行和任務(wù)狀態(tài)的回報(bào),即MapReduce中的TaskTracker。
JobTracker是一個(gè)后臺(tái)服務(wù)進(jìn)程,啟動(dòng)之后,會(huì)一直監(jiān)聽并接收來自各個(gè)TaskTracker發(fā)送的心跳信息,包括資源使用情況和任務(wù)運(yùn)行情況等信息。JobTracker的主要功能:1.作業(yè)控制:在hadoop中每個(gè)應(yīng)用程序被表示成一個(gè)作業(yè),每個(gè)作業(yè)又被分成多個(gè)任務(wù),JobTracker的作業(yè)控制模塊則負(fù)責(zé)作業(yè)的分解和狀態(tài)監(jiān)控;狀態(tài)監(jiān)控:主要包括TaskTracker狀態(tài)監(jiān)控、作業(yè)狀態(tài)監(jiān)控和任務(wù)狀態(tài)監(jiān)控;主要作用:容錯(cuò)和為任務(wù)調(diào)度提供決策依據(jù)。2. 資源管理。
TaskTracker是JobTracker和Task之間的橋梁:一方面,從JobTracker接收并執(zhí)行各種命令:運(yùn)行任務(wù)、提交任務(wù)、殺死任務(wù)等;另一方面,將本地節(jié)點(diǎn)上各個(gè)任務(wù)的狀態(tài)通過心跳周期性匯報(bào)給JobTracker。TaskTracker與JobTracker和Task之間采用了RPC協(xié)議進(jìn)行通信。TaskTracker的功能:1.匯報(bào)心跳:Tracker周期性將所有節(jié)點(diǎn)上各種信息通過心跳機(jī)制匯報(bào)給JobTracker;信息包括:機(jī)器級(jí)別信息(節(jié)點(diǎn)健康情況、資源使用情況等),任務(wù)級(jí)別信息(任務(wù)執(zhí)行進(jìn)度、任務(wù)運(yùn)行狀態(tài)等);2.執(zhí)行命令:JobTracker會(huì)給TaskTracker下達(dá)各種命令,主要包括:啟動(dòng)任務(wù)(LaunchTaskAction)、提交任務(wù)(CommitTaskAction)、殺死任務(wù)(KillTaskAction)、殺死作業(yè)(KillJobAction)和重新初始化(TaskTrackerReinitAction)。3.資源管理。
市場(chǎng)上存在很多商業(yè)公司針對(duì)應(yīng)用提供了多種不同的商業(yè)化的hadoop產(chǎn)品。而這些不同種類的產(chǎn)品其核心依舊是原來的hadoop,其主體結(jié)構(gòu)與高性能集群存在一定差別,底層的HDFS(Hadoop Distributed File System)文件系統(tǒng)和MapReduce分布式處理是構(gòu)成hadoop分布式計(jì)算的核心。高性能計(jì)算依賴于應(yīng)用自身具有并行的能力,而hadoop集群本身由系統(tǒng)層提供分布式處理的能力。顯然,把一些無法并行的科學(xué)計(jì)算應(yīng)用程序部署在高性能集群上串行計(jì)算,效率其實(shí)并不高,不能最大程度利用集群資源。應(yīng)用本身不具備并行能力,如何對(duì)此應(yīng)用進(jìn)行并行計(jì)算作業(yè)是目前需要解決的問題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的技術(shù)任務(wù)是提供分布式集群上實(shí)現(xiàn)科學(xué)計(jì)算應(yīng)用部署的方法及系統(tǒng),來解決如何將本身不具備并行能力的應(yīng)用進(jìn)行并行計(jì)算作業(yè)的問題。
本發(fā)明的技術(shù)任務(wù)是按以下方式實(shí)現(xiàn)的,
分布式集群上實(shí)現(xiàn)科學(xué)計(jì)算應(yīng)用部署的方法,步驟如下:
(1)、部署分布式集群,使得分布式集群的用戶能正常存儲(chǔ)文件和正常的進(jìn)行Map-Reduce過程;在分布式集群上配置一個(gè)集群對(duì)外節(jié)點(diǎn)、至少兩個(gè)名稱節(jié)點(diǎn)(Namenode)和多個(gè)進(jìn)行計(jì)算的數(shù)據(jù)節(jié)點(diǎn)(Datanode);客戶端通過集群對(duì)外節(jié)點(diǎn)對(duì)集群訪問;名稱節(jié)點(diǎn)用于進(jìn)行Map過程;數(shù)據(jù)節(jié)點(diǎn)用于進(jìn)行Reduce過程;
(2)、分布式集群使用的科學(xué)計(jì)算應(yīng)用進(jìn)行調(diào)優(yōu),包含Map-Reduce函數(shù)接口;
(3)、在名稱節(jié)點(diǎn)中,設(shè)置分布式集群的安裝共享目錄,在安裝共享目錄中部署應(yīng)用程序和/或文件;安裝共享目錄用于將應(yīng)用程序或者文件進(jìn)行全局共享,使得能訪問該安裝共享目錄的子節(jié)點(diǎn)能調(diào)用應(yīng)用程序或者讀寫文件;
(4)、切換分布式集群的用戶,打開應(yīng)用程序,出現(xiàn)應(yīng)用程序接口,在該應(yīng)用程序接口下進(jìn)行算例或程序調(diào)試操作;
(5)、登陸各個(gè)執(zhí)行Reduce過程的數(shù)據(jù)節(jié)點(diǎn)(Datanode),使用top指令查看應(yīng)用的Reduce過程是否執(zhí)行;
(6)、執(zhí)行完畢后,分布式集群自動(dòng)收集所有的節(jié)點(diǎn)整合反饋給當(dāng)前用戶。
步驟(1)中,分布式集群使用開源hadoop或者商業(yè)版hadoop。
步驟(3)中,安裝共享目錄使用共同的存儲(chǔ)空間,或使用NFS共享的目錄,如/opt。
步驟(3)中,安裝共享目錄中部署應(yīng)用程序和/或文件步驟為:通過上傳解壓安裝三步,安裝完畢后測(cè)試各節(jié)點(diǎn)是否能正常訪問和執(zhí)行相應(yīng)的應(yīng)用程序和/或文件。
步驟(4)中,算例或程序調(diào)試操作:通過Map-Reduce過程調(diào)用所有Datanode的計(jì)算資源,調(diào)用計(jì)算資源的多少是由hadoop配置過程設(shè)置;打開應(yīng)用程序,輸入應(yīng)用程序的算例參數(shù)或者相應(yīng)程序,開始執(zhí)行。
步驟(6)中,節(jié)點(diǎn)整合反饋給當(dāng)前用戶輸出方式為:屏幕輸出或者文件輸出。
分布式集群上實(shí)現(xiàn)科學(xué)計(jì)算應(yīng)用部署的系統(tǒng),在分布式集群上配置一個(gè)集群對(duì)外節(jié)點(diǎn)、至少兩個(gè)名稱節(jié)點(diǎn)(Namenode)和多個(gè)進(jìn)行計(jì)算的數(shù)據(jù)節(jié)點(diǎn)(Datanode);客戶端通過集群對(duì)外節(jié)點(diǎn)對(duì)集群訪問;名稱節(jié)點(diǎn)用于進(jìn)行Map過程;數(shù)據(jù)節(jié)點(diǎn)用于進(jìn)行Reduce過程。
分布式集群使用開源hadoop或者商業(yè)版hadoop。
客戶端通過外部網(wǎng)絡(luò)或公共網(wǎng)絡(luò)訪問集群對(duì)外節(jié)點(diǎn),集群對(duì)外節(jié)點(diǎn)通過內(nèi)部網(wǎng)絡(luò)能訪問名稱節(jié)點(diǎn)(Namenode)和數(shù)據(jù)節(jié)點(diǎn)(Datanode),名稱節(jié)點(diǎn)(Namenode)和數(shù)據(jù)節(jié)點(diǎn)(Datanode)進(jìn)行數(shù)據(jù)交互及通信的內(nèi)部網(wǎng)絡(luò)為千兆網(wǎng)絡(luò)或者萬兆網(wǎng)絡(luò)或者Infiniband網(wǎng)絡(luò)。
本發(fā)明的分布式集群上實(shí)現(xiàn)科學(xué)計(jì)算應(yīng)用部署的方法及系統(tǒng)具有以下優(yōu)點(diǎn):
1、在分布式集群上實(shí)現(xiàn)基于hadoop開發(fā)的應(yīng)用的跨節(jié)點(diǎn)分布式計(jì)算,來彌補(bǔ)高性能集群中應(yīng)用串行作業(yè)效率低的缺點(diǎn);
2、常見的分布式集群如開源的hadoop或者商業(yè)版的分布式軟件;能實(shí)現(xiàn)該種應(yīng)用經(jīng)過hadoop調(diào)優(yōu)后的應(yīng)用在hadoop平臺(tái)上部署運(yùn)算,從而具有跨節(jié)點(diǎn)分布式運(yùn)算的能力,提高集群計(jì)算效率;
3、簡單明了,易于操作,分布式集群是整個(gè)架設(shè)的基礎(chǔ),實(shí)現(xiàn)科學(xué)計(jì)算應(yīng)用的分布式計(jì)算是架設(shè)的核心和目的,集群中存在其他角色類型的節(jié)點(diǎn)依舊適用;最終目的是部署的科學(xué)計(jì)算應(yīng)用能實(shí)現(xiàn)在高性能集群中不能實(shí)現(xiàn)的跨節(jié)點(diǎn)運(yùn)算,最大限度將集群資源利用起來,用于科學(xué)計(jì)算過程中;
4、將應(yīng)用程序和文件部署在安裝共享目錄下,可以節(jié)省分布式集群下的應(yīng)用部署時(shí)間和難度。
附圖說明
下面結(jié)合附圖對(duì)本發(fā)明進(jìn)一步說明。
附圖1為分布式集群上實(shí)現(xiàn)科學(xué)計(jì)算應(yīng)用部署的方法的流程圖;
附圖2為分布式集群上實(shí)現(xiàn)科學(xué)計(jì)算應(yīng)用部署的系統(tǒng)的結(jié)構(gòu)框圖。
具體實(shí)施方式
參照說明書附圖和具體實(shí)施例對(duì)本發(fā)明的分布式集群上實(shí)現(xiàn)科學(xué)計(jì)算應(yīng)用部署的方法及系統(tǒng)作以下詳細(xì)地說明。
實(shí)施例1:
本發(fā)明的分布式集群上實(shí)現(xiàn)科學(xué)計(jì)算應(yīng)用部署的方法, 步驟如下:
(1)、部署分布式集群,使得分布式集群的用戶能正常存儲(chǔ)文件和正常的進(jìn)行Map-Reduce過程;在分布式集群上配置一個(gè)集群對(duì)外節(jié)點(diǎn)、至少兩個(gè)名稱節(jié)點(diǎn)(Namenode)和多個(gè)進(jìn)行計(jì)算的數(shù)據(jù)節(jié)點(diǎn)(Datanode);客戶端通過集群對(duì)外節(jié)點(diǎn)對(duì)集群訪問;名稱節(jié)點(diǎn)用于進(jìn)行Map過程;數(shù)據(jù)節(jié)點(diǎn)用于進(jìn)行Reduce過程;分布式集群使用開源hadoop;
(2)、分布式集群使用的科學(xué)計(jì)算應(yīng)用進(jìn)行調(diào)優(yōu),包含Map-Reduce函數(shù)接口;
(3)、在名稱節(jié)點(diǎn)中,設(shè)置分布式集群的安裝共享目錄,安裝共享目錄使用共同的存儲(chǔ)空間;在安裝共享目錄中部署應(yīng)用程序和/或文件;安裝共享目錄用于將應(yīng)用程序或者文件進(jìn)行全局共享,使得能訪問該安裝共享目錄的子節(jié)點(diǎn)能調(diào)用應(yīng)用程序或者讀寫文件;安裝共享目錄中部署應(yīng)用程序和/或文件步驟為:通過上傳解壓安裝三步,安裝完畢后測(cè)試各節(jié)點(diǎn)是否能正常訪問和執(zhí)行相應(yīng)的應(yīng)用程序和/或文件;
(4)、切換分布式集群的用戶,打開應(yīng)用程序,出現(xiàn)應(yīng)用程序接口,在該應(yīng)用程序接口下進(jìn)行算例或程序調(diào)試操作;算例或程序調(diào)試操作:通過Map-Reduce過程調(diào)用所有Datanode的計(jì)算資源,調(diào)用計(jì)算資源的多少是由hadoop配置過程設(shè)置;打開應(yīng)用程序,輸入應(yīng)用程序的算例參數(shù)或者相應(yīng)程序,開始執(zhí)行;
(5)、登陸各個(gè)執(zhí)行Reduce過程的數(shù)據(jù)節(jié)點(diǎn)(Datanode),使用top指令查看應(yīng)用的Reduce過程是否執(zhí)行;
(6)、執(zhí)行完畢后,分布式集群自動(dòng)收集所有的節(jié)點(diǎn)整合反饋給當(dāng)前用戶;節(jié)點(diǎn)整合反饋給當(dāng)前用戶輸出方式為:屏幕輸出。
實(shí)施例2:
本發(fā)明的分布式集群上實(shí)現(xiàn)科學(xué)計(jì)算應(yīng)用部署的方法, 步驟如下:
(1)、部署分布式集群,使得分布式集群的用戶能正常存儲(chǔ)文件和正常的進(jìn)行Map-Reduce過程;在分布式集群上配置一個(gè)集群對(duì)外節(jié)點(diǎn)、至少兩個(gè)名稱節(jié)點(diǎn)(Namenode)和多個(gè)進(jìn)行計(jì)算的數(shù)據(jù)節(jié)點(diǎn)(Datanode);客戶端通過集群對(duì)外節(jié)點(diǎn)對(duì)集群訪問;名稱節(jié)點(diǎn)用于進(jìn)行Map過程;數(shù)據(jù)節(jié)點(diǎn)用于進(jìn)行Reduce過程;分布式集群使用商業(yè)版hadoop;
(2)、分布式集群使用的科學(xué)計(jì)算應(yīng)用進(jìn)行調(diào)優(yōu),包含Map-Reduce函數(shù)接口;
(3)、在名稱節(jié)點(diǎn)中,設(shè)置分布式集群的安裝共享目錄,安裝共享目錄使用NFS共享的目錄/opt;在安裝共享目錄中部署應(yīng)用程序和/或文件;安裝共享目錄用于將應(yīng)用程序或者文件進(jìn)行全局共享,使得能訪問該安裝共享目錄的子節(jié)點(diǎn)能調(diào)用應(yīng)用程序或者讀寫文件;安裝共享目錄中部署應(yīng)用程序和/或文件步驟為:通過上傳解壓安裝三步,安裝完畢后測(cè)試各節(jié)點(diǎn)是否能正常訪問和執(zhí)行相應(yīng)的應(yīng)用程序和/或文件;
(4)、切換分布式集群的用戶,打開應(yīng)用程序,出現(xiàn)應(yīng)用程序接口,在該應(yīng)用程序接口下進(jìn)行算例或程序調(diào)試操作;算例或程序調(diào)試操作:通過Map-Reduce過程調(diào)用所有Datanode的計(jì)算資源,調(diào)用計(jì)算資源的多少是由hadoop配置過程設(shè)置;打開應(yīng)用程序,輸入應(yīng)用程序的算例參數(shù)或者相應(yīng)程序,開始執(zhí)行;
(5)、登陸各個(gè)執(zhí)行Reduce過程的數(shù)據(jù)節(jié)點(diǎn)(Datanode),使用top指令查看應(yīng)用的Reduce過程是否執(zhí)行;
(6)、執(zhí)行完畢后,分布式集群自動(dòng)收集所有的節(jié)點(diǎn)整合反饋給當(dāng)前用戶;節(jié)點(diǎn)整合反饋給當(dāng)前用戶輸出方式為:文件輸出。
實(shí)施例3:
本發(fā)明的分布式集群上實(shí)現(xiàn)科學(xué)計(jì)算應(yīng)用部署的系統(tǒng),在分布式集群上配置一個(gè)集群對(duì)外節(jié)點(diǎn)、至少兩個(gè)名稱節(jié)點(diǎn)(Namenode)和多個(gè)進(jìn)行計(jì)算的數(shù)據(jù)節(jié)點(diǎn)(Datanode);客戶端通過集群對(duì)外節(jié)點(diǎn)對(duì)集群訪問;名稱節(jié)點(diǎn)用于進(jìn)行Map過程;數(shù)據(jù)節(jié)點(diǎn)用于進(jìn)行Reduce過程。分布式集群使用開源hadoop或者商業(yè)版hadoop??蛻舳送ㄟ^外部網(wǎng)絡(luò)或公共網(wǎng)絡(luò)訪問集群對(duì)外節(jié)點(diǎn),集群對(duì)外節(jié)點(diǎn)通過內(nèi)部網(wǎng)絡(luò)能訪問名稱節(jié)點(diǎn)(Namenode)和數(shù)據(jù)節(jié)點(diǎn)(Datanode),名稱節(jié)點(diǎn)(Namenode)和數(shù)據(jù)節(jié)點(diǎn)(Datanode)進(jìn)行數(shù)據(jù)交互及通信的內(nèi)部網(wǎng)絡(luò)為千兆網(wǎng)絡(luò)。
通過上面具體實(shí)施方式,所述技術(shù)領(lǐng)域的技術(shù)人員可容易的實(shí)現(xiàn)本發(fā)明。但是應(yīng)當(dāng)理解,本發(fā)明并不限于上述的具體實(shí)施方式。在公開的實(shí)施方式的基礎(chǔ)上,所述技術(shù)領(lǐng)域的技術(shù)人員可任意組合不同的技術(shù)特征,從而實(shí)現(xiàn)不同的技術(shù)方案。
除說明書所述的技術(shù)特征外,均為本專業(yè)技術(shù)人員的已知技術(shù)。