freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

并行etl工具可擴(kuò)展技術(shù)的研究與開(kāi)發(fā)(留存版)

  

【正文】 op集群的時(shí)機(jī),Job提交之后,由該層負(fù)責(zé)Job的調(diào)度(由Hadoop內(nèi)置的調(diào)度機(jī)制決定),Job的執(zhí)行情況也是通過(guò)API的方式為上層獲取。圖43自定義MR Java組件前臺(tái)界面2. 后臺(tái)實(shí)現(xiàn)后臺(tái)接收前臺(tái)傳過(guò)來(lái)的代碼,將其寫(xiě)入到特定的目錄下面,生成Java源代碼文件。 修改表結(jié)構(gòu):/ location239。216。(備注:這種類型的JOIN操作的應(yīng)用場(chǎng)景類似于SQL中IN后面跟一個(gè)子查詢的場(chǎng)景,其SELECT子句中不能有右表的字段存在。 DISTRIBUTE BY操作: 使用腳本文件:TRANSFORM操作和MAP、REDUCE操作均被設(shè)計(jì)用來(lái)使用腳本進(jìn)行數(shù)據(jù)處理。216。 COGROUP操作:2) 實(shí)際操作類:實(shí)際完成查詢操作涉及的語(yǔ)句。216。因?yàn)镺RDER BY為了保證全部的輸出有序,map端過(guò)來(lái)的所有數(shù)據(jù)都會(huì)被傳給同一個(gè)Reducer進(jìn)行reduce操作,如果在數(shù)據(jù)量大的情況下會(huì)出現(xiàn)負(fù)荷過(guò)重?zé)o法輸出結(jié)果的情況,因此屬于危險(xiǎn)操作。 JOIN操作:216。value339。216。 自定義MapReduce組件的實(shí)現(xiàn)通過(guò)兩種方式實(shí)現(xiàn):一種是用戶通過(guò)前臺(tái)界面輸入MapReduce Java代碼,然后提交給服務(wù)器端,服務(wù)器端完成相應(yīng)的編譯和打包工作;另一種是用戶通過(guò)上傳自定義MapReduce Jar包來(lái)完成相應(yīng)的工作。本文結(jié)合實(shí)際應(yīng)用需求和本系統(tǒng)的特點(diǎn),從Hive和Pig的優(yōu)化規(guī)則中選擇一部分比較常用的優(yōu)化規(guī)則作為本系統(tǒng)的優(yōu)化規(guī)則,同時(shí)會(huì)將實(shí)際應(yīng)用中歸納總結(jié)的一個(gè)優(yōu)化規(guī)則也加到本系統(tǒng)中,并且設(shè)計(jì)一套具有可擴(kuò)展性的優(yōu)化規(guī)則實(shí)現(xiàn)機(jī)制來(lái)處理上述優(yōu)化規(guī)則:一個(gè)優(yōu)化規(guī)則被抽象成一組匹配樣式以及對(duì)應(yīng)樣式的轉(zhuǎn)換操作兩部分,而尋找匹配樣式的過(guò)程被抽象成一個(gè)遍歷執(zhí)行計(jì)劃的機(jī)制和從一組匹配樣式中選擇合適樣式的機(jī)制。通過(guò)應(yīng)用合適的設(shè)計(jì)模式,包括訪問(wèn)者模式、工廠模式等,Hive將這些過(guò)程隔離開(kāi)來(lái),從而使得每個(gè)過(guò)程都成為可定制的,也就使得優(yōu)化規(guī)則的擴(kuò)展相對(duì)容易。 優(yōu)化規(guī)則的可擴(kuò)展技術(shù)本小節(jié)主要分析Hive、Pig的優(yōu)化規(guī)則及其實(shí)現(xiàn)機(jī)制,研究如何設(shè)計(jì)優(yōu)化規(guī)則以實(shí)現(xiàn)優(yōu)化規(guī)則的可擴(kuò)展,以便在實(shí)際應(yīng)用中發(fā)現(xiàn)的新的規(guī)則可以被方便地添加到已有系統(tǒng)中。因?yàn)锽/S架構(gòu)下無(wú)法對(duì)Java代碼進(jìn)行在線編譯,因此需要將Java代碼傳到服務(wù)器端來(lái)完成編譯工作,相應(yīng)的編譯信息也需要在前臺(tái)展示給用戶。 圖31 MapReduce作業(yè)執(zhí)行流程如圖31所示,在提交MapReduce作業(yè)之前,執(zhí)行作業(yè)所需的各種資源均被復(fù)制到Hadoop分布式文件系統(tǒng)中,主要包括如下三類:1) 配置信息():與作業(yè)相關(guān)的各種配置參數(shù),包括Hadoop本身的一些參數(shù)和用戶在驅(qū)動(dòng)程序中自己定義的參數(shù),這些參數(shù)往往是組件本身所需要的參數(shù),以Select組件來(lái)說(shuō),其所需參數(shù)至少要包括所選擇的字段名稱。因?yàn)榭蓴U(kuò)展的需求,本章還對(duì)會(huì)用到的表達(dá)式引擎和元數(shù)據(jù)管理技術(shù)進(jìn)行的介紹,一個(gè)好的表達(dá)式引擎和元數(shù)據(jù)管理模塊可以在功能上和性能上提升整個(gè)ETL工具的表現(xiàn)。在將處理邏輯遷移到并行框架里面來(lái)之后,因?yàn)樘幚矸绞降母淖?,?yōu)化規(guī)則也要做出相應(yīng)的改變。 HiveHive是Facebook開(kāi)發(fā)的構(gòu)建于Hadoop集群之上的數(shù)據(jù)倉(cāng)庫(kù)應(yīng)用,由FaceBook貢獻(xiàn)出來(lái),成為Apache下面的開(kāi)源項(xiàng)目。map函數(shù)的輸出為key,value鍵值對(duì)的形式,這些輸出會(huì)被排序,具有相同key的value會(huì)被放在一起。作為一個(gè)能夠并行處理海量數(shù)據(jù)的軟件框架,Hadoop主要有以下幾個(gè)優(yōu)點(diǎn):1) 高可靠性:Hadoop假設(shè)計(jì)算和存儲(chǔ)均可能失敗,因此維護(hù)多個(gè)數(shù)據(jù)副本,并保證在有任務(wù)失敗的情況下自動(dòng)進(jìn)行任務(wù)的重新分配;2) 高擴(kuò)展性:Hadoop集群的各個(gè)節(jié)點(diǎn)相互獨(dú)立,新添加的節(jié)點(diǎn)可以很方便地進(jìn)行存儲(chǔ)的負(fù)載均衡,任務(wù)也會(huì)被自動(dòng)分發(fā)給新添加的節(jié)點(diǎn),集群規(guī)??梢苑奖愕剡M(jìn)行擴(kuò)展;3) 高效性:Hadoop以并行方式工作,通過(guò)在節(jié)點(diǎn)之間動(dòng)態(tài)地移動(dòng)數(shù)據(jù)來(lái)保證各個(gè)節(jié)點(diǎn)的負(fù)載均衡,從而加快了整個(gè)作業(yè)的處理速度;4) 低成本:Hadoop是開(kāi)源的并且基于社區(qū)服務(wù)器即可搭建高性能的Hadoop集群,因此它的軟硬件成本都比較低,任何個(gè)人和機(jī)構(gòu)都可以使用。第五章是實(shí)驗(yàn)及結(jié)果分析:主要是將軟件系統(tǒng)部署在Hadoop集群之上,設(shè)計(jì)一些測(cè)試用例就上述三個(gè)方面的擴(kuò)展技術(shù)的實(shí)現(xiàn)情況進(jìn)行驗(yàn)證并對(duì)結(jié)果進(jìn)行分析。對(duì)Hive和Pig的集成成為一種快速擴(kuò)展ETL工具并行處理能力的手段,商用ETL工具的佼佼者PowerCenter集成得最好,開(kāi)源ETL工具在做這方面的嘗試但是成果有限。DataStage也提供了可定制的類Basic代碼嵌入組件[8]。大數(shù)據(jù)時(shí)代的ETL和云計(jì)算技術(shù)緊密結(jié)合,工業(yè)界和學(xué)術(shù)界在并行ETL技術(shù)的研究和開(kāi)發(fā)方面都取得了豐碩的成果。. . . .并行ETL工具可擴(kuò)展技術(shù)的研究和開(kāi)發(fā)摘 要ETL工具負(fù)責(zé)從分布的、異構(gòu)數(shù)據(jù)源中抽取數(shù)據(jù)并對(duì)其進(jìn)行清洗和轉(zhuǎn)換,最后裝載到數(shù)據(jù)集市或數(shù)據(jù)倉(cāng)庫(kù)中,是數(shù)據(jù)挖掘和聯(lián)機(jī)分析處理的基礎(chǔ)。一般的ETL工具都會(huì)提供豐富的抽取、轉(zhuǎn)換和加載功能,以滿足實(shí)際應(yīng)用的需求,然而,由于應(yīng)用場(chǎng)景的多樣性和特定邏輯的復(fù)雜性,這些ETL工具提供的通用組件往往并不能滿足用戶的需求,這就要求ETL工具必須具有一定的可擴(kuò)展性,以滿足用戶多樣化、復(fù)雜化的需求。Kettle和Talend也都提供可擴(kuò)展組件以方便用戶運(yùn)行腳本,其中Talend還支持用戶自己輸入Java代碼。基于優(yōu)化規(guī)則來(lái)進(jìn)行并行ETL流程的優(yōu)化仍舊占據(jù)主導(dǎo)地位,優(yōu)化規(guī)則實(shí)現(xiàn)機(jī)制具有好的擴(kuò)展性非常必要。第六章是總結(jié)與展望:主要是總結(jié)論文所取得的成果,并就下一步的工作進(jìn)行展望。因?yàn)樯鲜龅膬?yōu)點(diǎn),Hadoop自出現(xiàn)之初就獲得了普遍的關(guān)注和認(rèn)可,隨著Hadoop版本的越來(lái)越穩(wěn)定,越來(lái)越多的應(yīng)用被移植到Hadoop上面來(lái),Hadoop生態(tài)圈獲得了良性的發(fā)展。map端的輸出被分發(fā)到reduce端,分發(fā)以key值為依據(jù),保證具有相同key值的鍵值對(duì)被分發(fā)給同一個(gè)reduce task。Hive可以將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫(kù)表,并提供豐富的類似SQL的數(shù)據(jù)處理功能。以Hive為例,因?yàn)镠QL是一種類SQL的腳本語(yǔ)言,所以針對(duì)SQL語(yǔ)句設(shè)計(jì)的一些優(yōu)化規(guī)則(如謂詞下推、分區(qū)信息利用等)可以移植到并行框架中來(lái),同時(shí)需要對(duì)其實(shí)現(xiàn)機(jī)制進(jìn)行調(diào)整以適應(yīng)新的框架(MapReduce并行計(jì)算框架),另外,一些新的優(yōu)化規(guī)則被設(shè)計(jì)和實(shí)現(xiàn)(如列裁剪、MapJoin等)。. . . .第三章 并行ETL工具可擴(kuò)展技術(shù)的研究盡管上面介紹的ETL工具均提供了豐富的ETL組件以提供豐富的ETL處理邏輯,但是因?yàn)閿?shù)據(jù)格式的多樣、ETL需求本身的復(fù)雜性等因素,導(dǎo)致在實(shí)際使用過(guò)程中,ETL工具提供的一整套ETL組件無(wú)法完成特定的ETL工作或者即使能夠?qū)崿F(xiàn)特定ETL需求但是設(shè)計(jì)出來(lái)的流程復(fù)雜并且性能低下,這時(shí)候就需要ETL工具能夠提供給用戶對(duì)其進(jìn)行擴(kuò)展的功能,讓用戶自己實(shí)現(xiàn)一些處理邏輯并集成到現(xiàn)有ETL工具中。2) 分片信息():即輸入數(shù)據(jù)的分片信息,通過(guò)這些信息,可以了解輸入數(shù)據(jù)在集群上的分布情況,進(jìn)而選擇在合適的節(jié)點(diǎn)運(yùn)行TaskTracker以及在需要的時(shí)候可以獲悉需要的數(shù)據(jù)應(yīng)該從哪個(gè)遠(yuǎn)端節(jié)點(diǎn)拷貝到本地節(jié)點(diǎn)上來(lái)。同時(shí),多個(gè)自定義MapReduce代碼需要有個(gè)比較好的管理機(jī)制,以便用戶在需要的時(shí)候可以方便地查找和使用。從實(shí)現(xiàn)機(jī)制來(lái)開(kāi),Hive和Pig擁有相似的處理流程,均是通過(guò)ANTLR來(lái)將腳本解析為抽象語(yǔ)法樹(shù)(AST),然后從抽象語(yǔ)法樹(shù)生成邏輯執(zhí)行計(jì)劃,邏輯計(jì)劃即為各種操作構(gòu)成的有向無(wú)環(huán)圖。 Pig常用優(yōu)化規(guī)則下表列出了常用的Pig邏輯計(jì)劃優(yōu)化規(guī)則和對(duì)應(yīng)優(yōu)化規(guī)則轉(zhuǎn)換類。這樣一來(lái),整個(gè)實(shí)現(xiàn)過(guò)程被分割成相互獨(dú)立的部分,在進(jìn)行擴(kuò)展時(shí),只需要對(duì)需要的部分進(jìn)行處理。比較而言,第一種方式更簡(jiǎn)便,第二種方式需要自己編譯和打包工程,但是可以實(shí)現(xiàn)相對(duì)復(fù)雜的功能。 建表:, key2=39。 刪除表: SELECT , FROM table1 a {LEFT|RIGHT|FULL} [OUTER] JOIN table2 b on (=)。此時(shí)ORDER BY必須指定 LIMIT,否則執(zhí)行會(huì)報(bào)錯(cuò))216。 MapReduce腳本:216。 alias = COGROUP alias1 { ALL | BY expression}[INNER], alias2 { ALL | B。 alias = FILTER alias1 BY condition_expression。 SELECT * FROM table1 SORT BY id [ASC|DESC] (備注:SORT BY只保證每個(gè)Task的輸出有序)216。 SELECT FROM table1 a LEFT SEMI JOIN table2 b on (=)。(備注:外部表只刪表結(jié)構(gòu),內(nèi)部表會(huì)同時(shí)刪除數(shù)據(jù);該操作可以作為選項(xiàng)提供給用戶,在流程結(jié)束時(shí)根據(jù)此選項(xiàng)配置決定是否刪除表以及數(shù)據(jù))2) 實(shí)際操作類:實(shí)際完成對(duì)數(shù)據(jù)進(jìn)行處理所涉及的操作。) location 39。216。1. 前臺(tái)實(shí)現(xiàn)前臺(tái)界面接收與MapReduce作業(yè)相關(guān)的參數(shù),包括map數(shù)、reduce數(shù)、是否使用Combiner或Reducer以及自定義的MapReduce Java代碼等。 圖41可擴(kuò)展并行ETL工具系統(tǒng)架構(gòu)圖系統(tǒng)架構(gòu)由下至上分為四個(gè)部分:1) 平臺(tái)層:Hadoop集群,提供云存儲(chǔ)(HDFS)和并行計(jì)算(MapReduce)支持,以Hadoop API的方式供并行算法層調(diào)用。2. ,在PlanOptimizer的子類LogicalPlanOptimizer中,規(guī)則集列表被實(shí)例化為一個(gè)ArrayList,優(yōu)化規(guī)則集被按一定順序添加到該列表中。經(jīng)過(guò)優(yōu)化的邏輯計(jì)劃又被轉(zhuǎn)換成物理執(zhí)行計(jì)劃,物理執(zhí)行計(jì)劃再經(jīng)過(guò)一次優(yōu)化后,特定的拆分規(guī)則被應(yīng)用,物理計(jì)劃被劃分成一個(gè)一個(gè)的階段,分別對(duì)應(yīng)MapReduce的Map和Reduce階段。為了添加處理大數(shù)據(jù)的能力,傳統(tǒng)ETL工具基本選擇了集成已有并行ETL工具的方式,這樣比較快捷,傳統(tǒng)ETL工具主要關(guān)注如何集成,而不必再進(jìn)行并行ETL模塊的開(kāi)發(fā)??截惖紿DFS上的這些資源文件又會(huì)被分配了任務(wù)的從節(jié)點(diǎn)拷貝到本地,進(jìn)而構(gòu)造啟動(dòng)JVM的參數(shù),然后啟動(dòng)一個(gè)新的JVM來(lái)運(yùn)行任務(wù)。本章重點(diǎn)進(jìn)行并行ETL工具可擴(kuò)展技術(shù)的研究,結(jié)合實(shí)際應(yīng)用需求,提出可行的在并行ETL工具中可以應(yīng)用的可擴(kuò)展技術(shù)并總結(jié)為如下三個(gè)主要方面:可擴(kuò)展組件技術(shù)、開(kāi)源ETL工具集成技術(shù)和優(yōu)化規(guī)則可擴(kuò)展技術(shù)。為了簡(jiǎn)化工作,本論文采用開(kāi)源的表達(dá)式引擎。相對(duì)于自己編寫(xiě)MapReduce代碼,其優(yōu)點(diǎn)是學(xué)習(xí)成本低,代碼量小,用戶可以通過(guò)少數(shù)的HQL語(yǔ)句快速實(shí)現(xiàn)較為復(fù)雜的MapReduce數(shù)據(jù)處理邏輯。reduce方法包含reduce端的主要處理邏輯,每次處理一個(gè)key,Itoratorvalue形式的對(duì)象,其結(jié)果被輸出到HDFS。一個(gè)Hadoop集群主要包括一個(gè)用于管理這個(gè)文件系統(tǒng)的目錄節(jié)點(diǎn)和多個(gè)用于存儲(chǔ)實(shí)際數(shù)據(jù)的數(shù)據(jù)節(jié)點(diǎn)。具體而言:抽取主要是針對(duì)不同的數(shù)據(jù)源,充分理解數(shù)據(jù)的定義,設(shè)計(jì)不同的數(shù)據(jù)抽取方式,進(jìn)行必要的數(shù)據(jù)類型轉(zhuǎn)換,選擇合適的數(shù)據(jù)傳輸機(jī)制,如數(shù)據(jù)庫(kù)直連、通過(guò)FTP接口機(jī)等?;谏鲜隹紤]和作者參與的項(xiàng)目的實(shí)際需求,本文設(shè)計(jì)實(shí)現(xiàn)的并行ETL工具采用了B/S的軟件架構(gòu),相關(guān)的研究和開(kāi)發(fā)工作也均是基于此種模式。開(kāi)發(fā)人員基于Hadoop開(kāi)發(fā)了不少針對(duì)大數(shù)據(jù)的并行ETL工具并且這些工具均具有一定程度的可擴(kuò)展性。還有就是,查詢計(jì)劃的優(yōu)化廣泛的應(yīng)用于ETL工具中,如何設(shè)計(jì)優(yōu)化規(guī)則才能使得優(yōu)化規(guī)則具有良好的可擴(kuò)展性值得深入研究。同時(shí),在大數(shù)據(jù)時(shí)代,ETL工具通過(guò)整合云計(jì)算技術(shù)以處理海量數(shù)據(jù)。該方法包括數(shù)據(jù)的收集、整理、分析、挖掘等多個(gè)方面,最終的目的是從中獲得有價(jià)值信息并衍化出一種新的商業(yè)模式。傳統(tǒng)ETL工具中,商用的都基于 C/S 模式,開(kāi)源的本來(lái)是單機(jī)的,在向大數(shù)據(jù)處理方面做過(guò)相應(yīng)擴(kuò)展后也屬于C/S模式。Hive和Pig也都設(shè)計(jì)了自己的優(yōu)化規(guī)則并設(shè)計(jì)了特定的實(shí)現(xiàn)機(jī)制以保證規(guī)則的可擴(kuò)展[10][11]。第三章是并行ETL工具可擴(kuò)展技術(shù)的研究:主要包括自定義MapReduce代碼嵌入、Hive和Pig的集成以及優(yōu)化規(guī)則可擴(kuò)展三個(gè)方面。上述框架實(shí)現(xiàn)了分布式計(jì)算和分布式存儲(chǔ)更高層次的抽象,使用戶不用關(guān)注復(fù)雜的內(nèi)部并行工作機(jī)制、不用具備豐富的分布式系統(tǒng)知識(shí)及開(kāi)發(fā)經(jīng)驗(yàn),即可實(shí)現(xiàn)大規(guī)模分布式系統(tǒng)的部署,以及海量數(shù)據(jù)的并行處理[13]。通過(guò)MapReduce,開(kāi)發(fā)人員可以很輕易地實(shí)現(xiàn)并行計(jì)算從而可以處理海量數(shù)據(jù)。同樣的邏輯,用戶的代碼(腳本)編寫(xiě)量大幅減小,同時(shí),ETL方案可讀性大幅增加。特定的優(yōu)化規(guī)則往往還會(huì)以使用手冊(cè)的形式告知用戶,以便用戶設(shè)計(jì)方案時(shí)作為參考。本章還介紹了分布式計(jì)算技術(shù),而重點(diǎn)是現(xiàn)今被很多公司和研究機(jī)構(gòu)應(yīng)用于實(shí)際工作中的Hadoop以及基于Hadoop的一些開(kāi)源ETL工具。要完成一個(gè)MapReduce作業(yè),除了有完成相應(yīng)階段的類以外,還需要有一個(gè)驅(qū)動(dòng)程序,該驅(qū)動(dòng)程序?qū)υ撟鳂I(yè)進(jìn)行一些必要的參數(shù)配置,如輸入輸出路徑、Map階段或者Reduce階段要用到的參數(shù)等。RunJar會(huì)通過(guò)URLClassLoader加載jar文件中的資源,并使用Java反射機(jī)制調(diào)用MainClass的main方法,調(diào)用時(shí)將hadoop jar命令中其他的參數(shù)作為main方法的實(shí)參。相對(duì)于Kettle,Talend對(duì)Pig進(jìn)行了比較深入的整合,它基于Pig設(shè)計(jì)開(kāi)發(fā)了一套組件,不同的組件對(duì)應(yīng)于Pig中不同的語(yǔ)句,這些組件構(gòu)建的ETL流程被Talend自動(dòng)解析為Pig Latin腳本并通過(guò)Pig來(lái)執(zhí)行。Dispatcher實(shí)現(xiàn)類的構(gòu)造方法接收一個(gè)MapRule, NodeProcessor的參數(shù),Rule為具體的優(yōu)化規(guī)則樣式,NodeProcessor為該樣式對(duì)應(yīng)的操作;Dispatch
點(diǎn)擊復(fù)制文檔內(nèi)容
數(shù)學(xué)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1