




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、計(jì)算平臺(tái)概要設(shè)計(jì)說(shuō)明書(shū)文件編號(hào)受控編號(hào)版次1.0密級(jí)內(nèi)部公開(kāi)總頁(yè)數(shù)42附錄作者: 日期:2013-01-28批準(zhǔn): 日期:審核: 日期:(版權(quán)所有,翻版必究)文件修改記錄修改日期修改狀態(tài)修改頁(yè)碼及條款修改人審核人批準(zhǔn)人目錄1. 引言 1.1 編寫(xiě)目的 1.2 術(shù)語(yǔ)與縮略詞1.3 對(duì)象及范圍 .1.4 參考資料 2. 系統(tǒng)總體設(shè)計(jì) 2.1需求規(guī)定 2.1.1 . 數(shù)據(jù)導(dǎo)入2.1.2 . 數(shù)據(jù)運(yùn)算2.1.3 運(yùn)算結(jié)果導(dǎo)出2.1.4 .系 統(tǒng)監(jiān)控2.1.5 .調(diào) 度功能2.1.6 自動(dòng)化安裝部署與維護(hù)2.2運(yùn)行環(huán)境 2.3基本設(shè)計(jì)思路和處理流程 2.4系統(tǒng)結(jié)構(gòu) 2.4.1 大數(shù)據(jù)運(yùn)算系統(tǒng)架構(gòu)圖2.4
2、.2 hadoop 體系各組件之間關(guān)系圖2.4.3 計(jì)算平臺(tái)系統(tǒng)功能圖2.4.4 系統(tǒng)功能圖邏輯說(shuō)明2.4.5 計(jì)算平臺(tái)業(yè)務(wù)流程圖2.5尚未解決的問(wèn)題 3. 模塊/ 功能設(shè)計(jì) 3.1 計(jì)算驅(qū)動(dòng)模塊 3.1.1 設(shè) 計(jì)思路3.1.2 流 程圖3.1.3 處 理邏輯3.2 調(diào)度模塊 3.2.1 設(shè) 計(jì)思路3.2.2 流 程圖3.2.3 處 理邏輯3.3 自動(dòng)化安裝部署模塊 3.3.1 設(shè) 計(jì)思路3.3.2 處 理邏輯3.4 調(diào)度模塊與計(jì)算驅(qū)動(dòng)模塊交互流程 3.4.1 處理流程圖3.4.2 處 理邏輯3.4.3 hadoop 驅(qū)動(dòng)模塊調(diào)用驅(qū)動(dòng)接口3.4.4 調(diào)度模塊接收 hadoop 執(zhí)行狀態(tài)接口3
3、.5 調(diào)度模塊與 kettle 交互流程 3.5.1 處理流程圖3.5.2 處 理邏輯3.6 對(duì)調(diào)度任務(wù)運(yùn)行過(guò)程進(jìn)行監(jiān)控流程 3.6.1 處理流程圖3.6.2 處 理邏輯3.7 對(duì) hadoop 驅(qū)動(dòng)任務(wù)運(yùn)行過(guò)程進(jìn)行監(jiān)控流程 3.7.1 處理流程圖3.7.2 處 理邏輯3.8 對(duì)操作系統(tǒng) / 應(yīng)用程序監(jiān)控流程 3.8.1 處理流程圖3.8.2 處 理邏輯3.9 監(jiān)控報(bào)警模塊 3.9.1 設(shè) 計(jì)思路3.9.2 流 程圖3.9.3 處 理邏輯4. 系統(tǒng)數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì) . 4.1 數(shù)據(jù)實(shí)體關(guān)系圖 4.2 數(shù)據(jù)邏輯結(jié)構(gòu) 4.2.1 驅(qū) 動(dòng)任務(wù)設(shè)置表4.2.2 驅(qū)動(dòng)設(shè)置表4.2.3 驅(qū)動(dòng)任務(wù)執(zhí)行明細(xì)表4.
4、2.4 調(diào)度任務(wù)表4.2.5 調(diào)度步驟表4.2.6 調(diào) 度步驟執(zhí)行記錄表4.2.7 操 作系統(tǒng)監(jiān)控?cái)?shù)據(jù)表4.2.8 應(yīng)用程序監(jiān)控?cái)?shù)據(jù)表4.2.9 監(jiān) 控系統(tǒng)配置表業(yè)務(wù)數(shù)據(jù)記錄表 4.3 數(shù)據(jù)物理結(jié)構(gòu) 5. 安全設(shè)計(jì) 6. 容錯(cuò)設(shè)計(jì) 6.1 挽救措施 6.2 系統(tǒng)維護(hù)設(shè)計(jì) 7. 日志設(shè)計(jì) 1.引言1.1 編寫(xiě)目的大數(shù)據(jù)泛指巨量的數(shù)據(jù)集,因可從中挖掘出有價(jià)值的信息而受到重視。 華爾 街日?qǐng)?bào)將大數(shù)據(jù)時(shí)代、智能化生產(chǎn)和無(wú)線網(wǎng)絡(luò)革命稱(chēng)為引領(lǐng)未來(lái)繁榮的三大技術(shù) 變革。麥肯錫公司的報(bào)告指出數(shù)據(jù)是一種生產(chǎn)資料,大數(shù)據(jù)是下一個(gè)創(chuàng)新、競(jìng)爭(zhēng)、 生產(chǎn)力提高的前沿。世界經(jīng)濟(jì)論壇的報(bào)告認(rèn)定大數(shù)據(jù)為新財(cái)富,價(jià)值堪比石油。因
5、 此,發(fā)達(dá)國(guó)家紛紛將開(kāi)發(fā)利用大數(shù)據(jù)作為奪取新一輪競(jìng)爭(zhēng)制高點(diǎn)的重要抓手?;ヂ?lián)網(wǎng)特別是移動(dòng)互聯(lián)網(wǎng)的發(fā)展,加快了信息化向社會(huì)經(jīng)濟(jì)各方面、大眾日常生活的滲透。有資料顯示,1998年全球網(wǎng)民平均每月使用流量是 1MB(兆字節(jié)),2000 年是 10MB 2003 年是 100MB 2008 年是 1GB( 1GB等于 1024MB, 2014 年將是10GB全網(wǎng)流量累計(jì)達(dá)到 1EB (即卩10億GB或1000PB)的時(shí)間在2001年是一年, 在 2004 年是一個(gè)月,在 2007 年是一周,而 2013 年僅需一天,即一天產(chǎn)生的信息 量可刻滿1.88億張DVD光盤(pán)。我國(guó)網(wǎng)民數(shù)居世界之首,每天產(chǎn)生的數(shù)據(jù)量
6、也位于 世界前列。淘寶網(wǎng)站每天有超過(guò)數(shù)千萬(wàn)筆交易,單日數(shù)據(jù)產(chǎn)生量超過(guò)50TB( 1TB等于1000GB,存儲(chǔ)量40PB(1PB等于1000TB)。百度公司目前數(shù)據(jù)總量接近1000PE,存儲(chǔ)網(wǎng)頁(yè)數(shù)量接近1萬(wàn)億頁(yè),每天大約要處理 60億次搜索請(qǐng)求,幾十 PB數(shù)據(jù)。一 個(gè)8Mbps (兆比特每秒)的攝像頭一小時(shí)能產(chǎn)生3.6GB數(shù)據(jù),一個(gè)城市若安裝幾十萬(wàn)個(gè)交通和安防攝像頭, 每月產(chǎn)生的數(shù)據(jù)量將達(dá)幾十 PBo醫(yī)院也是數(shù)據(jù)產(chǎn)生集中的 地方?,F(xiàn)在,一個(gè)病人的 CT影像數(shù)據(jù)量達(dá)幾十 GB而全國(guó)每年門(mén)診人數(shù)以數(shù)十億 計(jì),并且他們的信息需要長(zhǎng)時(shí)間保存??傊髷?shù)據(jù)存在于各行各業(yè),一個(gè)大數(shù)據(jù) 時(shí)代正在到來(lái)。信息爆炸
7、不自今日起,但近年來(lái)人們更加感受到大數(shù)據(jù)的來(lái)勢(shì)迅猛。一方面, 網(wǎng)民數(shù)量不斷增加,另一方面,以物聯(lián)網(wǎng)和家電為代表的聯(lián)網(wǎng)設(shè)備數(shù)量增長(zhǎng)更快。2007年全球有5億個(gè)設(shè)備聯(lián)網(wǎng),人均0.1個(gè);2013年全球?qū)⒂?00億個(gè)設(shè)備聯(lián)網(wǎng), 人均70個(gè)。隨著寬帶化的發(fā)展,人均網(wǎng)絡(luò)接入帶寬和流量也迅速提升。全球新產(chǎn) 生數(shù)據(jù)年增40%即信息總量每?jī)赡昃涂梢苑?,這一趨勢(shì)還將持續(xù)。目前,單一 數(shù)據(jù)集容量超過(guò)幾十 TB甚至數(shù)PB已不罕見(jiàn),其規(guī)模大到無(wú)法在容許的時(shí)間內(nèi)用常 規(guī)軟件工具對(duì)其內(nèi)容進(jìn)行抓取、管理和處理。數(shù)據(jù)規(guī)模越大,處理的難度也越大,但對(duì)其進(jìn)行挖掘可能得到的價(jià)值更大,這 就是大數(shù)據(jù)熱的原因。鑒于越來(lái)越大的數(shù)據(jù)規(guī)模,
8、采用常規(guī)基于DBMS的數(shù)據(jù)分析工具和方法已經(jīng)無(wú)法滿足大規(guī)模數(shù)據(jù)分析的需求,目前一些大型互聯(lián)網(wǎng)公司采用 hadoop體系進(jìn)行大規(guī)模數(shù)據(jù)的運(yùn)算,結(jié)合hadoop體系結(jié)構(gòu)與實(shí)際的運(yùn)算需求結(jié)合, 采用hadoop體系結(jié)構(gòu)的分布式運(yùn)算模型,通過(guò)集群的方式實(shí)現(xiàn)大數(shù)據(jù)運(yùn)算,為企 業(yè)提供大數(shù)據(jù)的價(jià)值。為適應(yīng)大數(shù)據(jù)計(jì)算的要求,同時(shí)提供大數(shù)據(jù)運(yùn)算平臺(tái)的系統(tǒng)設(shè)計(jì)的依據(jù),特制 定計(jì)算平臺(tái)的系統(tǒng)概要設(shè)計(jì)文檔,為后期的系統(tǒng)詳細(xì)設(shè)計(jì)和實(shí)現(xiàn)提供依據(jù)。1.2 術(shù)語(yǔ)與縮略詞F列術(shù)語(yǔ)、定義和縮略語(yǔ)適用于本標(biāo)準(zhǔn):術(shù)語(yǔ)與縮略詞解 釋備注Name nodeHDFS 采用 master/slave 架構(gòu)。一個(gè) HDFS集群是由一個(gè) Nam
9、e node和一疋數(shù)目的 Data no des組成。Name node是一個(gè)中心服務(wù)器,負(fù) 責(zé)管理文件系統(tǒng)的名子空間(namespace)以及客戶端對(duì)文件的訪問(wèn)。Name node執(zhí)行文件系統(tǒng)的名字空間操作,比如打開(kāi)、關(guān)閉、 重命名文件或目錄。匕也負(fù)責(zé)確疋數(shù)據(jù)塊到具體Data node節(jié)點(diǎn)的映射Data node集群中的Data node 般是一個(gè)節(jié)點(diǎn)一個(gè),負(fù)責(zé)管理它所在節(jié)點(diǎn)上的存儲(chǔ)。HDFS暴露了文件系統(tǒng)的名字空間,用戶能夠以文件 的形式在上面存儲(chǔ)數(shù)據(jù)。從內(nèi)部看,一個(gè)文件其實(shí)被分成一個(gè)或多個(gè)數(shù)據(jù)塊,這些塊存儲(chǔ)在一組 Data node上。Data node負(fù)責(zé) 處理文件系統(tǒng)客戶端的讀與請(qǐng)求
10、。在Name node的統(tǒng)一調(diào)度下進(jìn)行數(shù)據(jù)塊的創(chuàng)建、刪除和復(fù)制Secondn ame node光從字面上來(lái)理解,很容易讓一些初學(xué)者先入為主的認(rèn)為:SecondaryNameNode (snn)就是 NameNode( nn)的熱備進(jìn)程。其實(shí)不是。snn是HDFS架構(gòu)中的一個(gè)組成部分,但是經(jīng)常由于名字而被人誤解它真正的用途,其實(shí)它真正的用途,是用來(lái)保存 name node中對(duì) HDFS metadata 的信息的備份, 并減少 n ame node重啟的時(shí)間JobtrackerJobTracker是 MapReduce框架中最主要的類(lèi)之一,所有job的執(zhí)行都由它來(lái)調(diào)度,而且Hadoop系統(tǒng)中只配
11、置一個(gè) JobTracker 應(yīng)用。?它們都是由一個(gè) master服務(wù)JobTracker和多個(gè)運(yùn)行于 多個(gè)節(jié)點(diǎn)的slaver服務(wù)TaskTracker兩個(gè)類(lèi)提供的服務(wù)調(diào)度 的。master負(fù)責(zé)調(diào)度job的每一個(gè)子任務(wù) task運(yùn)行于slave 上,并監(jiān)控它們,如果發(fā)現(xiàn)有失敗的task就重新運(yùn)行它,slave 則負(fù)責(zé)直接執(zhí)行每一個(gè)taskTaskTrackerTaskTracker 都需要運(yùn)行在 HDFS勺 DataNode上,而 JobTracker 貝U不需要,一般情況應(yīng)該把 JobTracker部署在單獨(dú)的機(jī)器上HBaseHBase是一個(gè)分布式的、面向列的開(kāi)源數(shù)據(jù)庫(kù),該技術(shù)來(lái)源于Chan
12、get al所撰與的Google論文 Bigtable :一個(gè)結(jié)構(gòu)化數(shù)據(jù)的分布式存儲(chǔ) 系統(tǒng)"。就像Bigtable禾U用了 Google文件系統(tǒng)(File System)所提 供的分布式數(shù)據(jù)存儲(chǔ)一樣,HBase在Hadoop之上提供了類(lèi)似于Bigtable 的能力。HBase是Apache的Hadoop項(xiàng)目的子項(xiàng)目。HBase 不同于一般的關(guān)系數(shù)據(jù)庫(kù),它是一個(gè)適合于非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)的數(shù)據(jù) 庫(kù)。另一個(gè)不同的是HBase基于列的而不是基于行的模式。Hivehive是基于Hadoop的一個(gè)數(shù)據(jù)倉(cāng)庫(kù)工具,可以將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫(kù)表,并提供完整的sql查詢功能,可以將sql語(yǔ)句S
13、tormFlumeETLKettle轉(zhuǎn)換為MapReduce壬務(wù)進(jìn)行運(yùn)行。其優(yōu)點(diǎn)是學(xué)習(xí)成本低,可以通過(guò)類(lèi)SQL語(yǔ)句快速實(shí)現(xiàn)簡(jiǎn)單的 MapReduce統(tǒng)計(jì),不必開(kāi)發(fā)專(zhuān)門(mén)的MapReduce 應(yīng)用,十分適合數(shù)據(jù)倉(cāng)庫(kù)的統(tǒng)計(jì)分析。Storm 為分布式實(shí)時(shí)計(jì)算提供了一組通用原語(yǔ),可被用于“流處理”之中,實(shí)時(shí)處理消息并更新數(shù)據(jù)庫(kù)。這是管理隊(duì)列及工作者集群的另一種方式。Storm 也可被用于“連續(xù)計(jì)算” (continuous computation ),對(duì)數(shù)據(jù)流做連續(xù)查詢, 在計(jì)算時(shí)就將結(jié)果以流的形式輸出給用戶。它還可被用于“分布式RPC,以并行的方式運(yùn)行昂貴的運(yùn)算。Flume是Cloudera提供的一個(gè)
14、高可用的,高可靠的,分布式的海量日志采集、聚合和傳輸?shù)南到y(tǒng), Flume支持在日志系統(tǒng)中定制各類(lèi)數(shù)據(jù)發(fā)送方,用于 收集數(shù)據(jù);同時(shí),F(xiàn)lume提供對(duì)數(shù)據(jù)進(jìn)行簡(jiǎn)單處理, 并寫(xiě)到各種數(shù)據(jù)接受方(可定制)的能力。ETL是數(shù)據(jù)抽取(Extract )、清洗(Cleaning )、轉(zhuǎn)換(Transform )、裝載(Load )的過(guò)程。是構(gòu)建數(shù)據(jù)倉(cāng)庫(kù)的重 要一環(huán),用戶從數(shù)據(jù)源抽取出所需的數(shù)據(jù),經(jīng)過(guò)數(shù)據(jù)清洗 最終按照預(yù)先定義好的數(shù)據(jù)倉(cāng)庫(kù)模型,將數(shù)據(jù)加載到數(shù)據(jù)倉(cāng)庫(kù)中去。Kettle是一款國(guó)外開(kāi)源的ETL工具,純java編寫(xiě),可以在Window、Linux、Unix上運(yùn)行,綠色無(wú)需安裝,數(shù)據(jù)抽取高效穩(wěn)定。MyS
15、QLMySQL是一個(gè)開(kāi)放源碼的小型關(guān)聯(lián)式數(shù)據(jù)庫(kù)管理系統(tǒng),開(kāi)發(fā)者為瑞典MySQL AB公司。目前 MySQL被廣泛地應(yīng)用在In ternet上的中小型網(wǎng)站中。由于其體積小、速度快、總體擁有成本低,尤其是開(kāi)放源碼這一特點(diǎn),許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇了MySQL作為網(wǎng)站數(shù)據(jù)庫(kù)。MongoDBMongoDB是一個(gè)介于關(guān)系數(shù)據(jù)庫(kù)和非關(guān)系數(shù)據(jù)庫(kù)之間的產(chǎn)品,是非關(guān)系數(shù)據(jù)庫(kù)當(dāng)中功能最豐富,最像關(guān)系數(shù)據(jù)庫(kù)的。他支持的數(shù)據(jù)結(jié)構(gòu)非常松散,是類(lèi)似json的bson格式,因此可以存儲(chǔ)比較復(fù)雜的數(shù)據(jù)類(lèi)型。Mongo最大的特點(diǎn)是他支持的查詢語(yǔ)言非常強(qiáng)大,其語(yǔ)法有點(diǎn)類(lèi)似于面向?qū)ο蟮牟樵冋Z(yǔ)言,幾乎可以實(shí)現(xiàn)類(lèi)似
16、關(guān)系數(shù)據(jù)庫(kù)單表查詢的絕大部分功 能,而且還支持對(duì)數(shù)據(jù)建立索引。1.3 對(duì)象及范圍1、開(kāi)發(fā)人員、DBA測(cè)試人員;2、研發(fā)主管領(lǐng)導(dǎo)、產(chǎn)品人員;1.4 參考資料1、大數(shù)據(jù)處理體系架構(gòu)2、HBase The Definitive Guide 3、 4、Programming_Hive2.系統(tǒng)總體設(shè)計(jì)2.1 需求規(guī)定2.2 運(yùn)行環(huán)境操作系統(tǒng):RedHad En terprise 5.5軟件環(huán)境:Java 1.6Hadoop-1.0.4HBase-0.94.9Hive-0.10.0sqoop-1.4.2 zookeeper-3.4.5Kettle 4.3MySQL 5.1硬件環(huán)境:8核16G內(nèi)存PC服務(wù)器
17、8臺(tái)2.3 基本設(shè)計(jì)思路和處理流程1 、按照數(shù)據(jù)分析的實(shí)時(shí)性,分為在線數(shù)據(jù)分析和離線數(shù)據(jù)分析。2、在線數(shù)據(jù)分析:往往要求系統(tǒng)在數(shù)秒內(nèi)返回上億行數(shù)據(jù)的分析,從而才能達(dá)到 不影響用戶體驗(yàn)的目的。3、離線數(shù)據(jù)分析:對(duì)大多數(shù)反饋時(shí)間要求不高的應(yīng)用,比如離線統(tǒng)計(jì)分析、機(jī)器 學(xué)習(xí)等,應(yīng)采用離線分析的方式,通過(guò)數(shù)據(jù)采集工具將日志數(shù)據(jù)導(dǎo)入專(zhuān)門(mén)的分析平 臺(tái)進(jìn)行分析。4、 系統(tǒng)主要以離線數(shù)據(jù)分析為主,采用目前在互聯(lián)網(wǎng)業(yè)界流行的hadoop 體系結(jié)構(gòu) 對(duì)大批量的數(shù)據(jù)進(jìn)行運(yùn)算,采用 hadoop 集群的方式對(duì)大數(shù)據(jù)進(jìn)行運(yùn)算。5、數(shù)據(jù)運(yùn)算平臺(tái)以調(diào)度為主線,作為運(yùn)算平臺(tái)的核心控制系統(tǒng),對(duì)運(yùn)算平臺(tái)的各 個(gè)環(huán)節(jié)進(jìn)行控制,且對(duì)
18、運(yùn)算過(guò)程中的步驟依賴(lài)關(guān)系進(jìn)行控制,同時(shí)對(duì)各個(gè)環(huán)節(jié)進(jìn)行 監(jiān)控,通過(guò)監(jiān)控異常報(bào)警來(lái)提高系統(tǒng)的穩(wěn)定性和異常響應(yīng)速度。2.4 系統(tǒng)結(jié)構(gòu)2.4.1大數(shù)據(jù)運(yùn)算系統(tǒng)架構(gòu)圖統(tǒng)計(jì)分析在線計(jì)算:Storm流計(jì)算框架離線計(jì)算:Hadoop(Map/Reduce、Hive、pig)日志存儲(chǔ)Hadoop(HDFS HBASE)日志米集日志采集系統(tǒng)Flume2.4.2大數(shù)據(jù)平臺(tái)系統(tǒng)功能圖系統(tǒng)功能圖邏輯說(shuō)明1) 生產(chǎn)系統(tǒng)的源數(shù)據(jù)通過(guò) sqoop,flume,Kettle等獲取后保存在 Kafka消息隊(duì)列 中或者保存到hadoop的hdfs系統(tǒng)中。2)調(diào)度系統(tǒng)負(fù)責(zé)自身的控制功能,通過(guò)讀取調(diào)度控制的配置信息調(diào)用驅(qū)動(dòng)代理程 序處
19、理相關(guān)的運(yùn)算功能。3)驅(qū)動(dòng)代理程序負(fù)責(zé)所有基于運(yùn)算平臺(tái)的相關(guān)組件的驅(qū)動(dòng)任務(wù),讀取調(diào)度系統(tǒng)傳 遞過(guò)來(lái)的模版信息,讀取模版信息,并執(zhí)行相應(yīng)的驅(qū)動(dòng)操作。4)系統(tǒng)管理功能部分完成系統(tǒng)相關(guān)配置,管理等相關(guān)信息的維護(hù)操作。5)監(jiān)控系統(tǒng)對(duì)整個(gè)系統(tǒng)的運(yùn)行狀況進(jìn)行監(jiān)控,由各個(gè)業(yè)務(wù)子系統(tǒng)按照監(jiān)控系統(tǒng)的要求實(shí)現(xiàn)相應(yīng)的監(jiān)控功能。2.4.3 大數(shù)據(jù)平臺(tái)功能結(jié)構(gòu)圖大數(shù)據(jù)平臺(tái)功能結(jié)構(gòu)圖說(shuō)明:1)大數(shù)據(jù)平臺(tái)功能結(jié)構(gòu)主要?jiǎng)澐譃橛?jì)算平臺(tái),應(yīng)用平臺(tái),系統(tǒng)管理以及監(jiān)控,配 置等相關(guān)應(yīng)用功能。2)計(jì)算平臺(tái)分為基礎(chǔ)運(yùn)算部分,模版管理部分,驅(qū)動(dòng)代理部分,系統(tǒng)調(diào)度部分。3)計(jì)算平臺(tái)分為離線計(jì)算與實(shí)時(shí)計(jì)算兩種形式。4)計(jì)算平臺(tái)基于模版的功能開(kāi)
20、發(fā),實(shí)際應(yīng)用中做到模版的熱插拔,對(duì)于功能需求 只需要開(kāi)發(fā)相應(yīng)的模版,并部署上計(jì)算平臺(tái)即可應(yīng)用。5)驅(qū)動(dòng)代理程序管理所有的基于大數(shù)據(jù)運(yùn)算的相關(guān)組件的代理功能,對(duì)外提供給 調(diào)度系統(tǒng)應(yīng)用,調(diào)用模版設(shè)置的相應(yīng)的類(lèi)型,進(jìn)行相應(yīng)類(lèi)型的驅(qū)動(dòng)操作。6)調(diào)度系統(tǒng)只關(guān)心其自身的系統(tǒng)控制能力,不參與具體的業(yè)務(wù)以及計(jì)算功能組件 的調(diào)用。2.5 尚未解決的問(wèn)題無(wú)3. 模塊 / 功能設(shè)計(jì)3.1 調(diào)度模塊3.1.1 設(shè)計(jì)思路:調(diào)度模塊實(shí)現(xiàn)功能思路二:流程說(shuō)明以及注意事項(xiàng):1、任務(wù)與步驟采用配置表的方式保存在 mysql 中,調(diào)度程序定時(shí)掃描任務(wù)表, 判斷是否有啟動(dòng)的任務(wù),如果有啟動(dòng)的任務(wù),則啟動(dòng)任務(wù)。2、調(diào)度任務(wù)需要判斷任
21、務(wù)中步驟之間的依賴(lài)關(guān)系, 根據(jù)依賴(lài)關(guān)系判斷是否可以 執(zhí)行下一步的執(zhí)行步驟。3、一個(gè)任務(wù)中可以包含多個(gè)步驟,每個(gè)步驟為一個(gè)具體的任務(wù),步驟與步驟直接存在依賴(lài)關(guān)系。4、對(duì)于具體的執(zhí)行任務(wù)將由驅(qū)動(dòng)代理自動(dòng)完成。3.1.2 流程圖3.1.3 處理邏輯1、調(diào)度任務(wù)啟動(dòng)后掃描任務(wù)配置表, 看任務(wù)配置表是否存在需要處理的任務(wù)信息, 如果不存在需要處理的任務(wù)信息,則線程執(zhí)行休眠,否則執(zhí)行步驟2;2、生成數(shù)據(jù)日期,并檢查任務(wù)依賴(lài)關(guān)系,如果依賴(lài)關(guān)系未執(zhí)行完,則現(xiàn)成等待操 作,等待依賴(lài)的任務(wù)執(zhí)行完成,如果依賴(lài)關(guān)系都執(zhí)行完,則獲取符合條件的任務(wù), 執(zhí)行步驟 3:3、讀取任務(wù)信息表,獲取任務(wù)信息,根據(jù)任務(wù)信息讀取步驟信
22、息,執(zhí)行相應(yīng)的步 驟操作,執(zhí)行步驟 4;4、根據(jù)步驟信息的配置獲取需要執(zhí)行的相應(yīng)的模版信息,調(diào)用驅(qū)動(dòng)代理程序執(zhí)行 相應(yīng)的功能,執(zhí)行步驟 5;5、驅(qū)動(dòng)代理程序執(zhí)行模版初始化,初始化完成后獲取相應(yīng)的參數(shù)數(shù)據(jù),并根據(jù)模 版類(lèi)型選擇具體的驅(qū)動(dòng)程序,執(zhí)行相應(yīng)的操作。6、判斷該任務(wù)的下步驟是否執(zhí)行完成,如果未執(zhí)行完成,則執(zhí)行步驟3,繼續(xù)下一 個(gè)步驟的執(zhí)行,否則執(zhí)行步驟 7; 7、寫(xiě)步驟完成信息表,判斷是否還存在要執(zhí)行的任務(wù),如果沒(méi)有等待,存在需要 執(zhí)行的任務(wù)則執(zhí)行步驟 3.3.2 驅(qū)動(dòng)代理模塊3.2.1 設(shè)計(jì)思路一:計(jì)算驅(qū)動(dòng)模塊實(shí)現(xiàn)功能思路二:流程說(shuō)明以及注意事項(xiàng):1、計(jì)算平臺(tái)的驅(qū)動(dòng)提供針對(duì) Hive ,
23、 MapReduce Hbase等相關(guān)的驅(qū)動(dòng)應(yīng)用。2、基于業(yè)務(wù)模版的設(shè)置操作,調(diào)度執(zhí)行業(yè)務(wù)模版,不關(guān)心模版具體業(yè)務(wù)形態(tài)。3、一個(gè)驅(qū)動(dòng)應(yīng)用包含四個(gè)步驟: 1 )刪除不用的數(shù)據(jù); 2)加載數(shù)據(jù); 3)運(yùn)算;4) 導(dǎo)出結(jié)果文件。4、提供監(jiān)控需要的相應(yīng)信息。5、對(duì)于文件的操作,會(huì)涉及到多個(gè)文件或者目錄操作,多個(gè)文件或者目錄以逗號(hào) 分隔,對(duì)文件操作中涉及到一些按照小時(shí),天,月份的文件命名的操作,配置中以 特殊字符進(jìn)行替換。3.2.2 流程圖3.2.3 處理邏輯1、由調(diào)度程序驅(qū)動(dòng)代理模塊,調(diào)用驅(qū)動(dòng)代理模塊的驅(qū)動(dòng)應(yīng)用,傳遞需要驅(qū)動(dòng)的模 版編號(hào),處理時(shí)間范圍等相關(guān)信息,執(zhí)行流程 2;2、驅(qū)動(dòng)程序首先查詢是否存
24、在該模版,如果不存在模版,、則執(zhí)行流程 3,否則執(zhí)行流程 4; 3、則直接返回任務(wù)失敗信息,不存在相關(guān)的模版,整個(gè)流程結(jié)束;4、如果查詢到相關(guān)的模版信息, 先執(zhí)行初始化模版信息以及需要?jiǎng)h除的中間文件, 多個(gè)文件以逗號(hào)分割,如果為空則表示不需要清理中間文件,執(zhí)行流程5;5、清理 hive 表數(shù)據(jù)操作,多個(gè) hive 語(yǔ)句以逗號(hào)分割,如果為空則表示不需要進(jìn) 行分割,執(zhí)行流程 66、判斷該操作是 hive 驅(qū)動(dòng) mapreduce還是自定義的 mapreduce,如果是自定義的mapreduce 則走自定義的 mapreduce 操作,執(zhí)行流程 7,否則如果是 hive 驅(qū)動(dòng)的 mapreduce,
25、則走h(yuǎn)ive操作流程,否則執(zhí)行流程 8;7、如果 mapreduce 的操作流程,第一步執(zhí)行加載文本文件數(shù)據(jù),多個(gè)文本文件以 逗號(hào)進(jìn)行分割, 第二步執(zhí)行 mapreduce 操作,通過(guò) shell 腳本的方式執(zhí)行 mapreduce 操作,第三步執(zhí)行完后將結(jié)果輸出。8、如果是 hive 的操作流程,第一步先執(zhí)行加載文本文件到 hive 表,如果有多個(gè) 文件操作一逗號(hào)分割,第二步執(zhí)行 hive 語(yǔ)句,多個(gè) hive 語(yǔ)句以逗號(hào)分割的方式, 第三步將結(jié)果輸出到相應(yīng)的 hive 表中。9、 根據(jù)設(shè)置導(dǎo)出的方式,將結(jié)果文件導(dǎo)出到mysql,或者mongodb或者直接將文 本文件從 hdfs 文件系統(tǒng)中
26、導(dǎo)出。3.3 對(duì)操作系統(tǒng) / 應(yīng)用程序監(jiān)控流程3.3.1 處理流程圖3.3.2 處理邏輯2,如果1、讀取監(jiān)控服務(wù)器列表,判斷是否需要監(jiān)控,如果需要監(jiān)控,則執(zhí)行步驟不需要監(jiān)控,執(zhí)行步驟 5;2、監(jiān)控模塊向監(jiān)控服務(wù)器發(fā)送監(jiān)控請(qǐng)求,等到被監(jiān)控服務(wù)器的返回,執(zhí)行步驟3;3、被監(jiān)控服務(wù)器接收到請(qǐng)求監(jiān)控信息后,將相關(guān)的信息返回給監(jiān)控模塊,執(zhí)行步驟 4;4、監(jiān)控服務(wù)器將返回的數(shù)據(jù)進(jìn)行解析后入庫(kù),執(zhí)行步驟5;5、判斷被監(jiān)控服務(wù)器是否都請(qǐng)求完成,如果請(qǐng)求完成,則執(zhí)行步驟6,否則執(zhí)行步驟 1;6、監(jiān)控模塊線程休眠 10 分鐘,等待下次進(jìn)行監(jiān)控,執(zhí)行步驟 1.3.4 監(jiān)控報(bào)警模塊3.4.1 設(shè)計(jì)思路一:監(jiān)控模塊實(shí)現(xiàn)
27、功能思路二:流程說(shuō)明以及注意事項(xiàng):1 、監(jiān)控報(bào)警模塊主要完成三個(gè)級(jí)別的監(jiān)控報(bào)警,分為:1 )操作系統(tǒng)級(jí)別,檢測(cè)運(yùn)行的機(jī)器的操作系統(tǒng)是否正常運(yùn)行,cpu內(nèi)存,i/o,存儲(chǔ)等資源的利用情況,采用 Linux 的 Shell 腳本對(duì)相關(guān)的信息進(jìn)行收集并上報(bào);2 )應(yīng)用程序級(jí)別監(jiān)控,檢測(cè) kettle , hadoop, hive , hbase , zookeeper 等相 關(guān)程序是否正常啟動(dòng),以及應(yīng)用程序的相關(guān)資源的監(jiān)控。3 )程序數(shù)據(jù)級(jí)別的監(jiān)控,對(duì)數(shù)據(jù)情況進(jìn)行監(jiān)控,主要是數(shù)據(jù)異常的監(jiān)控。2、監(jiān)控模塊主要負(fù)責(zé)監(jiān)控?cái)?shù)據(jù)的采集,數(shù)據(jù)異常報(bào)警,以及后期的監(jiān)控?cái)?shù)據(jù)展示 等功能。3、對(duì)于系統(tǒng)級(jí)別和應(yīng)用程序級(jí)
28、別的監(jiān)控?cái)?shù)據(jù)采集采用由監(jiān)控模塊主動(dòng)調(diào)用相應(yīng)的 應(yīng)用接口的方式采集數(shù)據(jù),對(duì)于應(yīng)用數(shù)據(jù)級(jí)別的監(jiān)控則由各個(gè)應(yīng)用將相關(guān)的數(shù)據(jù)寫(xiě) 入到數(shù)據(jù)庫(kù)表,由監(jiān)控系統(tǒng)對(duì)其進(jìn)行掃描。4、監(jiān)控模塊的報(bào)警機(jī)制支持優(yōu)先級(jí)報(bào)警模式,對(duì)于優(yōu)先級(jí)較高,需要緊急處理的 報(bào)警,需要不間斷的進(jìn)行報(bào)警,但需要設(shè)置報(bào)警的頻率,如 10 分鐘重復(fù)一次。5、監(jiān)控的報(bào)警模式采用郵件監(jiān)控的方式,輔助以短信提醒的方式。3.4.2 流程圖3.4.3 處理邏輯1、監(jiān)控報(bào)警啟動(dòng)采用啟動(dòng)啟動(dòng)的方式進(jìn)行,當(dāng)監(jiān)控報(bào)警線程啟動(dòng)后判斷是否到達(dá) 監(jiān)控時(shí)間點(diǎn),如果未到達(dá)監(jiān)控時(shí)間點(diǎn),則線程休眠 1 分鐘后再次進(jìn)行判斷,如果到 達(dá)監(jiān)控時(shí)間點(diǎn)則執(zhí)行步驟 2。2、讀取需要監(jiān)控
29、任務(wù)列表,得到需要監(jiān)控的任務(wù),執(zhí)行步驟3。3、對(duì)監(jiān)控任務(wù)的源數(shù)據(jù)進(jìn)行掃描,判斷是否存在異常,如果存在異常則保存監(jiān)控 異常數(shù)據(jù),執(zhí)行步驟 4,否則執(zhí)行步驟 1。4、判斷監(jiān)控列表是否都執(zhí)行完,如果執(zhí)行完,對(duì)于異常情況以郵件的方式通知相 關(guān)人,否則執(zhí)行步驟 3。4. 系統(tǒng)數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)4.1 數(shù)據(jù)實(shí)體關(guān)系圖詳細(xì)圖例見(jiàn)附件4.2 數(shù)據(jù)邏輯結(jié)構(gòu)4.2.1 調(diào)度任務(wù)表字段說(shuō)明數(shù)據(jù)類(lèi)型是否為空主鍵備注Taskld任務(wù)IDint否是主鍵,自增長(zhǎng)IDTaskName任務(wù)名稱(chēng)Varchar(255)否TaskDesc任務(wù)描述Varchar(500)是Priority優(yōu)先級(jí)int是數(shù)值110值越 大優(yōu)先級(jí)越咼, 默認(rèn)
30、5CycleType周期類(lèi)型int否0.執(zhí)行一次1.分鐘 2.小時(shí)3.天4.月In terval頻次間隔Int是整數(shù)Pla nRun Time預(yù)期執(zhí)行時(shí)長(zhǎng)Int是單位:分鐘LastR un Date最后執(zhí)行日期int否Status任務(wù)狀態(tài)int否0.正常1.暫停CreateUser創(chuàng)建人Varchar(255)否CreateTime創(chuàng)建時(shí)間date否ModifyUser修改人Varchar(255)是ModifyTime修改時(shí)間date是4.2.2 調(diào)度步驟表字段說(shuō)明數(shù)據(jù)類(lèi)型是否為空主鍵備注StepId步驟IDint否是主鍵,自增長(zhǎng)IDTaskId任務(wù)IDint否“任務(wù)表”主鍵StepSort
31、執(zhí)行順序int否相冋則表示并仃StepName步驟名稱(chēng)Varchar(255)否TemplatelD模板IDInt否Pla nRun Time預(yù)期執(zhí)行時(shí)長(zhǎng)Int是單位:分鐘CreateUser創(chuàng)建人Varchar(255)否CreateTime創(chuàng)建時(shí)間date否ModifyUser修改人Varchar(255)是ModifyTime修改時(shí)間date是423 調(diào)度任務(wù)依賴(lài)表字段說(shuō)明數(shù)據(jù)類(lèi)型是否為空主鍵備注Taskld任務(wù)IDint否FatherId父任務(wù)IDint否424 調(diào)度任務(wù)運(yùn)行日志表字段說(shuō)明數(shù)據(jù)類(lèi)型是否為空主鍵備注SerialId記錄IDInt否是主鍵,自增長(zhǎng)IDTaskDate任務(wù)日期
32、Int否TaskId任務(wù)IDInt否“任務(wù)表”主 鍵Status任務(wù)狀態(tài)Int否0.初始化1執(zhí)行 中2.已完成-99.執(zhí)行錯(cuò)誤RetryTimes重試次數(shù)IntBegi nTime開(kāi)始執(zhí)行時(shí)間Date是En dTime結(jié)束執(zhí)行時(shí)間Date是CreateTime創(chuàng)建時(shí)間Date否ModifyTime修改時(shí)間Date是425 調(diào)度步驟運(yùn)行日志表字段說(shuō)明數(shù)據(jù)類(lèi)型是否為空主鍵備注Serialld記錄IDInt否是主鍵,自增長(zhǎng)IDTaskDate步驟日期Int否TaskId任務(wù)IDInt否“任務(wù)表”主 鍵StepId步驟IDInt否“步驟表”主 鍵StepSort步驟序號(hào)int否Status步驟狀態(tài)In
33、t否0.初始化1.執(zhí)行中2.已完成-99.執(zhí)行錯(cuò)誤RetryTimes重試次數(shù)IntBegi nTime開(kāi)始執(zhí)行時(shí)間Date是En dTime結(jié)束執(zhí)行時(shí)間Date是CreateTime創(chuàng)建時(shí)間Date否ModifyTime修改時(shí)間Date是426 調(diào)度步驟運(yùn)行錯(cuò)誤日志表字段說(shuō)明數(shù)據(jù)類(lèi)型是否為空主鍵備注SerialId記錄IDInt否是主鍵,自增長(zhǎng)IDTaskDate任務(wù)日期Int否Taskld任務(wù)IDInt否Stepld步驟IDInt否Errorl nfo錯(cuò)誤信息Varchar(4000)否In sertTime記錄時(shí)間Date是427 系統(tǒng)資源表字段說(shuō)明數(shù)據(jù)類(lèi)型是否為空主鍵備注Resourc
34、eId資源IDInt否是主鍵,自增長(zhǎng)IDCpuI nfoCpu信息Varchar(4000)是MemoryI nfo內(nèi)存信息Varchar(4000)是DiskI nfo硬盤(pán)信息Varchar(4000)是CreateTime記錄創(chuàng)建時(shí)間date否CreateName記錄創(chuàng)建人Varchar(256)否ModifyTime記錄修改時(shí)間Date否ModifyName記錄修改人Varchar(256)否428 服務(wù)器機(jī)器表字段說(shuō)明數(shù)據(jù)類(lèi)型是否為空主鍵備注Machi neld機(jī)型IDInt否是主鍵,自增長(zhǎng)IDCpuI nfoCpu信息Varchar(4000)是MemoryI nfo內(nèi)存信息Varc
35、har(4000)是DiskI nfo硬盤(pán)信息Varchar(4000)是CreateTime記錄創(chuàng)建時(shí)間date否CreateName記錄創(chuàng)建人Varchar(256)否ModifyTime記錄修改時(shí)間Date否ModifyName記錄修改人Varchar(256)否429 服務(wù)器信息表字段說(shuō)明數(shù)據(jù)類(lèi)型是否為空主鍵備注Serverld服務(wù)器IDInt否是主鍵,自增長(zhǎng)IDServerName服務(wù)器名稱(chēng)Varchar(256)是ServerIp服務(wù)器IPVarchar(256)是CreateTime記錄創(chuàng)建時(shí)間date否CreateName記錄創(chuàng)建人Varchar(256)否ModifyTime
36、記錄修改時(shí)間Date否ModifyName記錄修改人Varchar(256)否4210系統(tǒng)管理信息表字段說(shuō)明數(shù)據(jù)類(lèi)型是否為空主鍵備注SystemId服務(wù)器IDInt否是主鍵,自增長(zhǎng)IDMachi neld機(jī)型IDInt否ResourceId資源IDInt否ServerId服務(wù)器IDInt否CreateTime記錄創(chuàng)建時(shí)間date否CreateName記錄創(chuàng)建人Varchar(256)否ModifyTime記錄修改時(shí)間Date否ModifyName記錄修改人Varchar(256)否4.2.11集群信息表字段說(shuō)明數(shù)據(jù)類(lèi)型是否為空主鍵備注Clusterld集群IDInt否是主鍵,自增長(zhǎng)IDClus
37、terName集群名稱(chēng)Varchar(256)是ClusterPath集群配置目錄Varchar(256)是Remark集群配置備注Varchar(256)是CreateTime記錄創(chuàng)建時(shí)間date否CreateName記錄創(chuàng)建人Varchar(256)否ModifyTime記錄修改時(shí)間Date否ModifyName記錄修改人Varchar(256)否4212集群列表字段說(shuō)明數(shù)據(jù)類(lèi)型是否為空主鍵備注ListId集群列表IDInt否是主鍵,自增長(zhǎng)IDClusterId集群IDInt否ServerId服務(wù)器IDInt否CreateTime記錄創(chuàng)建時(shí)間date否CreateName記錄創(chuàng)建人Varc
38、har(256)否ModifyTime記錄修改時(shí)間Date否ModifyName記錄修改人Varchar(256)否4.2.13系統(tǒng)配置表字段說(shuō)明數(shù)據(jù)類(lèi)型是否為空主鍵備注Con figId系統(tǒng)配置IDInt否是主鍵,自增長(zhǎng)IDCon figName配置名稱(chēng)Varchar(256)否Con figValue配置信息Varchar(256)否ClusterId集群IDInt否CreateTime記錄創(chuàng)建時(shí)間date否CreateName記錄創(chuàng)建人Varchar(256)否ModifyTime記錄修改時(shí)間Date否ModifyName記錄修改人Varchar(256)否4214 Hadoop參數(shù)配置
39、表字段說(shuō)明數(shù)據(jù)類(lèi)型是否為空主鍵備注Con figId系統(tǒng)配置IDInt否是主鍵,自增長(zhǎng)IDCon figName配置名稱(chēng)Varchar(256)否Con figValue配置信息Varchar(256)否ClusterId集群IDInt否CreateTime記錄創(chuàng)建時(shí)間date否CreateName記錄創(chuàng)建人Varchar(256)否ModifyTime記錄修改時(shí)間Date否ModifyName記錄修改人Varchar(256)否4.2.15 Jar配置表字段說(shuō)明數(shù)據(jù)類(lèi)型是否為空主鍵備注Con figId系統(tǒng)配置IDInt否是主鍵,自增長(zhǎng)IDCon figName配置名稱(chēng)Varchar(256)否Con figValue配置信息Varchar(256)否ClusterId集群IDInt否CreateT
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 賭博協(xié)議書(shū)范本
- 購(gòu)機(jī)買(mǎi)賣(mài)協(xié)議書(shū)范本
- 購(gòu)房借款協(xié)議書(shū)范本
- 貸款保證金協(xié)議書(shū)模板
- 購(gòu)買(mǎi)電腦協(xié)議書(shū)范本
- 訂月餅協(xié)議書(shū)范本
- 《第01節(jié) 內(nèi)能 功 熱量》教學(xué)設(shè)計(jì)
- 寧夏銀川市2020-2021學(xué)年八年級(jí)上學(xué)期期中考試物理試題【含答案解析】
- 第30屆全國(guó)中學(xué)生物理競(jìng)賽復(fù)賽試題
- 模具投資協(xié)議書(shū)范本
- 2023部編版小學(xué)語(yǔ)文五年級(jí)下冊(cè)每課教學(xué)反思
- 車(chē)輛應(yīng)急預(yù)案方案惡劣天氣
- 高級(jí)農(nóng)藝工試題及答案
- 【部編版】語(yǔ)文五年級(jí)下冊(cè)第五單元《交流平臺(tái) 初試身手》精美課件
- 枇杷文化知識(shí)講座
- 慢性肝病的綜合管理教學(xué)設(shè)計(jì)
- 山東省汽車(chē)維修工時(shí)定額(T-SDAMTIA 0001-2023)
- 《小型局域網(wǎng)組建》課件
- 浙江偉鋒藥業(yè)有限公司年產(chǎn)100噸拉米夫定、50噸恩曲他濱、30噸卡培他濱技改項(xiàng)目環(huán)境影響報(bào)告
- 公路養(yǎng)護(hù)安全作業(yè)規(guī)程-四級(jí)公路養(yǎng)護(hù)作業(yè)控制區(qū)布置
- 了解生活中常見(jiàn)的乳化現(xiàn)象
評(píng)論
0/150
提交評(píng)論