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

正文內(nèi)容

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

  

【正文】 而是將驅(qū)動(dòng)程序和Mapper、Reducer等類一起編譯打包,后臺(tái)接收后解析jar包,查找指定的驅(qū)動(dòng)程序類并執(zhí)行其main方法。比較而言,第一種方式更簡(jiǎn)便,第二種方式需要自己編譯和打包工程,但是可以實(shí)現(xiàn)相對(duì)復(fù)雜的功能。 4) 界面層:采用Flex語(yǔ)言編寫(xiě),提供圖形用戶界面,主要包括組件區(qū)和流程編輯區(qū)以及其他的功能菜單和按鈕,用于與用戶交互。這樣一來(lái),整個(gè)實(shí)現(xiàn)過(guò)程被分割成相互獨(dú)立的部分,在進(jìn)行擴(kuò)展時(shí),只需要對(duì)需要的部分進(jìn)行處理。例如對(duì)plan:LOAD←JOIN→LOADpattern為:JOIN→LOAD匹配的結(jié)果只能是一個(gè):JOIN→LOAD4. 如果該List不為null,就會(huì)調(diào)用Rule的Transformer對(duì)象的check方法對(duì)List的元素逐個(gè)進(jìn)行檢查,如果確實(shí)適用規(guī)則,那么調(diào)用Transformer的transform方法來(lái)完成優(yōu)化。 Pig常用優(yōu)化規(guī)則下表列出了常用的Pig邏輯計(jì)劃優(yōu)化規(guī)則和對(duì)應(yīng)優(yōu)化規(guī)則轉(zhuǎn)換類。Hive將Transform分類,每一類包括一個(gè)Transform集。從實(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)圖。Talend集成Hive的方式類似于Kettle,也是通過(guò)提供寫(xiě)HQL腳本的接口給用戶的方式來(lái)實(shí)現(xiàn)通過(guò)Hive處理大數(shù)據(jù)。同時(shí),多個(gè)自定義MapReduce代碼需要有個(gè)比較好的管理機(jī)制,以便用戶在需要的時(shí)候可以方便地查找和使用。 //設(shè)置job的Reducer(myJarPath)。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)。Talend支持寫(xiě)自定義的SQL查詢和Java代碼。. . . .第三章 并行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工具中。本論文涉及到對(duì)Hive和Pig的集成,加上工具本身的內(nèi)置數(shù)據(jù)結(jié)構(gòu),因此需要統(tǒng)一管理元數(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等)。Pig Latin屬于流程式語(yǔ)言,與工作流流式的特點(diǎn)很契合。Hive可以將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫(kù)表,并提供豐富的類似SQL的數(shù)據(jù)處理功能。通過(guò)設(shè)計(jì)特定的Mapper和Reducer并編寫(xiě)相應(yīng)的驅(qū)動(dòng)程序驅(qū)動(dòng)MapReduce任務(wù)執(zhí)行,用戶可以方便地實(shí)現(xiàn)并行處理邏輯進(jìn)而在Hadoop集群上處理大數(shù)據(jù)。map端的輸出被分發(fā)到reduce端,分發(fā)以key值為依據(jù),保證具有相同key值的鍵值對(duì)被分發(fā)給同一個(gè)reduce task。DataNode通過(guò)發(fā)送心跳信息給NameNode以使其知道它是否存活,通過(guò)發(fā)送數(shù)據(jù)目錄給NameNode以使其知道它所包含的數(shù)據(jù)塊編號(hào)。因?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ā)展。數(shù)據(jù)的抽取和裝載主要涉及多樣的數(shù)據(jù)存儲(chǔ)方式和傳輸方式,數(shù)據(jù)可能被存儲(chǔ)在關(guān)系型數(shù)據(jù)庫(kù)、非關(guān)系型數(shù)據(jù)庫(kù)或者文件中,而傳輸方式則包括串行和并行,并且涉及到同步和異步的問(wèn)題。第六章是總結(jié)與展望:主要是總結(jié)論文所取得的成果,并就下一步的工作進(jìn)行展望。本論文希望開(kāi)發(fā)出一種規(guī)則定義和實(shí)現(xiàn)機(jī)制,使得開(kāi)發(fā)人員可以方便地對(duì)規(guī)則進(jìn)行擴(kuò)展。基于優(yōu)化規(guī)則來(lái)進(jìn)行并行ETL流程的優(yōu)化仍舊占據(jù)主導(dǎo)地位,優(yōu)化規(guī)則實(shí)現(xiàn)機(jī)制具有好的擴(kuò)展性非常必要。這種方式在集成Hive的同時(shí)還保留了圖形用戶界面的便捷性。Kettle和Talend也都提供可擴(kuò)展組件以方便用戶運(yùn)行腳本,其中Talend還支持用戶自己輸入Java代碼。傳統(tǒng)的ETL工具分商用和開(kāi)源兩種,主流的商用ETL工具主要有如下三種:IBM公司的Datastage、Informatica公司的PowerCenter和NCR Teradata公司的ETL Automation。一般的ETL工具都會(huì)提供豐富的抽取、轉(zhuǎn)換和加載功能,以滿足實(shí)際應(yīng)用的需求,然而,由于應(yīng)用場(chǎng)景的多樣性和特定邏輯的復(fù)雜性,這些ETL工具提供的通用組件往往并不能滿足用戶的需求,這就要求ETL工具必須具有一定的可擴(kuò)展性,以滿足用戶多樣化、復(fù)雜化的需求。通過(guò)分析開(kāi)源ETL工具Hive和Pig的優(yōu)化規(guī)則實(shí)現(xiàn)機(jī)制,設(shè)計(jì)實(shí)現(xiàn)了自己的優(yōu)化規(guī)則實(shí)現(xiàn)機(jī)制。. . . .并行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ǔ)。這種集成方式擴(kuò)展了并行ETL的功能,同時(shí)保證了系統(tǒng)能夠提供一個(gè)統(tǒng)一的圖形用戶界面。大數(shù)據(jù)時(shí)代的ETL和云計(jì)算技術(shù)緊密結(jié)合,工業(yè)界和學(xué)術(shù)界在并行ETL技術(shù)的研究和開(kāi)發(fā)方面都取得了豐碩的成果。同時(shí),數(shù)據(jù)的價(jià)值被越來(lái)越多的人認(rèn)識(shí)到,大量的數(shù)據(jù)被生成以發(fā)掘其中的價(jià)值,大數(shù)據(jù)時(shí)代的到來(lái)對(duì)數(shù)據(jù)處理技術(shù)提出了新的需求,一些傳統(tǒng)ETL工具要么必須通過(guò)大幅度提高軟硬件成本以實(shí)現(xiàn)對(duì)大數(shù)據(jù)的處理,要么根本無(wú)法滿足這些需求,并行ETL工具的出現(xiàn)使得對(duì)于大數(shù)據(jù)的處理成為現(xiàn)實(shí)。DataStage也提供了可定制的類Basic代碼嵌入組件[8]。PowerCenter提供了兩套執(zhí)行引擎,傳統(tǒng)的和并行的(Hive);另外添加了中間的解析模塊,將傳統(tǒng)的工作流解析為可被Hive執(zhí)行的形式,而用戶不需要關(guān)心具體使用哪個(gè)執(zhí)行引擎[7]。對(duì)Hive和Pig的集成成為一種快速擴(kuò)展ETL工具并行處理能力的手段,商用ETL工具的佼佼者PowerCenter集成得最好,開(kāi)源ETL工具在做這方面的嘗試但是成果有限。在實(shí)際的應(yīng)用中,一些新的規(guī)則會(huì)被歸納總結(jié)出來(lái),這就需要ETL工具能夠比較方便地對(duì)優(yōu)化規(guī)則進(jìn)行擴(kuò)展。第五章是實(shí)驗(yàn)及結(jié)果分析:主要是將軟件系統(tǒng)部署在Hadoop集群之上,設(shè)計(jì)一些測(cè)試用例就上述三個(gè)方面的擴(kuò)展技術(shù)的實(shí)現(xiàn)情況進(jìn)行驗(yàn)證并對(duì)結(jié)果進(jìn)行分析。裝載是將轉(zhuǎn)換的結(jié)果裝載到目標(biāo)數(shù)據(jù)集中,可以將其看成抽取的逆操作,涉及的方面也與抽取類似。作為一個(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ù)據(jù)信息,包括文件名、文件備份信息、文件與實(shí)際存儲(chǔ)的數(shù)據(jù)塊的對(duì)應(yīng)關(guān)系等。map函數(shù)的輸出為key,value鍵值對(duì)的形式,這些輸出會(huì)被排序,具有相同key的value會(huì)被放在一起。 并行ETLHadoop集群部署方便快捷,開(kāi)源并行計(jì)算框架MapReduce大大簡(jiǎn)化了并行計(jì)算程序的編寫(xiě)工作。 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)目。它提供一種名為Pig Latin的腳本語(yǔ)言,與Hive的實(shí)現(xiàn)機(jī)制類似,該語(yǔ)言的編譯器會(huì)把用Pig Latin編寫(xiě)的數(shù)據(jù)分析請(qǐng)求轉(zhuǎn)換為一系列經(jīng)過(guò)優(yōu)化處理的MapReduce運(yùn)算。在將處理邏輯遷移到并行框架里面來(lái)之后,因?yàn)樘幚矸绞降母淖?,?yōu)化規(guī)則也要做出相應(yīng)的改變。Pig不需要保存元數(shù)據(jù),只在使用時(shí)臨時(shí)設(shè)置,對(duì)于不同的數(shù)據(jù)可以根據(jù)需求對(duì)應(yīng)成不同的元數(shù)據(jù)。因?yàn)榭蓴U(kuò)展的需求,本章還對(duì)會(huì)用到的表達(dá)式引擎和元數(shù)據(jù)管理技術(shù)進(jìn)行的介紹,一個(gè)好的表達(dá)式引擎和元數(shù)據(jù)管理模塊可以在功能上和性能上提升整個(gè)ETL工具的表現(xiàn)。Kettle可以寫(xiě)自定義的SQL查詢、JavaScript和正則表達(dá)式。 圖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ù)至少要包括所選擇的字段名稱。 //設(shè)置job的Mapper ()。因?yàn)锽/S架構(gòu)下無(wú)法對(duì)Java代碼進(jìn)行在線編譯,因此需要將Java代碼傳到服務(wù)器端來(lái)完成編譯工作,相應(yīng)的編譯信息也需要在前臺(tái)展示給用戶。其實(shí)現(xiàn)機(jī)制是通過(guò)Hive提供的JDBC數(shù)據(jù)庫(kù)接口來(lái)操作Hive數(shù)據(jù)表。 優(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)中。表31 Hive常用邏輯優(yōu)化規(guī)則參數(shù)優(yōu)化規(guī)則轉(zhuǎn)換類優(yōu)化規(guī)則ColumnPruner列裁剪PredicatePushDown謂詞下推PartitionPruner盡早執(zhí)行只取特定分區(qū)的操作PartitionConditionRemover移除不必要的分區(qū)條件RewriteGBUsingIndex基于索引的Group By,如果處理的字段有索引,利用這些索引信息GroupByOptimizer基于分桶的Group By優(yōu)化當(dāng)SELECT子句中標(biāo)明/*+ MAPJOIN() */時(shí)使用MapJoinProcessor人為指定使用MapJoin,Hive也可以通過(guò)自動(dòng)檢測(cè)來(lái)判斷是否需要用Map端JoinBucketMapJoinOptimizer分桶Map端Join(數(shù)據(jù)分了桶時(shí)使用)SortedMergeBucketMapJoinOptimizer分桶Map端Sorted MergeJoin(數(shù)據(jù)本身有序)默認(rèn)使用UnionProcessor看UNION ALL操作的子查詢是否都在map端完成,并記錄相應(yīng)的情況 Hive優(yōu)化規(guī)則實(shí)現(xiàn)過(guò)程優(yōu)化規(guī)則轉(zhuǎn)換類均實(shí)現(xiàn)Transform接口,該接口只有一個(gè)transform方法,轉(zhuǎn)換類實(shí)現(xiàn)具體的轉(zhuǎn)換邏輯。通過(guò)應(yīng)用合適的設(shè)計(jì)模式,包括訪問(wèn)者模式、工廠模式等,Hive將這些過(guò)程隔離開(kāi)來(lái),從而使得每個(gè)過(guò)程都成為可定制的,也就使得優(yōu)化規(guī)則的擴(kuò)展相對(duì)容易。所有匹配子結(jié)構(gòu)的結(jié)點(diǎn)都被添加到matchedNodes里面,而上面的match(Operator planNode, Operator patternNode)方法里面都會(huì)檢查machedNodes里面是否已經(jīng)包含了planNode,所以,不會(huì)有兩個(gè)子結(jié)構(gòu)公用一個(gè)結(jié)點(diǎn)。本文結(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ī)制。3) 應(yīng)用邏輯層:此層包含了ETL流程解析模塊,前臺(tái)的流程XML文件被解析構(gòu)成操作樹(shù),流程優(yōu)化模塊封裝了優(yōu)化規(guī)則處理功能,會(huì)對(duì)操作樹(shù)進(jìn)行優(yōu)化;之后任務(wù)調(diào)度模塊負(fù)責(zé)按照各任務(wù)的先后關(guān)系調(diào)度任務(wù)的執(zhí)行;元數(shù)據(jù)管理模塊負(fù)責(zé)處理元數(shù)據(jù)的轉(zhuǎn)化和自動(dòng)生成。 自定義MapReduce組件的實(shí)現(xiàn)通過(guò)兩種方式實(shí)現(xiàn):一種是用戶通過(guò)前臺(tái)界面輸入MapReduce Java代碼,然后提交給服務(wù)器端,服務(wù)器端完成相應(yīng)的編譯和打包工作;另一種是用戶通過(guò)上傳自定義MapReduce Jar包來(lái)完成相應(yīng)的工作。(說(shuō)明:主工程jar包中包含了自定義MR Java代碼的Driver、Mapper、)如果編譯不通過(guò),讀取上述輸出源中的錯(cuò)誤信息并發(fā)送給前臺(tái)展示。216。value339。, key2=39。216。 SELECT [DISTINCT] column_exp1, column_exp1,… from table1。 JOIN操作:)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)操作。 LIMIT操作:216。 設(shè)置元數(shù)據(jù):alias=LOAD 39。2) 實(shí)際操作類:實(shí)際完成查詢操作涉及的語(yǔ)句。 | 39。 COGROUP操作: 區(qū)別于Hive的GROUP BY操作,Pig的GROUP操作確實(shí)只完成了聚集的操作,并沒(méi)有進(jìn)行匯總。216。 USING子句用來(lái)指定序列化和反序列化的方式,可使用內(nèi)嵌的也可以使用自定義的; 使用腳本文件:TRANSFORM操作和MAP、REDUCE操作均
點(diǎn)擊復(fù)制文檔內(nèi)容
數(shù)學(xué)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1