版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、2015-7-31操作管理手冊 | 作者:尹標平BBoss大數(shù)據(jù)平臺數(shù)據(jù)抽取工具1概述31.1技術(shù)體系31.2基本概念41.3整體架構(gòu)5管理節(jié)點5數(shù)據(jù)節(jié)點62作業(yè)指令72.1指令概述7操作指令7執(zhí)行作業(yè)指令類型92.2作業(yè)指令詳解10刪除hdfs目錄/文件指令10停止數(shù)據(jù)源指令11作業(yè)任務(wù)重新調(diào)度指令11執(zhí)行作業(yè)指令123作業(yè)監(jiān)控513.1監(jiān)控功能概述513.2監(jiān)控詳解52查看所有作業(yè)清單52查看當前管理節(jié)點信息和所有數(shù)據(jù)處理節(jié)點信息52查看作業(yè)的定義53查看作業(yè)任務(wù)統(tǒng)計概況53查看作業(yè)在每個數(shù)據(jù)處理節(jié)點上的任務(wù)統(tǒng)計概況54查看作業(yè)分配在每個數(shù)據(jù)處理節(jié)點上的作業(yè)任務(wù)執(zhí)行狀態(tài)55查看作業(yè)歷史記錄
2、554數(shù)據(jù)庫說明554.1表及表結(jié)構(gòu)554.2內(nèi)置數(shù)據(jù)源和作業(yè)數(shù)據(jù)源575版本發(fā)布及部署運行585.1工程說明58bigdata工程58bigdatamonitor監(jiān)控管理工程585.2構(gòu)建版本58Bigdata工程構(gòu)建59bigdatamonitor工程構(gòu)建605.3依賴環(huán)境615.4配置和部署運行61配置63部署70運行711 概述l 大數(shù)據(jù)平臺數(shù)據(jù)抽取工具實現(xiàn)db到hdfs數(shù)據(jù)導入功能,提供高效的分布式并行處理能力,可以采用數(shù)據(jù)庫分區(qū)、按字段分區(qū)、分頁方式并行批處理抽取db數(shù)據(jù)到hdfs文件系統(tǒng)中,能有效解決按字段分區(qū)數(shù)據(jù)導致各分區(qū)數(shù)據(jù)不均勻?qū)е伦鳂I(yè)負載不均衡的問題。l 數(shù)據(jù)處理服務(wù)器為
3、每個作業(yè)分配獨立的作業(yè)任務(wù)處理工作線程和任務(wù)執(zhí)行隊列,作業(yè)之間互不干擾l 靈活的作業(yè)任務(wù)處理模式:可以增量方式執(zhí)行作業(yè)任務(wù),作業(yè)可以停止后重新執(zhí)行,重新執(zhí)行時只需執(zhí)行未完成的作業(yè)任務(wù),也可以全部重新執(zhí)行所有作業(yè)任務(wù);當停止作業(yè)后,可以在原有作業(yè)切分的基礎(chǔ)進一步切分出子任務(wù),然后再重新執(zhí)行作業(yè),提升系統(tǒng)處理數(shù)據(jù)效率。l 采用異步事件驅(qū)動模式來管理和分發(fā)作業(yè)指令、采集作業(yè)狀態(tài)數(shù)據(jù)。l 通過管理監(jiān)控端,可以實時監(jiān)控作業(yè)在各個數(shù)據(jù)處理節(jié)點作業(yè)任務(wù)的實時運行狀態(tài),查看作業(yè)的歷史執(zhí)行狀態(tài),方便地實現(xiàn)提交新的作業(yè)、重新執(zhí)行作業(yè)、停止正在執(zhí)行的作業(yè)、清除作業(yè)執(zhí)行監(jiān)控數(shù)據(jù)、同步作業(yè)任務(wù)執(zhí)行狀態(tài)等操作1.1 技術(shù)
4、體系l Bboss ioc:輕量級ioc容器,ioc擴展屬性配置語法l Bboss持久層:高效數(shù)據(jù)查詢行處理器,靈活動態(tài)數(shù)據(jù)源管理(連接池數(shù)據(jù)源/非連接池數(shù)據(jù)源),表分區(qū)信息查詢等,動態(tài)創(chuàng)建作業(yè)配置表和作業(yè)監(jiān)控記錄表l Bboss分布式事件框架:基于JGroups,提供異步分布式事件驅(qū)動模型,動態(tài)管理作業(yè)節(jié)點(服務(wù)節(jié)點和數(shù)據(jù)處理節(jié)點),包括作業(yè)節(jié)點的動態(tài)加入、動態(tài)離開等;在管理節(jié)點、數(shù)據(jù)處理節(jié)點之間分發(fā)和接收各種作業(yè)處理指令事件l Bboss mvc:實現(xiàn)監(jiān)控管理應(yīng)用模塊,在監(jiān)控服務(wù)節(jié)點中,通過mvc 容器啟動監(jiān)聽器啟動作業(yè)管理節(jié)點l Bboss序列化組件:用來將作業(yè)監(jiān)控數(shù)據(jù)序列化存儲到sql
5、lite中的作業(yè)監(jiān)控表,同時在查看作業(yè)執(zhí)行歷史時將序列化存儲的作業(yè)監(jiān)控數(shù)據(jù)還原為對象狀態(tài)的監(jiān)控對象,便于界面展示l Bboss 標簽庫,jquery等:實現(xiàn)監(jiān)控管理應(yīng)用的視圖層l Hadoop Hdfs客戶端:用來連接hadoop hdfs文件系統(tǒng)l Sqllite:在監(jiān)控節(jié)點中保存作業(yè)配置,保存作業(yè)執(zhí)行狀態(tài)數(shù)據(jù)l Jetty:運行監(jiān)控管理應(yīng)用模塊的web應(yīng)用容器l Bboss應(yīng)用執(zhí)行容器:用來啟動作業(yè)管理監(jiān)控應(yīng)用、作業(yè)數(shù)據(jù)處理應(yīng)用、啟動jetty容器1.2 基本概念指令:可以在管理節(jié)點上或者數(shù)據(jù)處理節(jié)點執(zhí)行的一系列操作,比如數(shù)據(jù)抽取操作、停止數(shù)據(jù)源操作、刪除hdfs文件操作等等作業(yè):一個完整
6、的數(shù)據(jù)抽取指令,比如表數(shù)據(jù)抽取到hdfs作業(yè)等,停止數(shù)據(jù)源作業(yè)指令等,一個作業(yè)可以被分解為做個作業(yè)任務(wù),然后交個數(shù)據(jù)處理節(jié)點執(zhí)行。數(shù)據(jù)處理節(jié)點會給每個作業(yè)分配獨立的作業(yè)任務(wù)處理隊列和作業(yè)工作線程,作業(yè)之間互不干擾;處理隊列長度和工作線程數(shù)可以在作業(yè)定義中進行配置(可以根據(jù)作業(yè)對應(yīng)的數(shù)據(jù)量級別、服務(wù)器資源配置以及數(shù)據(jù)庫并發(fā)處理能力進行靈活配置)。作業(yè)任務(wù):由作業(yè)分解而成,將由數(shù)據(jù)處理節(jié)點中的分配給對應(yīng)作業(yè)的工作線程處理執(zhí)行,如果對應(yīng)的作業(yè)沒有空閑的作業(yè)線程,則將作業(yè)任務(wù)加入作業(yè)對應(yīng)的工作隊列,如果作業(yè)工作隊列也滿了,則阻塞等待直到有空閑的作業(yè)隊列或者作業(yè)工作線程。管理節(jié)點:管理、監(jiān)控、調(diào)度作業(yè)的
7、服務(wù)器數(shù)據(jù)處理節(jié)點:處理和執(zhí)行作業(yè)任務(wù)的服務(wù)器數(shù)據(jù)塊號:作業(yè)抽取的海量數(shù)據(jù)會按照表字段分區(qū)或者表分區(qū)切分成不同的數(shù)據(jù)塊,每個數(shù)據(jù)塊分配一個唯一塊號,表字段分區(qū)對應(yīng)數(shù)據(jù)塊可以進一步進行二次切分成多個子塊,以便數(shù)據(jù)抽取任務(wù)更加均勻地分配到各個作業(yè)節(jié)點上執(zhí)行,提升抽取效率和速度,表分區(qū)數(shù)據(jù)塊不能進行二次切分。1.3 整體架構(gòu)服務(wù)器類型分為管理節(jié)點和數(shù)據(jù)節(jié)點兩種,它們之間通過分布式事件框架通訊,彼此之間又具備獨立性,一個節(jié)點失效不會影響其他節(jié)點作業(yè)任務(wù)的執(zhí)行。1.3.1 管理節(jié)點數(shù)量:只有一臺,作用:執(zhí)行所有作業(yè)指令的入口,監(jiān)控所有數(shù)據(jù)節(jié)點作業(yè)狀態(tài)(正常、異常、運行、等待、終止、完成等)和進展情況(數(shù)
8、據(jù)任務(wù)處理狀態(tài),成功數(shù)據(jù)行數(shù),異常數(shù)據(jù)行數(shù),總的記錄行數(shù)等等),管理節(jié)點也可以作為數(shù)據(jù)節(jié)點。分解作業(yè)任務(wù),根據(jù)作業(yè)定義,將作業(yè)分解成多個任務(wù),然后將作業(yè)任務(wù)均勻地分配給數(shù)據(jù)處理節(jié)點執(zhí)行調(diào)度任務(wù),根據(jù)數(shù)據(jù)處理節(jié)點作業(yè)任務(wù)執(zhí)行情況,將任務(wù)繁忙的作業(yè)任務(wù)調(diào)配到相對較空閑的作業(yè)數(shù)據(jù)處理節(jié)點【開發(fā)中】停止作業(yè)任務(wù),在作業(yè)執(zhí)行過程中可以停止正在執(zhí)行的作業(yè)重新執(zhí)行已經(jīng)完成的作業(yè)或者重新執(zhí)行修改了配置的作業(yè)管理hdfs文件:刪除hdfs文件和目錄管理作業(yè)使用的數(shù)據(jù)源:停止不需要的數(shù)據(jù)源,或者作業(yè)數(shù)據(jù)源參數(shù)修改調(diào)整后,為了加載新的配置而停止數(shù)據(jù)源采集作業(yè)狀態(tài)數(shù)據(jù)源:通過異步事件機制,采集分布在每個數(shù)據(jù)處理節(jié)點上
9、的作業(yè)任務(wù)執(zhí)行狀態(tài)數(shù)據(jù),包括:作業(yè)執(zhí)行狀態(tài)、作業(yè)任務(wù)執(zhí)行狀態(tài)、數(shù)據(jù)抽取進度、異常情況、已經(jīng)完成作業(yè)任務(wù)清單、未完成作業(yè)任務(wù)清單、失敗作業(yè)任務(wù)清單1.3.2 數(shù)據(jù)節(jié)點數(shù)量:1n臺作用:接收并處理管理節(jié)點分派的作業(yè)任務(wù),為每個作業(yè)分配獨立的工作處理線程池和工作隊列處理管理節(jié)點提交的作業(yè)監(jiān)控指令,將各個作業(yè)的實施處理情況以異步事件方式返回給管理節(jié)點2 作業(yè)指令22.1 指令概述2.1.1 操作指令執(zhí)行作業(yè)指令停止作業(yè)指令同步作業(yè)狀態(tài)指令提交新作業(yè)指令記錄作業(yè)狀態(tài)查看作業(yè)歷史記錄指令執(zhí)行的窗口如下:未執(zhí)行作業(yè)窗口正在執(zhí)行作業(yè)的窗口:執(zhí)行完畢作業(yè)窗口:查看作業(yè)歷史記錄窗口2.1.2 執(zhí)行作業(yè)指令類型db
10、數(shù)據(jù)抽取到hdfs刪除hdfs文件停止數(shù)據(jù)源指令任務(wù)重新分派指令下面分別介紹各種指令配置及使用方法2.2 作業(yè)指令詳解作業(yè)指令配置語法采用bboss ioc配置語法,大量采用擴展屬性配置語法,配置靈活。122.12.22.2.1 刪除hdfs目錄/文件指令指令說明一次性刪除hdfs中的多個或者一個文件或者文件夾,重新執(zhí)行作業(yè)時可以使用這個指令刪除hdfs文件或者目錄指令參數(shù)參數(shù)描述默認值是否必填Name作業(yè)唯一名稱無必填hdfsserver指定hdfs服務(wù)器無必填Deletefiles指定要刪除的文件或者文件夾,多個以逗號分隔。無必填使用實例<property name="te
11、stdelete"hdfsserver="hdfs:/10.0.15.40:9000"deletefiles="/m2m/sss"/>2.2.2 停止數(shù)據(jù)源指令指令說明停止數(shù)據(jù)源,調(diào)整數(shù)據(jù)庫參數(shù)后使用這個指令來讓參數(shù)生效指令參數(shù)參數(shù)描述默認值是否必填Name作業(yè)唯一名稱無必填stopdbnames數(shù)據(jù)源名稱,多個數(shù)據(jù)源用逗號分隔無必填使用實例<property name="stopds" stopdbnames="hx125seldom" />2.2.3 作業(yè)任務(wù)重新調(diào)度指令開發(fā)測試中。
12、將指定作業(yè)節(jié)點上正在執(zhí)行的作業(yè)的所有未執(zhí)行作業(yè)任務(wù)重新調(diào)配到其他空閑的節(jié)點上運行,以便提升作業(yè)處理效率,充分利用節(jié)點空閑資源。如果reassigntaskNode對應(yīng)的節(jié)點以及因為異外異常關(guān)閉停止,則由管理節(jié)點將該節(jié)點對應(yīng)的作業(yè)正在執(zhí)行的作業(yè)任務(wù)、未執(zhí)行的作業(yè)、正在等待的作業(yè)任務(wù)全部調(diào)配到其他有效作業(yè)數(shù)據(jù)處理節(jié)點執(zhí)行。指令樣例:<property name="reassignetasks" reassigntaskNode="csxbpmts02v-ap-3782"reassigntaskJobname="test" />
13、2.2.4 執(zhí)行作業(yè)指令2.2.4.1 單任務(wù)作業(yè)指令指令說明一個作業(yè)只對應(yīng)一個任務(wù),適用于數(shù)據(jù)量比較小的表數(shù)據(jù)抽取到hdfs,可以通過target屬性指定將作業(yè)提交給對應(yīng)的數(shù)據(jù)處理節(jié)點來,不指定target則交個管理作業(yè)節(jié)點來執(zhí)行(前提是管理節(jié)點也作為數(shù)據(jù)處理節(jié)點)或者數(shù)據(jù)處理節(jié)點指令參數(shù)參數(shù)描述默認值是否必填Name作業(yè)唯一名稱無必填Dbname數(shù)據(jù)源名稱,多個數(shù)據(jù)源用逗號分隔無必填Driver數(shù)據(jù)庫驅(qū)動程序,部署時必須要將對于數(shù)據(jù)庫的驅(qū)動程序jar文件放到應(yīng)用的lib目錄中無必填Dburl對應(yīng)數(shù)據(jù)庫的jdbc連接地址Dbuser數(shù)據(jù)庫賬號名稱dbpassword數(shù)據(jù)庫賬號訪問口令vali
14、datesql連接池校驗sql,非連接池模式不需要指定Usepool標識數(shù)據(jù)源是否采用連接池,默認為true ,true采用,false不采用,在作業(yè)任務(wù)數(shù)數(shù)量比較少,則可以設(shè)置為false,作業(yè)任務(wù)比較多的情況下,可以采用連接池,重用連接true可選hdfsserverHdfs服務(wù)器地址hdfsdatadir作業(yè)數(shù)據(jù)保存到hdfs服務(wù)器的文件夾目錄tablename指定數(shù)據(jù)庫表名稱可選querystatement指定查詢語句,如果指定了查詢語句,則無需指定表名稱可選filebasename作業(yè)數(shù)據(jù)文件的基本文件名前綴Schema數(shù)據(jù)庫schema名稱,oracle表空間查詢時,必須指定可選P
15、kname表字段分區(qū)查詢字段名稱可選Columns指定要查詢的字段名稱列表,多個用逗號分隔Single單任務(wù)作業(yè)標識,true 單任務(wù),false 多任務(wù)false可選rowsperfile每個文件存儲的記錄條數(shù),指定了 rowsperfile屬性,則會將文件切分為多個文件保存到hdfs中,每個文件最多存儲 rowsperfile指定記錄條數(shù)0可選startfileNostartfileNo在指定了 rowsperfile情況下起作用,從指定的文件號開始抽取數(shù)據(jù),忽略之前的文件號對應(yīng)的數(shù)據(jù)記錄可選target指定單任務(wù)作業(yè)的數(shù)據(jù)節(jié)點,可以指定也可以不指定,如果指定的話,則在指定的數(shù)據(jù)作業(yè)節(jié)點上
16、執(zhí)行,如果不指定如果管理節(jié)點作為數(shù)據(jù)節(jié)點則直接在管理節(jié)點上執(zhí)行,否則任意挑選一個作業(yè)節(jié)點執(zhí)行可選DatatypeHdfs文件存儲記錄數(shù)據(jù)格式,text:#分隔字段及字段值,json:json格式存儲作業(yè)數(shù)據(jù)clearhdfsfiles執(zhí)行作業(yè)任務(wù)時,是否刪除所有已經(jīng)生成的文件,true 刪除 false 不刪除false可選使用實例見示例清單示例一 將表中數(shù)據(jù)生成一個hdfs文件<property name="qzj_Sany_vehicle" dbname="qzj"driverdbuser="SANY" dbpassword
17、="qzjiem#EDC2011" validatesql="select 1 from dual"usepool filebasename="Sany_vehicle"tablename="Sany_vehicle" single="true"target="BPIT-10006673-2810"datatype="text" />示例二 對文件安裝行數(shù)進行切分成多個文件:dbpassword="testpdp1" valida
18、tesql="select 1 from dual" usepool="false"filebasename="testbigdata" schema="testpdp1" pkname="tid" columns=""datatype="text" clearhdfsfiles="false"querystatement="select * from testpdp1.testbigdata order by TID &qu
19、ot;rowsperfile="10"single="true"target="BPIT-10006673-2810"/>示例三 對文件安裝行數(shù)進行切分成多個文件,并指定起始抽取文件號(適用于停止后從停止文件號對應(yīng)的文件繼續(xù)抽取數(shù)據(jù))dbpassword="testpdp1" validatesql="select 1 from dual" usepool="false"filebasename="testbigdata" schema="
20、testpdp1" pkname="tid" columns=""datatype="text" clearhdfsfiles="false"querystatement="select * from testpdp1.testbigdata order by TID "rowsperfile="10"startfileNo="10"single="true"target="BPIT-10006673-2810&qu
21、ot;/>2.2.4.2 按字段分區(qū)作業(yè)指令指令說明抽取表數(shù)據(jù)到hdfs中,按照給定的表字段值進行字段值范圍分區(qū),抽取完畢后如果對應(yīng)的分區(qū)文件沒有包含數(shù)據(jù)則會將對應(yīng)的hdfs文件刪除指令參數(shù)參數(shù)描述默認值是否必填name作業(yè)唯一名稱無必填dbname作業(yè)數(shù)據(jù)源名稱,根據(jù)數(shù)據(jù)庫配置動態(tài)生成數(shù)據(jù)源,如果 usepool為true則數(shù)據(jù)源采用連接池管理db連接,否則直連數(shù)據(jù)(連接使用完畢后自動釋放db連接),dbname不能命名為: bigdata_conf, bigdata_conf是內(nèi)置數(shù)據(jù)源的名稱。無必填driver數(shù)據(jù)庫驅(qū)動程序,部署時必須要將對于數(shù)據(jù)庫的驅(qū)動程序jar文件放到應(yīng)用的l
22、ib目錄中無必填dburl對應(yīng)數(shù)據(jù)庫的jdbc連接地址dbuser數(shù)據(jù)庫賬號名稱dbpassword數(shù)據(jù)庫賬號訪問口令validatesql連接池校驗sql,非連接池模式不需要指定usepool標識數(shù)據(jù)源是否采用連接池,默認為true ,true采用,false不采用,在作業(yè)任務(wù)數(shù)數(shù)量比較少,則可以設(shè)置為false,作業(yè)任務(wù)比較多的情況下,可以采用連接池,重用連接true可選hdfsserverHdfs服務(wù)器地址必填hdfsdatadir作業(yè)數(shù)據(jù)保存到hdfs服務(wù)器的文件夾目錄必填tablename指定數(shù)據(jù)庫表名稱可選querystatement手動指定查詢sql語句,可以limitstate
23、ment屬性來確定數(shù)據(jù)的查詢范圍,也可以直接指定startid和endid來指定數(shù)據(jù)查詢范圍,也可以同時指定表名,然后根據(jù)表來獲取數(shù)據(jù)的查詢范圍。querystatement屬性和tablename屬性任意設(shè)置一個即可可選limitstatement指定數(shù)據(jù)查詢的分區(qū)字段的起點和終點,不指定的話會根據(jù)表名稱自動生成,形式如下:select min(t.st_pid) as startid, max(t.st_pid) as endid from iss.is_static_often_20131211 t可選filebasename作業(yè)數(shù)據(jù)文件的基本文件名前綴schema數(shù)據(jù)庫schema名稱
24、,oracle表空間查詢時,必須指定可選pkname表字段分區(qū)對應(yīng)的字段columns指定要查詢的字段名稱列表,多個用逗號分隔,不指定時查詢表所有字段“”可選geneworkthreads指定數(shù)據(jù)處理節(jié)點給作業(yè)分配的工作線程數(shù)20可選genqueques指定數(shù)據(jù)處理節(jié)點給作業(yè)分配的工作等待隊列長度5可選genquequetimewait指定作業(yè)工作等待隊列等待超時時間,單位:秒10秒可選datatypeHdfs文件存儲記錄數(shù)據(jù)格式,text:#分隔字段及字段值,json:json格式存儲作業(yè)數(shù)據(jù)Json可選clearhdfsfiles執(zhí)行作業(yè)前是否刪除存放作業(yè)數(shù)據(jù)文件的hdfs文件目錄,tru
25、e 刪除,false不刪除false可選usepartition是否參與表分區(qū)抽取數(shù)據(jù),true 采用,false不采用false可選blocks指定只抽取塊號對應(yīng)的表分區(qū)的數(shù)據(jù),多個用逗號分隔可選excludeblocks指定要排除的表分區(qū)對應(yīng)的塊號,多個用逗號分隔可選startid指定數(shù)據(jù)抽取對應(yīng)分區(qū)字段的起始值,也就是符合條件的最小值,這樣不需要工具自動去查詢最小范圍值可選endid指定數(shù)據(jù)抽取對應(yīng)分區(qū)字段的最大值,也就是符合條件的最大值,這樣不需要工具自動去查詢最大范圍值可選errorrowslimit作業(yè)任務(wù)最大允許錯誤行數(shù),如果超過這個錯誤行數(shù),則強制終止作業(yè)執(zhí)行,-1 出現(xiàn)異常不
26、終止直到任務(wù)執(zhí)行完畢,0 表示只要一行發(fā)生錯誤及終止對應(yīng)作業(yè)任務(wù)執(zhí)行,大于0時,對作業(yè)任務(wù)錯誤記錄行數(shù)進行計數(shù),當達到指定的最大允許錯誤行數(shù)時,終止作業(yè)執(zhí)行-1可選subblocks在第一次分塊的基礎(chǔ)上,將已有塊進一步切分成成subblocks對應(yīng)的子塊,使得任務(wù)的切分更加合理,數(shù)據(jù)分布更加均勻地分布到各個塊中true可選datablocks指定按字段分區(qū)需要切分的分區(qū)個數(shù),這個參數(shù)很重要,管理節(jié)點會根據(jù)分區(qū)的起始位置(startid)和終止位置(endid),將期間的數(shù)據(jù)平均分為 datablocks指定的塊數(shù),每個塊分配唯一的塊號,然后管理節(jié)點再將這些塊轉(zhuǎn)換為作業(yè)任務(wù),平均分發(fā)給每個數(shù)據(jù)處
27、理節(jié)點進行處理。按字段分區(qū)時必填usepagine標識按數(shù)據(jù)庫分頁模式進行分區(qū),不建議使用,true 采用分頁模式 false不采用分頁模式false可選clearhdfsfiles執(zhí)行作業(yè)任務(wù)時,是否刪除所有已經(jīng)生成的文件,true 刪除 false 不刪除false可選使用實例見后續(xù)實例清單示例一 基本按表字段分區(qū)作業(yè)指令按主鍵分區(qū)作業(yè) 自動查詢分區(qū)范圍(startid和endid),比較慢的數(shù)據(jù)庫耗時比較長<property name="hx20111212_20120331" dbname="hx243"driverdbuser="
28、;HX"dbpassword="edcr9637_"validatesql="select 1 from dual"usepool="true"hdfsdatadir="/m2m/data04/hx20111212_20120331"tablename="is_static_20111212_20120331"filebasename="is_static"schema="ISS"pkname="ST_PID"columns=
29、""datablocks="10000" geneworkthreads="10"genqueques="5" genquequetimewait="10" datatype="text" clearhdfsfiles="true"errorrowslimit="0"/>示例二 按主鍵分區(qū)作業(yè) 指定分區(qū)范圍(startid和endid)<property name="hx20111212_20120331"
30、; dbname="hx243"driverdbuser="HX"dbpassword="edcr9637_"validatesql="select 1 from dual"usepool="true"hdfsdatadir="/m2m/data04/hx20111212_20120331"tablename="is_static_20111212_20120331"filebasename="is_static"schema=&quo
31、t;ISS"pkname="ST_PID"columns=""datablocks="10000" geneworkthreads="10"genqueques="5" genquequetimewait="10" datatype="text"clearhdfsfiles="true"startid="323404849"endid="30039753017" errorrowslim
32、it="0"/>Errorrowslimit為0表示不允許出現(xiàn)錯誤行,一旦出現(xiàn)就結(jié)束對應(yīng)作業(yè)任務(wù)的執(zhí)行示例三 只抽取blocks對應(yīng)塊號的作業(yè)指令<property name="hx20111212_20120331" dbname="hx243"driverdbuser="HX"dbpassword="edcr9637_"validatesql="select 1 from dual"usepool="true"hdfsdatadir=&qu
33、ot;/m2m/data04/hx20111212_20120331"tablename="is_static_20111212_20120331"filebasename="is_static"schema="ISS"pkname="ST_PID"columns=""datablocks="10000" geneworkthreads="10"genqueques="5" genquequetimewait="10
34、" datatype="text"clearhdfsfiles="true"usepagine="false"startid="323404849"endid="30039753017" errorrowslimit="0" blocks="6,8"/>指定子塊號<property name="hx20111212_20120331" dbname="hx243"driverdbuser=&qu
35、ot;HX"dbpassword="edcr9637_"validatesql="select 1 from dual"usepool="true"hdfsdatadir="/m2m/data04/hx20111212_20120331"tablename="is_static_20111212_20120331"filebasename="is_static"schema="ISS"pkname="ST_PID"column
36、s=""datablocks="10000" geneworkthreads="10"genqueques="5" genquequetimewait="10" datatype="text"clearhdfsfiles="true"usepagine="false"startid="323404849"endid="30039753017" errorrowslimit="0"
37、; blocks="6.2,8.3" subblocks=”10”/>示例四 排除要執(zhí)行的數(shù)據(jù)塊指定子塊<property name="test" dbname="test1"driverdbuser="testpdp1"dbpassword="testpdp1"validatesql="select 1 from dual"usepool="true"hdfsdatadir="/m2m/data04/test"tablen
38、ame="testbigdata"filebasename="testbigdata"schema="testpdp1"pkname="tid"columns=""datablocks="100" geneworkthreads="30" genqueques="5" genquequetimewait="10" datatype="text" excludeblocks="6.0,8.
39、0"subblocks="2"/>不指定子塊:<property name="test" dbname="test1"driverdbuser="testpdp1"dbpassword="testpdp1"validatesql="select 1 from dual"usepool="true"pkname="tid"hdfsdatadir="/m2m/data04/test"tablenam
40、e="testbigdata"filebasename="testbigdata"schema="testpdp1"pkname="tid"columns=""datablocks="100" geneworkthreads="30" genqueques="5" genquequetimewait="10" datatype="text" excludeblocks="6,8"
41、;/>示例五 指定查詢語句的指令<property name="hx20131211" dbname="hx243"driverdbuser="HX" dbpassword="edcr9637_" validatesql="select 1 from dual"usepoolfilebasename="is_static"schema="ISS" pkname="ST_PID" columns="" ge
42、neworkthreads="20" genqueques="5"genquequetimewait="10"tablename="is_static_often_20131211" querystatement="select t.* from iss.is_static_often_20131211 t" usepartition="false"datatype="text" />指定了查詢范圍的指令:<property name=&quo
43、t;hx20131211" dbname="hx243"driverdbuser="HX" dbpassword="edcr9637_" validatesql="select 1 from dual"usepoolfilebasename="is_static"schema="ISS" pkname="ST_PID" columns="" geneworkthreads="20" genqueques=&
44、quot;5"genquequetimewait="10"tablename="is_static_often_20131211" querystatement="select t.* from iss.is_static_often_20131211 t" usepartition="false"limitstatement="select min(t.st_pid) as startid, max(t.st_pid) as endid from iss.is_static_often_201
45、31211 t"datatype="text" />或者<property name="hx20131211" dbname="hx243"driverdbuser="HX" dbpassword="edcr9637_" validatesql="select 1 from dual"usepoolfilebasename="is_static"schema="ISS" pkname="ST_PID&qu
46、ot; columns="" geneworkthreads="20" genqueques="5"genquequetimewait="10"tablename="is_static_often_20131211" usepartition="false"limitstatement="select min(t.st_pid) as startid, max(t.st_pid) as endid from iss.is_static_often_20131211
47、t"datatype="text" />2.2.4.3 按表分區(qū)作業(yè)指令指令說明抽取表分區(qū)包含的數(shù)據(jù)到hdfs中,抽取完畢后如果對應(yīng)的分區(qū)文件沒有包含數(shù)據(jù)則會將對應(yīng)的hdfs文件刪除指令參數(shù)參數(shù)描述默認值是否必填name作業(yè)唯一名稱無必填dbname作業(yè)數(shù)據(jù)源名稱,根據(jù)數(shù)據(jù)庫配置動態(tài)生成數(shù)據(jù)源,如果 usepool為true則數(shù)據(jù)源采用連接池管理db連接,否則直連數(shù)據(jù)(連接使用完畢后自動釋放db連接),dbname不能命名為: bigdata_conf, bigdata_conf是內(nèi)置數(shù)據(jù)源的名稱。無必填driver數(shù)據(jù)庫驅(qū)動程序,部署時必須要將對于數(shù)據(jù)庫的
48、驅(qū)動程序jar文件放到應(yīng)用的lib目錄中無必填dburl對應(yīng)數(shù)據(jù)庫的jdbc連接地址dbuser數(shù)據(jù)庫賬號名稱dbpassword數(shù)據(jù)庫賬號訪問口令validatesql連接池校驗sql,非連接池模式不需要指定usepool標識數(shù)據(jù)源是否采用連接池,默認為true ,true采用,false不采用,在作業(yè)任務(wù)數(shù)數(shù)量比較少,則可以設(shè)置為false,作業(yè)任務(wù)比較多的情況下,可以采用連接池,重用連接true可選hdfsserverHdfs服務(wù)器地址必填hdfsdatadir作業(yè)數(shù)據(jù)保存到hdfs服務(wù)器的文件夾目錄必填tablename指定數(shù)據(jù)庫表名稱可選querystatement帶分區(qū)查詢的sql
49、語句,必須指定#partition占位符,例如:select * from tablename #partition占位符將被替換為oracle分區(qū)表查詢部分:PARTITION (PartitionName)Querystatement屬性和tablename屬性任意設(shè)置一個即可可選filebasename作業(yè)數(shù)據(jù)文件的基本文件名前綴schema數(shù)據(jù)庫schema名稱,oracle表空間查詢時,必須指定可選pkname表字段分區(qū)對應(yīng)的字段,這里指定是用來排錯,查看信息,實際上不會使用columns指定要查詢的字段名稱列表,多個用逗號分隔,不指定時查詢表所有字段“”可選geneworkthre
50、ads指定數(shù)據(jù)處理節(jié)點給作業(yè)分配的工作線程數(shù)20可選genqueques指定數(shù)據(jù)處理節(jié)點給作業(yè)分配的工作等待隊列長度5可選genquequetimewait指定作業(yè)工作等待隊列等待超時時間,單位:秒10秒可選datatypeHdfs文件存儲記錄數(shù)據(jù)格式,text:#分隔字段及字段值,json:json格式存儲作業(yè)數(shù)據(jù)Json可選clearhdfsfiles執(zhí)行作業(yè)前是否刪除存放作業(yè)數(shù)據(jù)文件的hdfs文件目錄,true 刪除,false不刪除false可選usepartition是否參與表分區(qū)抽取數(shù)據(jù),true 采用,false不采用False可選blocks指定只抽取塊號對應(yīng)的表分區(qū)的數(shù)據(jù),多
51、個用逗號分隔可選excludeblocks指定要排除的表分區(qū)對應(yīng)的塊號,多個用逗號分隔可選partitions指定要抽取的表分區(qū)清單,如果指定的是子分區(qū),可以在分區(qū)名稱前面添加sub:前綴,也可以不加,非必須要加子分區(qū)前綴可選excludepartitions指定要排除的表分區(qū)清單可選errorrowslimit作業(yè)任務(wù)最大允許錯誤行數(shù),如果超過這個錯誤行數(shù),則強制終止作業(yè)執(zhí)行,-1 出現(xiàn)異常不終止直到任務(wù)執(zhí)行完畢,0 表示只要一行發(fā)生錯誤及終止對應(yīng)作業(yè)任務(wù)執(zhí)行,大于0時,對作業(yè)任務(wù)錯誤記錄行數(shù)進行計數(shù),當達到指定的最大允許錯誤行數(shù)時,終止作業(yè)執(zhí)行-1可選usesubpartition是否按照
52、子分區(qū)抽取數(shù)據(jù),在oracle數(shù)據(jù)庫場景下使用,true 采用 false 不采用,默認值為truetrue可選clearhdfsfiles執(zhí)行作業(yè)任務(wù)時,是否刪除所有已經(jīng)生成的文件,true 刪除 false 不刪除false可選使用實例見后續(xù)實例清單示例一 抽取表的所有分區(qū)包含的數(shù)據(jù)到hdfs中,抽取完畢后如果對應(yīng)的分區(qū)文件沒有包含數(shù)據(jù)則會將相應(yīng)的hdfs文件刪除<property name="iem_equipposhistrec" dbname="iem1"driverdbuser="M2MDB" dbpassword=
53、"oracle_2015" validatesql="select 1 from dual"usepoolfilebasename="equipposhistrec"schema="M2MDB" geneworkthreads="40" genqueques="5"genquequetimewait="10"tablename="EQUIPPOSHISTREC" usepartition="true"datatype
54、="text" />示例二 指定排除的塊號和排除的分區(qū)號系統(tǒng)在分配任務(wù)時,首先排除excludepartitions中指定的分區(qū),然后在排除excludeblocks中塊號對應(yīng)的分區(qū),塊號由管理端自動分配。<property name="qzjiem_common_gpsresult13" dbname="qzj13"driverdbuser="QZJIEM" dbpassword="qzjiem#EDC2011" validatesql="select 1 from du
55、al"usepoolfilebasename="gps_result"schema="QZJIEM" geneworkthreads="5" genqueques="5"genquequetimewait="10"tablename="GPS_RESULT" usepartition="true"excludeblocks="16,17,18,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,43,44,45,
56、46,47"excludepartitions="GPSRESULT_PART_201011,GPSRESULT_PART_201012,GPSRESULT_PART_201012A,GPSRESULT_PART_201101,GPSRESULT_PART_201102,GPSRESULT_PART_201103,TP_GPS_RESULT_201104,TP_GPS_RESULT_201105,TP_GPS_RESULT_201106,TP_GPS_RESULT_201107,TP_GPS_RESULT_201109,TP_GPS_RESULT_201110,TP_GPS
57、_RESULT_201111"datatype="text" />示例三 指定排除的分區(qū)號以及指定剩下的分區(qū)對應(yīng)的塊號系統(tǒng)在分配任務(wù)時,首先排除excludepartitions中指定的分區(qū),然后只抽取blocks中塊號對應(yīng)的分區(qū)的數(shù)據(jù),塊號由管理端自動分配。<property name="qzjiem_common_gpsresult13" dbname="qzj13"driverdbuser="QZJIEM" dbpassword="qzjiem#EDC2011" va
58、lidatesql="select 1 from dual"usepoolfilebasename="gps_result"schema="QZJIEM" geneworkthreads="5" genqueques="5"genquequetimewait="10"tablename="GPS_RESULT" usepartition="true"blocks="16,17,18,0,1,2,3,4,5,6,7,8,9,10
59、,11,12,13,14,15,43,44,45,46,47"excludepartitions="GPSRESULT_PART_201011,GPSRESULT_PART_201012,GPSRESULT_PART_201012A,GPSRESULT_PART_201101,GPSRESULT_PART_201102,GPSRESULT_PART_201103,TP_GPS_RESULT_201104,TP_GPS_RESULT_201105,TP_GPS_RESULT_201106,TP_GPS_RESULT_201107,TP_GPS_RESULT_201109,TP
60、_GPS_RESULT_201110,TP_GPS_RESULT_201111"datatype="text" />示例四 只抽取blocks指定的特定塊號對應(yīng)的分區(qū)的數(shù)據(jù)Blocks指定要抽取的塊號,多個用逗號分隔<property name="qzjiem_common_gpsresult" dbname="qzjgps"driverdbuser="SANY" dbpassword="qzjiem#EDC2011" validatesql="select 1
61、from dual"usepoolfilebasename="gps_result"schema="SANY" geneworkthreads="5" genqueques="5"genquequetimewait="10"tablename="GPS_RESULT" usepartition="true"blocks="0"datatype="text" />示例五 排除excludeblocks指
62、定的特定塊號對應(yīng)的分區(qū)的數(shù)據(jù)excludeblocks指定要排除的塊號,多個用逗號分隔<property name="qzjiem_common_gpsresult" dbname="qzjgps"driverdbuser="SANY" dbpassword="qzjiem#EDC2011" validatesql="select 1 from dual"usepoolfilebasename="gps_result"schema="SANY" ge
63、neworkthreads="5" genqueques="5"genquequetimewait="10"tablename="GPS_RESULT" usepartition="true"excludeblocks="0,2"datatype="text" />示例六 指定要表分區(qū),只抽取指定分區(qū)的數(shù)據(jù)<property name="iem_equipworkstatusrec_zero" dbname="iem2"driverdbuser="M2MDB" dbpassword="oracle_2015" validatesql="select 1 from dual"usepoolpartitions="LOCALTIME_201205,LOCALTIME_201206,LOCALTIME_201207,LOCALTIME_201208,LOCALTIME_201209,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 寵物寄養(yǎng)中心2025年度會員制寄養(yǎng)服務(wù)協(xié)議3篇
- 2025年度大米產(chǎn)業(yè)鏈上下游資源整合及供應(yīng)鏈管理服務(wù)合同3篇
- 2025年度航空運輸租賃合同范本:全新合作協(xié)議3篇
- 二零二五年度新型木工次結(jié)構(gòu)建筑構(gòu)件加工與施工合同3篇
- 2025貨物采購合同樣書
- 二零二五年度企業(yè)數(shù)字化轉(zhuǎn)型與客戶關(guān)系管理服務(wù)合同3篇
- 2025年度一手新房全款合同簡易版(含智能家居)3篇
- 2025年度農(nóng)村土地置換項目合作協(xié)議書
- 二零二五年度熱處理設(shè)備生產(chǎn)與市場分析合同3篇
- 二零二五年度農(nóng)村危房改造回遷房買賣合同
- 2023-2024學年廣東省廣州市越秀區(qū)九年級(上)期末語文試卷
- 五年級數(shù)學下冊 課前預習單(人教版)
- 2024-2030年中國石油壓裂支撐劑行業(yè)供需現(xiàn)狀及投資可行性分析報告
- 醫(yī)療企業(yè)未來三年戰(zhàn)略規(guī)劃
- 急診科運用PDCA循環(huán)降低急診危重患者院內(nèi)轉(zhuǎn)運風險品管圈QCC專案結(jié)題
- 2024年統(tǒng)編版新教材語文小學一年級上冊全冊單元測試題及答案(共8單元)
- DB11T 1470-2022 鋼筋套筒灌漿連接技術(shù)規(guī)程
- 護士急診科進修匯報
- 2025年統(tǒng)編版中考語文課內(nèi)文言文《湖心亭看雪》三年中考試題+模擬題(解析版)
- 2024學年四川省成都天府新區(qū)九年級上學期一診數(shù)學模擬試題(原卷版)
- 倉庫勞務(wù)外包方案
評論
0/150
提交評論