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

正文內(nèi)容

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

2025-06-27 03:30本頁面
  

【正文】 alias = COGROUP alias1 { ALL | BY expression}[INNER], alias2 { ALL | B。216。Hive的絕大多數(shù)基本操作都離不開SELECT操作,因此,其GROUP BY必須借助SELECT才能完成聚集匯總的操作。merge39。collected39。 GROUP操作: alias = FILTER alias1 BY condition_expression。216。但是這種靈活性在字段數(shù)較多邏輯較復(fù)雜的時(shí)候容易出錯(cuò),因此本次集成將嚴(yán)格定義元數(shù)據(jù)。 schema在省略的情況下會(huì)根據(jù)默認(rèn)的行分隔符和字段分隔符以及默認(rèn)的數(shù)據(jù)類型來解析數(shù)據(jù),同時(shí)生成的元數(shù)據(jù)也沒有字段名信息。data39。216。(備注:因?yàn)槭腔贖adoop Streaming技術(shù)實(shí)現(xiàn),而Streaming的性能相對(duì)于寫UDF要低不少,所以暫時(shí)不予考慮)基于上述分析,本文共實(shí)現(xiàn)10個(gè)Hive組件,其名稱及配置參數(shù)如下表所示:表41 Hive組件及配置參數(shù)示意表操作名參數(shù)參數(shù)意義Readlocation輸入數(shù)據(jù)路徑fieldSep字段分隔符lineSep行分隔符isInternal是否內(nèi)部表partitionKeys分區(qū)鍵tableName表名fieldsInfo字段信息,包括字段名和字段類型Setparameters參數(shù)名和對(duì)應(yīng)的參數(shù)值addPaths添加的資源對(duì)應(yīng)的文件路徑tempFunctions臨時(shí)函數(shù)名以及對(duì)應(yīng)的UDF類SelectoutputExpressions輸出字段信息,包括表達(dá)式、表達(dá)式別名和表達(dá)式返回值類型useDistinct是否去重WhereconditionExpression過濾表達(dá)式GroupByoutputInfo輸出字段信息,包括表達(dá)式、表達(dá)式別名和表達(dá)式返回值類型aggKeys聚集鍵值JoinoutputInfo輸出字段信息,包括表達(dá)式、表達(dá)式別名和表達(dá)式返回值類型joinType關(guān)聯(lián)類型,包括內(nèi)連接、外連接和左半連接joinExpression關(guān)聯(lián)表達(dá)式,=SortByorder_sortExpressionOrder By或者Sort By表達(dá)式信息cluster_distributeExpressionCluster By或者Distribute By表達(dá)式信息LimitlimitNum輸出條數(shù)UnionAlloutputInfo輸出字段信息,包括字段名和字段類型Storelocation輸入數(shù)據(jù)路徑fieldSep字段分隔符lineSep行分隔符isInternal是否內(nèi)部表partitionKeys分區(qū)鍵tableName表名fieldsInfo字段信息,包括字段名和字段類型overwrite是否覆蓋原來的數(shù)據(jù)2. Pig的基本操作對(duì)于Pig,因?yàn)镻ig Latin本身屬于流程式語言,所以只需將其實(shí)現(xiàn)不同功能的語句對(duì)應(yīng)成不同的功能組件即可,然后按照該語句的語法結(jié)構(gòu),為功能組件配置對(duì)應(yīng)的參數(shù)輸入接口即可。 MapReduce腳本: 創(chuàng)建臨時(shí)函數(shù)名:CREATE TEMPORARY FUNCTION funcName AS ‘’。 添加UDF的jar文件:ADD JAR ‘/path/’。 參數(shù)設(shè)置:SET =strict。 SELECT col1, col2 FROM table1 LIMIT limit_num。 SELECT * FROM table1 CLUSTER BY id;(備注:相當(dāng)于SORT BY和DISTRIBUTE BY一起對(duì)同樣的字段進(jìn)行操作;因?yàn)镺RDER BY、SORT BY、DISTRIBUTE BY和CLUSTER BY功能上有重合,所以將它們合并到一個(gè)組件中并在組件中內(nèi)置其相互關(guān)系,保證用戶不會(huì)同時(shí)使用有沖突的操作)216。 SELECT * FROM table1 DISTRIBUTE BY id;(備注:將具有同樣id的記錄放到同一個(gè)節(jié)點(diǎn)上)216。 SELECT * FROM table1 SORT BY id [ASC|DESC] (備注:SORT BY只保證每個(gè)Task的輸出有序)216。此時(shí)ORDER BY必須指定 LIMIT,否則執(zhí)行會(huì)報(bào)錯(cuò))216。 = strict 模式下,一些危險(xiǎn)的查詢操作不能進(jìn)行。 SELECT * FROM table1 ORDER BY id [ASC|DESC]。(備注:select_Statement表示SELECT查詢語句)216。 UNION ALL操作:盡管目前像SELECT /*+ MAPJOIN(things) */ sales.*, things.* FROM salse JOIN things ON (=) 這樣的語句還可以使用并且在某些情況下生成的MR查詢計(jì)劃仍要優(yōu)于自動(dòng)優(yōu)化生成的MR查詢計(jì)劃,但是自動(dòng)優(yōu)化技術(shù)的優(yōu)勢(shì)已經(jīng)顯現(xiàn),對(duì)于相對(duì)簡(jiǎn)單的查詢,自動(dòng)優(yōu)化的結(jié)果已經(jīng)完全滿足需求,因此,本論文將不考慮在組件中添加對(duì)這樣一種形式的查詢語句的支持。另外,隨著Hive優(yōu)化機(jī)制的日益完善,一些自動(dòng)化的識(shí)別技術(shù)被應(yīng)用于對(duì)系統(tǒng)資源和輸入數(shù)據(jù)規(guī)模等信息的探查,進(jìn)而基于這些信息進(jìn)行查詢計(jì)劃的優(yōu)化。 SELECT FROM table1 a LEFT SEMI JOIN table2 b on (=)。 SELECT , FROM table1 a {LEFT|RIGHT|FULL} [OUTER] JOIN table2 b on (=)。216。 WHERE操作: SELECT aggKey1,aggKey2,…,aggExpression1, aggExpression2… FROM tableName GROUP BY aggKey1,aggKey2,…。216。 SELECT操作: INSERT 操作:(備注:外部表只刪表結(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)行處理所涉及的操作。 刪除表: 考慮到實(shí)際應(yīng)用中修改表結(jié)構(gòu)的操作并不常用,因此暫不考慮這部分操作。 (備注:對(duì)列的改變只會(huì)修改 Hive 的元數(shù)據(jù),而不會(huì)改變實(shí)際數(shù)據(jù)。value239。value139。) location 39。, key2=39。 PARTITION (key1=39。) location 39。, key2=39。 ALTER TABLE tableName ADD PARTITION (key1=39。 ALTER TABLE tableName ADD COLUMNS (col3 type3, col4 type4)。 ALTER TABLE tableName RENAME TO newname。216。 建表:下面的圖示顯示了粒子操作劃分的基本思路:圖47 HQL腳本拆解流程示例在具體的實(shí)現(xiàn)方面,對(duì)Hive的基本操作進(jìn)行分類和篩選,分類的結(jié)果如下:1) 元數(shù)據(jù)操作類:主要包括建表、修改表結(jié)構(gòu)、刪除表三種語句。 功能組件的實(shí)現(xiàn)針對(duì)Hive和Pig各自不同的語言特點(diǎn),設(shè)計(jì)不同的功能組件,使得由這些功能組件構(gòu)建的ETL工作流(即一個(gè)有向無環(huán)圖)可以被解析成具有相同邏輯的Hive或Pig腳本并能提交給執(zhí)行引擎執(zhí)行。圖45 自定義MR Jar組件前臺(tái)界面2. 后臺(tái)實(shí)現(xiàn)后臺(tái)接收前臺(tái)傳過來的參數(shù)和jar文件,將jar文件放到特定的目錄,并利用自定義的類加載器加載jar包中的類,然后利用Java反射機(jī)制運(yùn)行驅(qū)動(dòng)類中的main方法。3. 處理流程圖44 自定義MR Java組件執(zhí)行流程 自定義MR Jar組件ETL工具不提供驅(qū)動(dòng)程序,而是將驅(qū)動(dòng)程序和Mapper、Reducer等類一起編譯打包,后臺(tái)接收后解析jar包,查找指定的驅(qū)動(dòng)程序類并執(zhí)行其main方法。構(gòu)建完畢后,發(fā)送成功的信息給前臺(tái),而這個(gè)Jar文件的路徑通過setJar()方法指定給MapReduce任務(wù)。通過JavaCompiler進(jìn)行編譯時(shí)可以指定一個(gè)輸出源,編譯過程中出現(xiàn)的錯(cuò)誤信息將被寫入到這個(gè)輸出源。1. 前臺(tái)實(shí)現(xiàn)前臺(tái)界面接收與MapReduce作業(yè)相關(guān)的參數(shù),包括map數(shù)、reduce數(shù)、是否使用Combiner或Reducer以及自定義的MapReduce Java代碼等。比較而言,第一種方式更簡(jiǎn)便,第二種方式需要自己編譯和打包工程,但是可以實(shí)現(xiàn)相對(duì)復(fù)雜的功能。在本系統(tǒng)中,用戶在瀏覽器中構(gòu)建ETL處理流程,流程對(duì)應(yīng)的XML文件通過HttpService技術(shù)傳遞給服務(wù)器端,服務(wù)器端解析XML文件并通過HttpService返回轉(zhuǎn)換完腳本的流程文件,瀏覽器端再解析該流程文件并顯示給用戶,用戶可以對(duì)腳本進(jìn)行微調(diào),之后再選擇運(yùn)行流程,服務(wù)器端就會(huì)解析流程并按照一定的順序執(zhí)行,執(zhí)行的情況還會(huì)反饋給用戶。用戶只需要通過在自己的PC機(jī)上只要安裝一個(gè)瀏覽器(Browser),如FireFox或者Internet Explorer,就可以方便地使用服務(wù)器端的應(yīng)用,而不必像在C/S架構(gòu)下那樣需要用戶安裝龐大的軟件客戶端并進(jìn)行復(fù)雜的系統(tǒng)配置。界面層與應(yīng)用邏輯層通過HttpService的方式交互。 4) 界面層:采用Flex語言編寫,提供圖形用戶界面,主要包括組件區(qū)和流程編輯區(qū)以及其他的功能菜單和按鈕,用于與用戶交互。Hive和Pig放在這一層對(duì)HQL和Pig Latin腳本執(zhí)行算法提供支持。導(dǎo)入的數(shù)據(jù)和Job執(zhí)行的結(jié)果均保存在HDFS上,由該層進(jìn)行存儲(chǔ)的負(fù)載均衡。 圖41可擴(kuò)展并行ETL工具系統(tǒng)架構(gòu)圖系統(tǒng)架構(gòu)由下至上分為四個(gè)部分:1) 平臺(tái)層:Hadoop集群,提供云存儲(chǔ)(HDFS)和并行計(jì)算(MapReduce)支持,以Hadoop API的方式供并行算法層調(diào)用。這樣一來,整個(gè)實(shí)現(xiàn)過程被分割成相互獨(dú)立的部分,在進(jìn)行擴(kuò)展時(shí),只需要對(duì)需要的部分進(jìn)行處理。因?yàn)镠ive和Pig都基于MapReduce計(jì)算框架,因此優(yōu)化規(guī)則的設(shè)計(jì)和實(shí)現(xiàn)機(jī)制有比較多的共同點(diǎn)。可擴(kuò)展組件主要通過自己處理對(duì)應(yīng)的jar包來完成;并行ETL工具的集成方面,商用ETL工具只有PowerCenter對(duì)Hive做了較好的集成,但是商用ETL工具價(jià)格昂貴,開源ETL工具在這方面的工作不夠深入,尤其是對(duì)性能更為優(yōu)秀的Hive,集成方式多為提供一個(gè)寫腳本的接口,本論文分別針對(duì)Hive和Pig選擇了一套基本操作以用來設(shè)計(jì)對(duì)應(yīng)的流程組件,這些組件可以和本論文開發(fā)的工具的內(nèi)置組件一起構(gòu)建ETL工作流并且可以在Hadoop集群上面執(zhí)行。例如,LogicalExpressionSimplifier對(duì)應(yīng)優(yōu)化規(guī)則FilterLogicExpressionSimplifier,它只針對(duì)FILTER操作,所以其buildPattern方法只包含了一個(gè)LOFilter。例如對(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方法來完成優(yōu)化。 match方法的邏輯:取出pattern的所有葉子結(jié)點(diǎn),使用下面的方法:在plan中尋找和pattern的第一個(gè)葉子結(jié)點(diǎn)匹配的結(jié)點(diǎn),如果葉子數(shù)大于1,則比較它們的兄弟結(jié)點(diǎn),如果兄弟也匹配,則所有這些結(jié)點(diǎn)全部被保存到一個(gè)List中;然后調(diào)用Rule內(nèi)部類PatternMatchOperatorPlan的check方法,針對(duì)整個(gè)pattern而非只是葉子來查找匹配的子結(jié)構(gòu),并將找到的結(jié)果保存下來。3. 每個(gè)規(guī)則(Rule)都有一個(gè)名為pattern的OperatorPlan對(duì)象和一個(gè)Transformer對(duì)象以及一個(gè)match方法,PlanOptimizer的optimize方法先調(diào)用Rule的match方法獲得匹配的ListOperatorPlan。2. ,在PlanOptimizer的子類LogicalPlanOptimizer中,規(guī)則集列表被實(shí)例化為一個(gè)ArrayList,優(yōu)化規(guī)則集被按一定順序添加到該列表中。 Pig常用優(yōu)化規(guī)則下表列出了常用的Pig邏輯計(jì)劃優(yōu)化規(guī)則和對(duì)應(yīng)優(yōu)化規(guī)則轉(zhuǎn)換類??偟恼f來,整個(gè)過程包括如下幾個(gè)方面:計(jì)劃的遍歷方式、規(guī)則的選擇方式和規(guī)則的應(yīng)用方式。整個(gè)優(yōu)化過程就是一個(gè)邊遍歷邊選擇最優(yōu)的優(yōu)化規(guī)則并進(jìn)行應(yīng)用的過程。之后會(huì)按序調(diào)用這些優(yōu)化規(guī)則的transform方法實(shí)現(xiàn)優(yōu)化[15]。Hive將Transform分類,每一類包括一個(gè)Transform集。圖34 腳本執(zhí)行流程圖 Hive常用優(yōu)化規(guī)則下表列出了常用的Hive優(yōu)化規(guī)則和對(duì)應(yīng)的參數(shù)以及優(yōu)化規(guī)則轉(zhuǎn)換類。經(jīng)過這樣的劃分和構(gòu)建,生成了一個(gè)由MapReduce作業(yè)構(gòu)成的有向無環(huán)圖,即最后的MR執(zhí)行計(jì)劃。經(jīng)過優(yōu)化的邏輯計(jì)劃又被轉(zhuǎn)換成物理執(zhí)行計(jì)劃,物理執(zhí)行計(jì)劃再經(jīng)過一次優(yōu)化后,特定的拆分規(guī)則被應(yīng)用,物理計(jì)劃被劃分成一個(gè)一個(gè)的階段,分別對(duì)應(yīng)MapReduce的Map和Reduce階段。從實(shí)現(xiàn)機(jī)制來開,Hive和Pig擁有相似的處理流程,均是通過ANTLR來將腳本解析為抽象語法樹(AST),然后從抽象語法樹生成邏輯執(zhí)行計(jì)劃,邏輯計(jì)劃即為各種操作構(gòu)成的有向無環(huán)圖。與Hive不同的是,Pig并不是數(shù)據(jù)庫工具,因此無法通過JDBC這樣的方式來訪問Pig,而只能通過Pig提供的JAVA API以嵌入的方式來執(zhí)行Pig Latin腳本。圖33 Pig script executor配置界面在執(zhí)行的過程中,Pig Script Executor組件會(huì)通過Pig的日志管理模塊讀出Pig的日志并將其顯示給用戶,與Hadoop相關(guān)的日志信息也會(huì)一起顯示,如此實(shí)現(xiàn)對(duì)
點(diǎn)擊復(fù)制文檔內(nèi)容
數(shù)學(xué)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1