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

正文內(nèi)容

并行etl工具可擴(kuò)展技術(shù)的研究與開發(fā)-wenkub.com

2025-06-21 03:30 本頁面
   

【正文】 COGROUP操作: 區(qū)別于Hive的GROUP BY操作,Pig的GROUP操作確實(shí)只完成了聚集的操作,并沒有進(jìn)行匯總。 | 39。216。2) 實(shí)際操作類:實(shí)際完成查詢操作涉及的語句。 USING子句用來指定序列化和反序列化的方式,可使用內(nèi)嵌的也可以使用自定義的; 設(shè)置元數(shù)據(jù):alias=LOAD 39。 使用腳本文件:TRANSFORM操作和MAP、REDUCE操作均被設(shè)計用來使用腳本進(jìn)行數(shù)據(jù)處理。216。216。 LIMIT操作: DISTRIBUTE BY操作:因為ORDER BY為了保證全部的輸出有序,map端過來的所有數(shù)據(jù)都會被傳給同一個Reducer進(jìn)行reduce操作,如果在數(shù)據(jù)量大的情況下會出現(xiàn)負(fù)荷過重?zé)o法輸出結(jié)果的情況,因此屬于危險操作。 ORDER BY操作:)216。(備注:這種類型的JOIN操作的應(yīng)用場景類似于SQL中IN后面跟一個子查詢的場景,其SELECT子句中不能有右表的字段存在。 JOIN操作:216。 SELECT [DISTINCT] column_exp1, column_exp1,… from table1。216。216。 ALTER TABLE tableName CHANGE [COLUMN] col_old_name col_new_name column_type [COMMENT col_ment] [FIRST|AFTER column_name]。, key2=39。/ location239。value339。value239。 修改表結(jié)構(gòu):216。3. 處理流程圖46 自定義MR Jar組件執(zhí)行流程 并行ETL工具的集成對Hive和Pig的集成主要考慮以下幾個方面的問題:功能組件的設(shè)計、元數(shù)據(jù)處理的遷移和管理、工作流的解析。(說明:主工程jar包中包含了自定義MR Java代碼的Driver、Mapper、)如果編譯不通過,讀取上述輸出源中的錯誤信息并發(fā)送給前臺展示。圖43自定義MR Java組件前臺界面2. 后臺實(shí)現(xiàn)后臺接收前臺傳過來的代碼,將其寫入到特定的目錄下面,生成Java源代碼文件。 自定義MapReduce組件的實(shí)現(xiàn)通過兩種方式實(shí)現(xiàn):一種是用戶通過前臺界面輸入MapReduce Java代碼,然后提交給服務(wù)器端,服務(wù)器端完成相應(yīng)的編譯和打包工作;另一種是用戶通過上傳自定義MapReduce Jar包來完成相應(yīng)的工作。 部署架構(gòu) 圖42 軟件系統(tǒng)部署架構(gòu)該系統(tǒng)的軟件架構(gòu)被設(shè)計成B/S架構(gòu),一是因為市場上沒有基于B/S架構(gòu)的并行ETL工具,二是因為相對于C/S架構(gòu),B/S架構(gòu)具有一些突出的優(yōu)點(diǎn):該架構(gòu)使用網(wǎng)絡(luò)瀏覽器作為統(tǒng)一的客戶端,系統(tǒng)功能實(shí)現(xiàn)的核心部分被集中部署到服務(wù)器上,使得系統(tǒng)的開發(fā)、維護(hù)和使用被較大地簡化。3) 應(yīng)用邏輯層:此層包含了ETL流程解析模塊,前臺的流程XML文件被解析構(gòu)成操作樹,流程優(yōu)化模塊封裝了優(yōu)化規(guī)則處理功能,會對操作樹進(jìn)行優(yōu)化;之后任務(wù)調(diào)度模塊負(fù)責(zé)按照各任務(wù)的先后關(guān)系調(diào)度任務(wù)的執(zhí)行;元數(shù)據(jù)管理模塊負(fù)責(zé)處理元數(shù)據(jù)的轉(zhuǎn)化和自動生成。上層按照MapReduc作業(yè)的依賴關(guān)系控制Job提交給Hadoop集群的時機(jī),Job提交之后,由該層負(fù)責(zé)Job的調(diào)度(由Hadoop內(nèi)置的調(diào)度機(jī)制決定),Job的執(zhí)行情況也是通過API的方式為上層獲取。本文結(jié)合實(shí)際應(yīng)用需求和本系統(tǒng)的特點(diǎn),從Hive和Pig的優(yōu)化規(guī)則中選擇一部分比較常用的優(yōu)化規(guī)則作為本系統(tǒng)的優(yōu)化規(guī)則,同時會將實(shí)際應(yīng)用中歸納總結(jié)的一個優(yōu)化規(guī)則也加到本系統(tǒng)中,并且設(shè)計一套具有可擴(kuò)展性的優(yōu)化規(guī)則實(shí)現(xiàn)機(jī)制來處理上述優(yōu)化規(guī)則:一個優(yōu)化規(guī)則被抽象成一組匹配樣式以及對應(yīng)樣式的轉(zhuǎn)換操作兩部分,而尋找匹配樣式的過程被抽象成一個遍歷執(zhí)行計劃的機(jī)制和從一組匹配樣式中選擇合適樣式的機(jī)制。 小結(jié)本章研究了并行ETL的可擴(kuò)展技術(shù),分為三個主要方面:可擴(kuò)展組件技術(shù)、并行ETL工具集成技術(shù)和優(yōu)化規(guī)則可擴(kuò)展技術(shù),確定了實(shí)現(xiàn)三種技術(shù)的可行方案。所有匹配子結(jié)構(gòu)的結(jié)點(diǎn)都被添加到matchedNodes里面,而上面的match(Operator planNode, Operator patternNode)方法里面都會檢查machedNodes里面是否已經(jīng)包含了planNode,所以,不會有兩個子結(jié)構(gòu)公用一個結(jié)點(diǎn)。優(yōu)化時,按順序取出規(guī)則集來對計劃進(jìn)行檢查,發(fā)現(xiàn)可以優(yōu)化的地方就進(jìn)行優(yōu)化,如此反復(fù),直到確定沒有匹配的地方或者到達(dá)迭代次數(shù)的上限(缺省500次,但是HExecutionEngine在初始化LogicalPlanOptimizer的時候?qū)⑵湓O(shè)為了100,只有設(shè)得小于1才會用缺省值),然后換下一個規(guī)則集。通過應(yīng)用合適的設(shè)計模式,包括訪問者模式、工廠模式等,Hive將這些過程隔離開來,從而使得每個過程都成為可定制的,也就使得優(yōu)化規(guī)則的擴(kuò)展相對容易。每個Transform的實(shí)現(xiàn)類都依賴一個Dispatcher接口的實(shí)現(xiàn)類和一個GraphWalker接口的實(shí)現(xiàn)類,前者負(fù)責(zé)匹配優(yōu)化規(guī)則,后者負(fù)責(zé)指定遍歷邏輯計劃的方式。表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() */時使用MapJoinProcessor人為指定使用MapJoin,Hive也可以通過自動檢測來判斷是否需要用Map端JoinBucketMapJoinOptimizer分桶Map端Join(數(shù)據(jù)分了桶時使用)SortedMergeBucketMapJoinOptimizer分桶Map端Sorted MergeJoin(數(shù)據(jù)本身有序)默認(rèn)使用UnionProcessor看UNION ALL操作的子查詢是否都在map端完成,并記錄相應(yīng)的情況 Hive優(yōu)化規(guī)則實(shí)現(xiàn)過程優(yōu)化規(guī)則轉(zhuǎn)換類均實(shí)現(xiàn)Transform接口,該接口只有一個transform方法,轉(zhuǎn)換類實(shí)現(xiàn)具體的轉(zhuǎn)換邏輯。相鄰的Map任務(wù)和Reduce任務(wù)構(gòu)成一個MapReduce作業(yè)。 優(yōu)化規(guī)則的可擴(kuò)展技術(shù)本小節(jié)主要分析Hive、Pig的優(yōu)化規(guī)則及其實(shí)現(xiàn)機(jī)制,研究如何設(shè)計優(yōu)化規(guī)則以實(shí)現(xiàn)優(yōu)化規(guī)則的可擴(kuò)展,以便在實(shí)際應(yīng)用中發(fā)現(xiàn)的新的規(guī)則可以被方便地添加到已有系統(tǒng)中。Kettle提供一個名為“Pig Script Executor”的組件以實(shí)現(xiàn)在Hadoop集群上執(zhí)行指定的Pig Latin腳本文件。其實(shí)現(xiàn)機(jī)制是通過Hive提供的JDBC數(shù)據(jù)庫接口來操作Hive數(shù)據(jù)表。同時,現(xiàn)有并行ETL工具均以腳本方式運(yùn)行,不方便用戶構(gòu)建和管理ETL流程,構(gòu)建ETL流程的過程也不直觀,并且,這些并行ETL工具均無法提供作業(yè)的定時調(diào)度功能,無法真正作為一個完整的ETL工具使用。因為B/S架構(gòu)下無法對Java代碼進(jìn)行在線編譯,因此需要將Java代碼傳到服務(wù)器端來完成編譯工作,相應(yīng)的編譯信息也需要在前臺展示給用戶。第二種方式的實(shí)現(xiàn)機(jī)制是將包含驅(qū)動程序、MapReduce程序的Java工程打包成jar文件并放到集群中的某個節(jié)點(diǎn)上特定目錄下,然后執(zhí)行Hadoop的jar命令來運(yùn)行作業(yè)。 //設(shè)置job的Mapper ()。實(shí)際使用中,可以通過兩種方式指定jar文件,一種是在驅(qū)動程序中使用JobConf類的setJar()方法來指定,另一種是通過Hadoop的jar命令來指定jar文件。 圖31 MapReduce作業(yè)執(zhí)行流程如圖31所示,在提交MapReduce作業(yè)之前,執(zhí)行作業(yè)所需的各種資源均被復(fù)制到Hadoop分布式文件系統(tǒng)中,主要包括如下三類:1) 配置信息():與作業(yè)相關(guān)的各種配置參數(shù),包括Hadoop本身的一些參數(shù)和用戶在驅(qū)動程序中自己定義的參數(shù),這些參數(shù)往往是組件本身所需要的參數(shù),以Select組件來說,其所需參數(shù)至少要包括所選擇的字段名稱。本論文研究如何為基于B/S架構(gòu)的并行ETL工具添加一個可定制的組件,該組件可以接受自定義的MapReduce代碼,因此在使用中如果出現(xiàn)新的需求,可以不用重新編譯、打包和部署工程。Kettle可以寫自定義的SQL查詢、JavaScript和正則表達(dá)式。1 可擴(kuò)展組件技術(shù)商用ETL工具本身提供的組件極為豐富,盡管如此,它們也還是在可定制方面提供了相應(yīng)的支持。因為可擴(kuò)展的需求,本章還對會用到的表達(dá)式引擎和元數(shù)據(jù)管理技術(shù)進(jìn)行的介紹,一個好的表達(dá)式引擎和元數(shù)據(jù)管理模塊可以在功能上和性能上提升整個ETL工具的表現(xiàn)。這一點(diǎn)相對于B/S架構(gòu)有如下缺點(diǎn):用戶需要安裝特定的客戶端并進(jìn)行相應(yīng)的配置才能使用,而有些配置會相對復(fù)雜。Pig不需要保存元數(shù)據(jù),只在使用時臨時設(shè)置,對于不同的數(shù)據(jù)可以根據(jù)需求對應(yīng)成不同的元數(shù)據(jù)。在經(jīng)過一番調(diào)研和測試,選擇了功能和性能都滿足要求的Fel。在將處理邏輯遷移到并行框架里面來之后,因為處理方式的改變,優(yōu)化規(guī)則也要做出相應(yīng)的改變。 優(yōu)化規(guī)則在不進(jìn)行優(yōu)化的前提下,針對相同的ETL需求,使用相同的ETL工具,因為對工具熟悉程度的差異、對需求理解程度的差異等各方面的緣故,不同的用戶會設(shè)計出不同的ETL方案,不同方案的執(zhí)行效率可能會有比較大的差異。它提供一種名為Pig Latin的腳本語言,與Hive的實(shí)現(xiàn)機(jī)制類似,該語言的編譯器會把用Pig Latin編寫的數(shù)據(jù)分析請求轉(zhuǎn)換為一系列經(jīng)過優(yōu)化處理的MapReduce運(yùn)算。如果將最后的結(jié)果也以Hive數(shù)據(jù)表的形式存儲在HDFS上面,那么這種ETL方式便是上文提到的ELT,即將數(shù)據(jù)抽取并載入到Hive中最后進(jìn)行數(shù)據(jù)的轉(zhuǎn)換。 HiveHive是Facebook開發(fā)的構(gòu)建于Hadoop集群之上的數(shù)據(jù)倉庫應(yīng)用,由FaceBook貢獻(xiàn)出來,成為Apache下面的開源項目。Hive和Pig均是開源的并行ETL工具,它們提供腳本給用戶來設(shè)計ETL處理流程,這些腳本被解析成MapReduce任務(wù)進(jìn)而可以在Hadoop集群上執(zhí)行。 并行ETLHadoop集群部署方便快捷,開源并行計算框架MapReduce大大簡化了并行計算程序的編寫工作。2. MapReduce編程模型MapReduce將并行計算分成兩個相互關(guān)聯(lián)的階段:map階段和reduce階段,分別對應(yīng)一個Mapper類和Reducer類。map函數(shù)的輸出為key,value鍵值對的形式,這些輸出會被排序,具有相同key的value會被放在一起。在HDFS中,一個文件在被分成若干個數(shù)據(jù)塊并存儲到不同數(shù)據(jù)節(jié)點(diǎn)的同時,每個數(shù)據(jù)塊又有若干冗余,這些冗余同樣被存儲在不同的數(shù)據(jù)節(jié)點(diǎn)上以保證單節(jié)點(diǎn)磁盤故障等問題不會影響整個集群上數(shù)據(jù)的安全。它保存了文件的元數(shù)據(jù)信息,包括文件名、文件備份信息、文件與實(shí)際存儲的數(shù)據(jù)塊的對應(yīng)關(guān)系等。目錄節(jié)點(diǎn)與數(shù)據(jù)節(jié)點(diǎn)是不同的邏輯概念,在實(shí)際的物理集群上,它們可以是同一物理節(jié)點(diǎn)。作為一個能夠并行處理海量數(shù)據(jù)的軟件框架,Hadoop主要有以下幾個優(yōu)點(diǎn):1) 高可靠性:Hadoop假設(shè)計算和存儲均可能失敗,因此維護(hù)多個數(shù)據(jù)副本,并保證在有任務(wù)失敗的情況下自動進(jìn)行任務(wù)的重新分配;2) 高擴(kuò)展性:Hadoop集群的各個節(jié)點(diǎn)相互獨(dú)立,新添加的節(jié)點(diǎn)可以很方便地進(jìn)行存儲的負(fù)載均衡,任務(wù)也會被自動分發(fā)給新添加的節(jié)點(diǎn),集群規(guī)??梢苑奖愕剡M(jìn)行擴(kuò)展;3) 高效性:Hadoop以并行方式工作,通過在節(jié)點(diǎn)之間動態(tài)地移動數(shù)據(jù)來保證各個節(jié)點(diǎn)的負(fù)載均衡,從而加快了整個作業(yè)的處理速度;4) 低成本:Hadoop是開源的并且基于社區(qū)服務(wù)器即可搭建高性能的Hadoop集群,因此它的軟硬件成本都比較低,任何個人和機(jī)構(gòu)都可以使用。而隨著數(shù)據(jù)倉庫功能的日益強(qiáng)大,ETL逐漸演化出一種ELT的實(shí)現(xiàn)方式,抽取的數(shù)據(jù)不再通過中間的處理而是直接載入到數(shù)據(jù)倉庫中,對數(shù)據(jù)的轉(zhuǎn)化在數(shù)據(jù)倉庫中完成,其處理結(jié)果也就直接保存在了數(shù)據(jù)倉庫中。裝載是將轉(zhuǎn)換的結(jié)果裝載到目標(biāo)數(shù)據(jù)集中,可以將其看成抽取的逆操作,涉及的方面也與抽取類似。清洗可以在抽取的過程中進(jìn)行,也可以作為轉(zhuǎn)換的組成部分,主要是將有問題的紀(jì)錄剔除出來。第五章是實(shí)驗及結(jié)果分析:主要是將軟件系統(tǒng)部署在Hadoop集群之上,設(shè)計一些測試用例就上述三個方面的擴(kuò)展技術(shù)的實(shí)現(xiàn)情況進(jìn)行驗證并對結(jié)果進(jìn)行分析。 論文結(jié)構(gòu)本論文的組織結(jié)構(gòu)如下:第一章是緒論:首先說明了課題的研究背景和意義,接著對相關(guān)技術(shù)的現(xiàn)狀進(jìn)行了分析,最后介紹了作者的主要工作和論文結(jié)構(gòu)。在實(shí)際的應(yīng)用中,一些新的規(guī)則會被歸納總結(jié)出來,這就需要ETL工具能夠比較方便地對優(yōu)化規(guī)則進(jìn)行擴(kuò)展。MapReduce計算框架使開發(fā)人員可以方便地實(shí)現(xiàn)并行計算,本文希望提供一種自定義MapReduce代碼的嵌入方案,以便開發(fā)人員方便地擴(kuò)展ETL功能以應(yīng)對比較特殊的應(yīng)用場景或者方便地利用已有成果。對Hive和Pig的集成成為一種快速擴(kuò)展ETL工具并行處理能力的手段,商用ETL工具的佼佼者PowerCenter集成得最好,開源ETL工具在做這方面的嘗試但是成果有限。商用ETL工具利用基于代價的優(yōu)化器優(yōu)化查詢計劃,但是在最初也都是使用基于規(guī)則的優(yōu)化器。PowerCenter提供了兩套執(zhí)行引擎,傳統(tǒng)的和并行的(Hive);另外添加了中間的解析模塊,將傳統(tǒng)的工作流解析為可被Hive執(zhí)行的形式,而用戶不需要關(guān)心具體使用哪個執(zhí)行引擎[7]。Hive是基于Hadoop的大規(guī)模數(shù)據(jù)處理工具,它提供類SQL的腳本語言HQL,該工具提供了常用的關(guān)系操作、表達(dá)式操作和內(nèi)置函數(shù),并支持用戶以UDF和嵌入自定義腳本的形式對工具進(jìn)行擴(kuò)展[3] 。DataStage也提供了可定制的類Basic代碼嵌入組件[8]。Teradata的ETL Automation采用命令行的方式操作,只提供了兩種簡單的GUI:一種用來定義和管
點(diǎn)擊復(fù)制文檔內(nèi)容
數(shù)學(xué)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1