執(zhí)行命令入口_第1頁
執(zhí)行命令入口_第2頁
執(zhí)行命令入口_第3頁
執(zhí)行命令入口_第4頁
執(zhí)行命令入口_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

執(zhí)行命令入口目錄CONTENTS1processLine方法2processCmd方法3命令處理器CommandProcessor導語

從用戶提交一個查詢(假設通過CLI入口)直到獲取最終結果,Hive內部的執(zhí)行流程主要包括:CLI獲取用戶查詢,解析用戶輸入的命令,提交給Driver;Driver結合編譯器(COMPILER)和元數據庫(METASTORE),對用戶查詢進行編譯解析;根據解析結果(查詢計劃)生成MR任務提交給Hadoop執(zhí)行;獲取最終結果;導語

CLI解析用戶的輸入,并提交給Driver類執(zhí)行,最終獲得結果,主要通過main、run、executeDriver、processLine、processCmd及命令處理器CommandProcessor等方法。

這里主要向大家介紹一下processLine、processCmd及命令處理器CommandProcessor的使用。processLine方法PART0101processLine方法

見下圖,方法中第二個參數是boolean,為真任務可以中斷,為假任務不可中斷。processLine方法

processLine方法支持通過Ctrl+C命令中斷。執(zhí)行中斷:首先通過java的Signal模塊來實現接收用戶信號來終止運行。processLine方法

命令執(zhí)行:processLine方法對輸入對命令字符串進行處理之后,最后調用processCmd方法執(zhí)行。processCmd方法PART0202processCmd方法

主要流程有:*去除命令中的注釋;*如果命令是quit或exit,則退出;*如果命令是source開頭,則校驗source命令后面的文件是否存在,存在則執(zhí)行processFile;*如果命令是以感嘆號!開頭,表明是shell命令,這時候直接調用shell命令執(zhí)行器執(zhí)行;*如果以上都不是,則說明是本地模式。然后獲得命令處理器,并調用processLocalCmd執(zhí)行命令。processCmd方法

processLocalCmd方法這里根據命令處理器的類型,分兩種處理。如果是IDriver處理器,則把注釋處理等交給Driver完成;如果是其他的命令處理器,則將去掉注釋的命令傳遞給處理器。最終的命令執(zhí)行是處理器的run方法完成的。命令處理器CommandProcessorPART0303命令處理器CommandProcessor

命令處理器是通過CommandProcessorFactory工廠類創(chuàng)建的。命令處理器CommandProcessor

命令處理器構建原則是:先嘗試構建非Driver處理器;如果獲取為空,且第一條命令不為空的情況,構建Dri

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論