两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

數(shù)據(jù)輸出控制方法及裝置的制造方法

文檔序號(hào):10594149閱讀:224來源:國知局
數(shù)據(jù)輸出控制方法及裝置的制造方法【專利摘要】本發(fā)明實(shí)施例提供一種數(shù)據(jù)輸出控制方法。接收到數(shù)據(jù)的處理任務(wù),對(duì)所述數(shù)據(jù)進(jìn)行分析從而獲取所述數(shù)據(jù)的數(shù)據(jù)相關(guān)參數(shù);根據(jù)所述數(shù)據(jù)相關(guān)參數(shù),按照預(yù)設(shè)的業(yè)務(wù)邏輯對(duì)所述數(shù)據(jù)進(jìn)行業(yè)務(wù)處理;調(diào)用預(yù)設(shè)的數(shù)據(jù)輸出控制類的配置文件,根據(jù)所述數(shù)據(jù)相關(guān)參數(shù)查詢所述業(yè)務(wù)處理得到的處理結(jié)果對(duì)應(yīng)的數(shù)據(jù)輸出路徑,并將每一所述處理結(jié)果輸出至到相應(yīng)的所述數(shù)據(jù)輸出路徑?!緦@f明】數(shù)據(jù)輸出控制方法及裝置
技術(shù)領(lǐng)域
[0001]本發(fā)明實(shí)施例涉及數(shù)據(jù)處理領(lǐng)域,尤其涉及一種數(shù)據(jù)輸出控制方法及裝置?!?br>背景技術(shù)
】[0002]在一些特定的應(yīng)用場景下,使用MapReduce進(jìn)行數(shù)據(jù)處理時(shí),需要輸出多組文件或者把一個(gè)數(shù)據(jù)集分為多個(gè)數(shù)據(jù)集從而更便捷地進(jìn)行后續(xù)的數(shù)據(jù)處理。例如,將一個(gè)log里屬于不同業(yè)務(wù)線的日志分開來輸出并交給相關(guān)的業(yè)務(wù)線。[0003]MapReducejob中,可以使用FileInputFormat和FileOutputFormat來對(duì)輸入路徑和輸出路徑來進(jìn)行設(shè)置。在輸出目錄中,框架自己會(huì)自動(dòng)對(duì)輸出文件進(jìn)行命名和組織,如part-(m|r)-00000之類。在一般情況下,Hadoop每一個(gè)Reducer產(chǎn)生一個(gè)輸出文件,文件以part-r-00000,part-r-00001的方式進(jìn)行命名,如果需要控制輸出文件的命名或者每一個(gè)Reducer需要寫出多個(gè)輸出文件時(shí),可以采用MultipleOutputs類來完成。[0004]然而這種輸出方式中,只能輸出固定格式的路徑,不能由用戶自定義輸出路徑。如果需要對(duì)輸出結(jié)果進(jìn)行一定的分類和組織,現(xiàn)有技術(shù)中常用的方法是在MapReducejob運(yùn)行之后,用腳本對(duì)目錄下的數(shù)據(jù)進(jìn)行一次重新組織,變成需要的目標(biāo)格式。這樣的處理方式增加了數(shù)據(jù)處理的程序,耗時(shí)且復(fù)雜,非常不適合實(shí)際應(yīng)用;與此同時(shí),這一分類組織方式不能根據(jù)數(shù)據(jù)的種類以及數(shù)據(jù)屬性將數(shù)據(jù)一步到位地輸出到相應(yīng)的目錄下。當(dāng)數(shù)據(jù)輸出之后,還需人工進(jìn)一步根據(jù)數(shù)據(jù)的名稱或者類型進(jìn)行再分類存儲(chǔ),十分消耗時(shí)間,而且進(jìn)一步增加了數(shù)據(jù)輸出的復(fù)雜性。[0005]因此,一種數(shù)據(jù)輸出控制方法亟待提出。【
發(fā)明內(nèi)容】[0006]本發(fā)明實(shí)施例提供一種數(shù)據(jù)輸出控制方法及裝置,用以解決現(xiàn)有技術(shù)中MapReduce處理的文件不能自定義輸出路徑的缺陷,實(shí)現(xiàn)了分布式文件處理的輸出控制。[0007]本發(fā)明實(shí)施例提供一種數(shù)據(jù)輸出控制方法,包括:[0008]接收到數(shù)據(jù)的處理任務(wù),對(duì)所述數(shù)據(jù)進(jìn)行分析,獲取所述數(shù)據(jù)的數(shù)據(jù)相關(guān)參數(shù);[0009]根據(jù)所述數(shù)據(jù)相關(guān)參數(shù),按照預(yù)設(shè)的業(yè)務(wù)邏輯對(duì)所述數(shù)據(jù)進(jìn)行業(yè)務(wù)處理;[0010]調(diào)用預(yù)設(shè)的數(shù)據(jù)輸出控制類的配置文件,根據(jù)所述數(shù)據(jù)相關(guān)參數(shù)查詢所述業(yè)務(wù)處理得到的處理結(jié)果對(duì)應(yīng)的數(shù)據(jù)輸出路徑,并將每一所述處理結(jié)果輸出至相應(yīng)的所述數(shù)據(jù)輸出路徑。[0011]本發(fā)明實(shí)施例提供一種數(shù)據(jù)輸出控制裝置,包括:[0012]參數(shù)獲取模塊,用于接收到數(shù)據(jù)的處理任務(wù),對(duì)所述數(shù)據(jù)進(jìn)行分析,獲取所述數(shù)據(jù)的數(shù)據(jù)相關(guān)參數(shù);[0013]業(yè)務(wù)處理模塊,用于根據(jù)所述數(shù)據(jù)相關(guān)參數(shù),按照預(yù)設(shè)的業(yè)務(wù)邏輯對(duì)所述數(shù)據(jù)進(jìn)行業(yè)務(wù)處理;[0014]輸出模塊,用于調(diào)用預(yù)設(shè)的數(shù)據(jù)輸出控制類的配置文件,根據(jù)所述數(shù)據(jù)相關(guān)參數(shù)查詢所述業(yè)務(wù)處理得到的處理結(jié)果對(duì)應(yīng)的數(shù)據(jù)輸出路徑,并將每一所述處理結(jié)果輸出至相應(yīng)的所述數(shù)據(jù)輸出路徑。[0015]本發(fā)明實(shí)施例提供的數(shù)據(jù)輸出控制方法及裝置,通過獲取數(shù)據(jù)的相關(guān)參數(shù),再根據(jù)所述相關(guān)參數(shù)對(duì)數(shù)據(jù)進(jìn)行分類從而對(duì)數(shù)據(jù)的輸出進(jìn)行控制,改變了現(xiàn)有技術(shù)中輸出MapReduce的數(shù)據(jù)處理結(jié)果時(shí),不能夠自定義輸出目錄的缺陷,實(shí)現(xiàn)了根據(jù)數(shù)據(jù)的種類以及數(shù)據(jù)屬性將數(shù)據(jù)一步到位地輸出到相應(yīng)的目錄下,提高了分布式數(shù)據(jù)處理的效率?!靖綀D說明】[0016]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。[0017]圖1為本申請(qǐng)實(shí)施例一的技術(shù)流程圖;[0018]圖2為本申請(qǐng)實(shí)施例二的裝置實(shí)施例結(jié)構(gòu)示意圖?!揪唧w實(shí)施方式】[0019]為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。[0020]在大數(shù)據(jù)處理的生產(chǎn)環(huán)境中,采集到的數(shù)據(jù)常常是不同種類,不同格式的數(shù)據(jù)雜亂的混合在一起。采用MapReduce進(jìn)行數(shù)據(jù)處理時(shí),需要輸出多組文件或者把一個(gè)數(shù)據(jù)集分為多個(gè)數(shù)據(jù)集從而更便捷地進(jìn)行后續(xù)的數(shù)據(jù)處理;本申請(qǐng)實(shí)施例的核心在于,根據(jù)數(shù)據(jù)源自帶的分類標(biāo)簽對(duì)數(shù)據(jù)進(jìn)行分類并預(yù)先定義不同分類數(shù)據(jù)的輸出路徑。將這一定義的配置文件封裝成Hadoop能夠識(shí)別的格式,當(dāng)Hadoop中任意計(jì)算節(jié)點(diǎn)接收到數(shù)據(jù)處理任務(wù)時(shí),可直接將數(shù)據(jù)的處理結(jié)果輸出至預(yù)設(shè)的目錄。[0021]圖1是本申請(qǐng)實(shí)施例一的技術(shù)流程圖,結(jié)合圖1,本申請(qǐng)實(shí)施例一種數(shù)據(jù)輸出控制方法,主要包括如下的步驟:[0022]步驟SI10:接收到數(shù)據(jù)的處理任務(wù),對(duì)所述數(shù)據(jù)進(jìn)行分析,獲取所述數(shù)據(jù)的數(shù)據(jù)相關(guān)參數(shù);[0023]步驟S120:根據(jù)所述數(shù)據(jù)相關(guān)參數(shù),按照預(yù)設(shè)的業(yè)務(wù)邏輯對(duì)所述數(shù)據(jù)進(jìn)行業(yè)務(wù)處理;[0024]步驟S130:調(diào)用預(yù)設(shè)的數(shù)據(jù)輸出控制類的配置文件,根據(jù)所述數(shù)據(jù)相關(guān)參數(shù)查詢所述業(yè)務(wù)處理得到的處理結(jié)果對(duì)應(yīng)的數(shù)據(jù)輸出路徑,并將每一所述處理結(jié)果輸出至到相應(yīng)的所述數(shù)據(jù)輸出路徑。[0025]具體的,在步驟SllO中,接收到數(shù)據(jù)的處理任務(wù),對(duì)所述數(shù)據(jù)進(jìn)行分析,這一步主要在數(shù)據(jù)處理的Map階段完成。對(duì)所述數(shù)據(jù)進(jìn)行分析實(shí)際是對(duì)數(shù)據(jù)的內(nèi)容進(jìn)行分析從而獲取每一條數(shù)據(jù)記錄的所述數(shù)據(jù)相關(guān)參數(shù)。[0026]本申請(qǐng)實(shí)施例中,所述數(shù)據(jù)相關(guān)參數(shù)包括每一所述數(shù)據(jù)的唯一標(biāo)示key,所述數(shù)據(jù)的類別type以及所述數(shù)據(jù)的結(jié)果指標(biāo)dataItem。例如,當(dāng)前待處理的數(shù)據(jù)是“張三一》(語文99,語文99,語文99,數(shù)學(xué)10,數(shù)學(xué)900)”,則獲取到的這條數(shù)據(jù)的唯一標(biāo)示key=張三,數(shù)據(jù)類別type=學(xué)科(語文/數(shù)學(xué)),數(shù)據(jù)的結(jié)果指標(biāo)dataltem指要輸出到自定義目錄下的數(shù)據(jù)內(nèi)容,此處dataItem=99/99/99/100/900。[0027]Map階段對(duì)數(shù)據(jù)進(jìn)行分析并得到數(shù)據(jù)的相關(guān)參數(shù)后,將數(shù)據(jù)以及數(shù)據(jù)相關(guān)參數(shù)發(fā)送至下一個(gè)處理階段,即Reduce階段,在發(fā)送的過程中,Hadoop將根據(jù)數(shù)據(jù)相關(guān)參數(shù)對(duì)所述數(shù)據(jù)進(jìn)行去重,合并,排序等處理。[0028]具體的,步驟S120中,所述預(yù)設(shè)的業(yè)務(wù)邏輯具體包括:數(shù)據(jù)的聚合操作、數(shù)據(jù)轉(zhuǎn)換操作以及數(shù)據(jù)的連接操作。[0029]本步驟中,進(jìn)行業(yè)務(wù)處理,可以對(duì)具有同一個(gè)所述唯一標(biāo)示的數(shù)據(jù)進(jìn)行所述業(yè)務(wù)處理;和/或,對(duì)同一個(gè)所述數(shù)據(jù)類別的數(shù)據(jù)進(jìn)行所述業(yè)務(wù)處理。[°03°]以具有同一個(gè)所述唯一標(biāo)示的數(shù)據(jù)的聚合操作為例,Reduce(key,valList)中有兩個(gè)參數(shù),key是數(shù)據(jù)記錄的所述唯一識(shí)別標(biāo)示,valList是同一個(gè)key的值的列表。[0031]例如:Reduce處理的是數(shù)據(jù)是:張三一》(語文99,語文99,語文99,數(shù)學(xué)100,數(shù)學(xué)900),其中,這條數(shù)據(jù)的key=張三,valList=(語文99,語文99,語文99,數(shù)學(xué)100,數(shù)學(xué)900),數(shù)據(jù)類型type=學(xué)科(語文/數(shù)學(xué))。[0032]對(duì)同一個(gè)key=張三的數(shù)據(jù)進(jìn)行聚合處理完的結(jié)果可以是:[0033]key=張三type=語文dataItem=99[0034]key=張三type=數(shù)學(xué)dataItem=100[0035]例如,下一待處理的數(shù)據(jù)記錄為“Lily-》(語文99,語文99,語文99,數(shù)學(xué)100,數(shù)學(xué)900)”[0036]對(duì)同一個(gè)key=Lily的數(shù)據(jù)聚合處理完的結(jié)果之一可以是:[0037]key=Lilytype=語文dataItem=99[0038]在這個(gè)聚合過程中,將語文的三個(gè)值去重,取一個(gè)和最終值作為聚合處理的結(jié)果。[0039]對(duì)同一個(gè)key=Lily的數(shù)據(jù)聚合處理完的結(jié)果之一可以是:[0040]key=Lilytype=數(shù)學(xué)dataItem=100[0041]在這個(gè)聚合過程中,將數(shù)學(xué)的值去掉不合理的,取一個(gè)合理值,作為聚合操作的結(jié)果O[0042]當(dāng)然,以同一個(gè)所述數(shù)據(jù)類別的數(shù)據(jù)的聚合操作為例,Reduce(type,valList)中有兩個(gè)參數(shù),type是數(shù)據(jù)記錄的數(shù)據(jù)分類,valList是同一個(gè)type的值的列表。[0043]例如:Reduce處理的是數(shù)據(jù)是“(小紅一》語文90)(小紅一》數(shù)學(xué)92)(小明一》語文91)(小明一》數(shù)學(xué)99)”其中,這條數(shù)據(jù)的type=學(xué)科,valList=(語文,數(shù)學(xué))。[0044]對(duì)同一個(gè)type=語文的數(shù)據(jù)進(jìn)行聚合處理完的結(jié)果可以是:[0045]type=語文key=小紅dataItem=90key=小明dataItem=91[0046]type=數(shù)學(xué)key=小紅dataItem=92key=小明dataItem=99[0047]具體的,在步驟S130中,將上一步驟得到的處理結(jié)果以及所述處理結(jié)果對(duì)應(yīng)的所述數(shù)據(jù)相關(guān)參數(shù)交由預(yù)先創(chuàng)建的CustomMultipleOutputFormat的RecorcWriter對(duì)象,由RecordWriter對(duì)象調(diào)用write方法,將數(shù)據(jù)持久化保存到分布式文件系統(tǒng)HDFS中。[0048]其中,CustomMultipleOutputFormat類對(duì)象聲明一種MR(MapReduce)的計(jì)算結(jié)果輸出到分布式文件系統(tǒng)的方式,它可以使計(jì)算結(jié)果根據(jù)結(jié)果數(shù)據(jù)的型,分別持久化到指定的存儲(chǔ)路徑下。[0049]CustomMultipleOutputFormat類對(duì)象實(shí)現(xiàn)的邏輯主要介紹如下:[0050]CustomMultipIeOutputFormat類對(duì)象繼承自O(shè)utputFormat類。需要說明的是,繼承OutputFormat類是為了讓Hadoop認(rèn)識(shí)這種自定義的輸出格式,從而能夠直接利用封裝好的CustomMultipleOutputFormat類對(duì)象進(jìn)行自定義路徑的輸出。[0051]本申請(qǐng)實(shí)施例中,數(shù)據(jù)被處理后進(jìn)行輸出時(shí),需要持久化保存在HDFS上,因此,本申請(qǐng)實(shí)施例中,在CustomMultipIeOutputFormat類對(duì)象內(nèi)定義一個(gè)LineRecordWriter〈K,V>類型的writer對(duì)象,這個(gè)對(duì)象繼承自RecordWriter〈K,V〉,其中K指的是數(shù)據(jù)的類別,V指的是數(shù)據(jù)。LineRecordWriter〈K,V〉類型的writer方法可以將數(shù)據(jù)保存到HDFS(分布式文件系統(tǒng))上。[0052]在CustomMultipleOutputFormat類對(duì)象中,需要聲明一個(gè)Map〈String,RecordWriter〈Text,NulI^ritableWrecorderMap類型的集合對(duì)象,這個(gè)集合對(duì)象主要用來保存一種數(shù)據(jù)類別對(duì)應(yīng)的RecordWriter對(duì)象。[0053]CustomMultipleOutputFormat類對(duì)象的重寫方法getRecordWriterO用于初始一個(gè)RecordWriter對(duì)象,初始化RecordWriter對(duì)象時(shí)需要重寫新RecordWriter對(duì)象write(key,value)方法,這個(gè)方法是供Reduce函數(shù)持久化數(shù)據(jù)時(shí)使用。[0054]其中,重寫的write(key,value)方法的邏輯如下:[0055]a.先判斷recorderMap里面是否有key對(duì)應(yīng)的LineRecordWriter,如果沒有,就重新創(chuàng)建一個(gè)LineRecorcWriter對(duì)象,這個(gè)對(duì)象初始化時(shí)讀取配置文件,從配置文件中取出該類型數(shù)據(jù)的存儲(chǔ)位置。最后把LineRecordWriter放入到recorderMap中。[0056]b.如果recorderMap里面有key對(duì)應(yīng)的LineRecordWriter,則直接使用這個(gè)已存在的LineRecordWriter對(duì)象。[0057]c.調(diào)用LineRecordWriter對(duì)象的writer方法,將數(shù)據(jù)持久化到HDFS中。[°°58]本申請(qǐng)實(shí)施例中,預(yù)先在MapReduce的驅(qū)動(dòng)類中指定對(duì)Reduce輸出結(jié)果的處理對(duì)象類是CustomMultipleOutputFormat類,以使得后續(xù)接收到數(shù)據(jù)處理任務(wù)能夠直接調(diào)用。[0059]本申請(qǐng)實(shí)施例中,預(yù)先在CustomMultipleOutputFormat的配置文件中保存每一數(shù)據(jù)相關(guān)參數(shù)對(duì)應(yīng)的處理結(jié)果的存儲(chǔ)路徑;可以是某一所述唯一標(biāo)示對(duì)應(yīng)的數(shù)據(jù)處理結(jié)果的輸出路徑,或某一數(shù)據(jù)類型以及該類型數(shù)據(jù)對(duì)應(yīng)的數(shù)據(jù)處理結(jié)果的輸出路徑。當(dāng)數(shù)據(jù)的唯一識(shí)別標(biāo)識(shí)key=學(xué)生姓名,數(shù)據(jù)類別type=學(xué)科類型時(shí),可以有如下的路徑定義的例子:[0060]在對(duì)學(xué)生的考試成績進(jìn)行統(tǒng)計(jì)時(shí),可以在配置文件中定義不同學(xué)生姓名對(duì)應(yīng)的數(shù)據(jù)處理結(jié)果的存儲(chǔ)路徑,如:[0061]/數(shù)據(jù)庫/學(xué)生成績/namel/[0062]/數(shù)據(jù)庫/學(xué)生成績/namel/[0063]/數(shù)據(jù)庫/學(xué)生成績/namel/[0064]在另一種路徑定義方式中,可以在配置文件中定義不同學(xué)科對(duì)應(yīng)的數(shù)據(jù)處理結(jié)果的存儲(chǔ)路徑,如:[0065]/數(shù)據(jù)庫/學(xué)生成績/語文/[0066]/數(shù)據(jù)庫/學(xué)生成績/數(shù)學(xué)/[0067]/數(shù)據(jù)庫/學(xué)生成績/英語/[0068]將所述配置文件添加到分布式緩存中,分布式緩存會(huì)被Hadoop分發(fā)到各個(gè)計(jì)算任務(wù)所在的計(jì)算節(jié)點(diǎn)上。由此,分布式中任意一個(gè)計(jì)算節(jié)點(diǎn)服務(wù)器接收到數(shù)據(jù)處理任務(wù)時(shí)都可以使用所述配置文件進(jìn)行數(shù)據(jù)文件輸出的控制。[0069]例如,承接上述例子,待處理的數(shù)據(jù)記錄為“Lily-》(語文99,語文99,語文99,數(shù)學(xué)100,數(shù)學(xué)900)”[0070]聚合處理完的結(jié)果可以是:[0071]key=Lilytype=語文dataItem=99[0072]key=Lilytype=數(shù)學(xué)dataItem=100[0073]當(dāng)CustomMultipleOutputFormat類對(duì)象接收到這一數(shù)據(jù)處理結(jié)果時(shí),將“key=Lilytype=語文dataItem=99”保存到語文所在的存儲(chǔ)目錄中,將“key=Lilytype=數(shù)學(xué)dataItem=100”保存到數(shù)學(xué)所在的存儲(chǔ)目錄中。[0074]目前在大數(shù)據(jù)處理的場景中,從客戶端,各個(gè)智能終端,網(wǎng)站流量等收集來的數(shù)據(jù)都是預(yù)先定義了規(guī)范的,標(biāo)簽和分類是在規(guī)范里聲明的。因此,本申請(qǐng)實(shí)施例中,對(duì)數(shù)據(jù)進(jìn)行分析時(shí),很容易就能獲得數(shù)據(jù)的唯一識(shí)別標(biāo)示以及數(shù)據(jù)類別。在對(duì)處理后的數(shù)據(jù)進(jìn)行輸出時(shí),直接讀取所述處理后的數(shù)據(jù)對(duì)應(yīng)的唯一識(shí)別標(biāo)示以及數(shù)據(jù)類別,查詢預(yù)先定義的路徑即可將數(shù)據(jù)輸出至相應(yīng)的目錄。當(dāng)然,需要說明的是,本申請(qǐng)實(shí)施例中,所述預(yù)先定義的路徑可以根據(jù)用戶的需求進(jìn)行更改,因此,本申請(qǐng)實(shí)施例的技術(shù)方案能夠適應(yīng)各種大數(shù)據(jù)處理的應(yīng)用場景。[0075]本實(shí)施例中,通過獲取數(shù)據(jù)的相關(guān)參數(shù),再根據(jù)所述相關(guān)參數(shù)對(duì)數(shù)據(jù)進(jìn)行分類從而對(duì)數(shù)據(jù)的輸出進(jìn)行控制,改變了現(xiàn)有技術(shù)中輸出MapReduce的數(shù)據(jù)處理結(jié)果時(shí),不能夠自定義輸出目錄的缺陷,實(shí)現(xiàn)了根據(jù)數(shù)據(jù)的種類以及數(shù)據(jù)屬性將數(shù)據(jù)一步到位地輸出到相應(yīng)的目錄下,提高了分布式數(shù)據(jù)處理的效率。[0076]圖2是本申請(qǐng)實(shí)施例二的裝置結(jié)構(gòu)示意圖,結(jié)合圖2,本申請(qǐng)實(shí)施例一種數(shù)據(jù)輸出控制裝置,包括如下的步驟:[0077]參數(shù)獲取模塊210,用于接收到數(shù)據(jù)的處理任務(wù),對(duì)所述數(shù)據(jù)進(jìn)行分析,獲取所述數(shù)據(jù)的數(shù)據(jù)相關(guān)參數(shù);[0078]業(yè)務(wù)處理模塊220,用于根據(jù)所述數(shù)據(jù)相關(guān)參數(shù),按照預(yù)設(shè)的業(yè)務(wù)邏輯對(duì)所述數(shù)據(jù)進(jìn)行業(yè)務(wù)處理;[0079]輸出模塊230,用于調(diào)用預(yù)設(shè)的數(shù)據(jù)輸出控制類的配置文件,根據(jù)所述數(shù)據(jù)相關(guān)參數(shù)查詢所述業(yè)務(wù)處理得到的處理結(jié)果對(duì)應(yīng)的數(shù)據(jù)輸出路徑,并將每一所述處理結(jié)果輸出至相應(yīng)的所述數(shù)據(jù)輸出路徑。[0080]其中,所述數(shù)據(jù)相關(guān)參數(shù)包括:每一所述數(shù)據(jù)的唯一標(biāo)示、所述數(shù)據(jù)的類型以及所述數(shù)據(jù)的結(jié)果指標(biāo)。[0081]其中,所述業(yè)務(wù)處理模塊220具體用于:[0082]對(duì)具有同一個(gè)所述唯一標(biāo)的數(shù)據(jù)進(jìn)行所述業(yè)務(wù)處理;和/或,[0083]對(duì)同一個(gè)所述數(shù)據(jù)類別的數(shù)據(jù)進(jìn)行所述業(yè)務(wù)處理。[0084]其中,所述預(yù)設(shè)的業(yè)務(wù)邏輯具體包括:數(shù)據(jù)的聚合操作、數(shù)據(jù)轉(zhuǎn)換操作以及數(shù)據(jù)的連接操作。[0085]其中,所述裝置還包括類創(chuàng)建模塊240,所述類創(chuàng)建模塊240用于:[0086]創(chuàng)建數(shù)據(jù)輸出控制類并設(shè)置默認(rèn)數(shù)據(jù)存儲(chǔ)路徑;設(shè)置配置文件中每一數(shù)據(jù)相關(guān)參數(shù)對(duì)應(yīng)的處理結(jié)果的存儲(chǔ)路徑;將所述配置文件分發(fā)到各個(gè)計(jì)算任務(wù)所在的節(jié)點(diǎn)服務(wù)器。[0087]圖2所示裝置可以執(zhí)行圖1所示實(shí)施例的方法,實(shí)現(xiàn)原理和技術(shù)效果參考圖1所示實(shí)施例,不再贅述。[0088]應(yīng)用實(shí)例[0089]以下部分將結(jié)合具體的應(yīng)用場景,以一個(gè)實(shí)際的例子對(duì)本申請(qǐng)實(shí)施例進(jìn)行進(jìn)一步地闡述:[0090]本申請(qǐng)實(shí)施例中自定義輸出路徑格式的實(shí)現(xiàn)類是CustomMultipleOutputFormat[0091]采用如下步驟可以利用CustomMultipleOutputFormat類,實(shí)現(xiàn)一次數(shù)據(jù)讀入,將MR(MapReduce)的處理結(jié)果根據(jù)數(shù)據(jù)的類別保存到各自存儲(chǔ)位置中。[0092]第一步:在MapReduce的驅(qū)動(dòng)類中指定輸出結(jié)果的處理對(duì)象類是CustomMultipleOutputFormat類。[0093]job.setOutputFormatClass(MultipleRCFiIeOutputFormat.class);[0094]設(shè)置默認(rèn)的計(jì)算結(jié)果存儲(chǔ)路徑[0095]FiIeOutputFormat.set0utputPath(job,out);[0096]加載配置文件,在配置文件中保存,數(shù)據(jù)類別以及該類別數(shù)據(jù)分析計(jì)算結(jié)果的存儲(chǔ)位置信息。將配置文件添加至分布式緩存中,分布式緩存會(huì)被Hadoop分發(fā)到各個(gè)計(jì)算任務(wù)所在的計(jì)算節(jié)點(diǎn)上。[0097]第二步:在Map任務(wù)階段,分析數(shù)據(jù)內(nèi)容,提取出一條記錄的唯一標(biāo)示key,數(shù)據(jù)的類別type,以及所關(guān)心的數(shù)據(jù)結(jié)果指標(biāo)dataItem。[0098]將對(duì)數(shù)據(jù)內(nèi)容的分析結(jié)果發(fā)送給下一個(gè)階段處理,在發(fā)送給一下階段的過程中,Hadoop會(huì)進(jìn)行去重,合并,排序等處理。[0099]第三步:在Reduce方法階段,將上一步傳遞到此的數(shù)據(jù)取出,并將同一個(gè)key的值列表按照業(yè)務(wù)邏輯進(jìn)行處理,例如是聚合,轉(zhuǎn)換,連接等操作),得到處理結(jié)果數(shù)據(jù),和類型標(biāo)不O[0100]然后將類型標(biāo)不和結(jié)果數(shù)據(jù)交給CustomMuItipIeOutputFormat的RecorcHVriter對(duì)象,RecordWriter對(duì)象調(diào)用write方法,將數(shù)據(jù)持久化保存到分布式文件系統(tǒng)HDFS中。[0101]以上所描述的裝置實(shí)施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部模塊來實(shí)現(xiàn)本實(shí)施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性的勞動(dòng)的情況下,即可以理解并實(shí)施。[0102]通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到各實(shí)施方式可借助軟件加必需的通用硬件平臺(tái)的方式來實(shí)現(xiàn),當(dāng)然也可以通過硬件?;谶@樣的理解,上述技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品可以存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,如R0M/RAM、磁碟、光盤等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)裝置(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)裝置等)執(zhí)行各個(gè)實(shí)施例或者實(shí)施例的某些部分所述的方法。[0103]最后應(yīng)說明的是:以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精神和范圍?!局鳈?quán)項(xiàng)】1.一種數(shù)據(jù)輸出控制方法,其特征在于,包括如下的步驟:接收到數(shù)據(jù)的處理任務(wù),對(duì)所述數(shù)據(jù)進(jìn)行分析,獲取所述數(shù)據(jù)的數(shù)據(jù)相關(guān)參數(shù);根據(jù)所述數(shù)據(jù)相關(guān)參數(shù),按照預(yù)設(shè)的業(yè)務(wù)邏輯對(duì)所述數(shù)據(jù)進(jìn)行業(yè)務(wù)處理;調(diào)用預(yù)設(shè)的數(shù)據(jù)輸出控制類的配置文件,根據(jù)所述數(shù)據(jù)相關(guān)參數(shù)查詢所述業(yè)務(wù)處理得到的處理結(jié)果對(duì)應(yīng)的數(shù)據(jù)輸出路徑,并將每一所述處理結(jié)果輸出至相應(yīng)的所述數(shù)據(jù)輸出路徑。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述數(shù)據(jù)相關(guān)參數(shù)包括:每一所述數(shù)據(jù)的唯一標(biāo)示、所述數(shù)據(jù)的類型以及所述數(shù)據(jù)的結(jié)果指標(biāo)。3.根據(jù)權(quán)利要求2所述的方法,其特征在于,根據(jù)所述數(shù)據(jù)相關(guān)參數(shù),按照預(yù)設(shè)的業(yè)務(wù)邏輯對(duì)所述數(shù)據(jù)進(jìn)行業(yè)務(wù)處理,具體包括:對(duì)具有同一個(gè)所述唯一標(biāo)的數(shù)據(jù)進(jìn)行所述業(yè)務(wù)處理;和/或,對(duì)同一個(gè)所述數(shù)據(jù)類別的數(shù)據(jù)進(jìn)行所述業(yè)務(wù)處理。4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述預(yù)設(shè)的業(yè)務(wù)邏輯具體包括:數(shù)據(jù)的聚合操作、數(shù)據(jù)轉(zhuǎn)換操作以及數(shù)據(jù)的連接操作。5.根據(jù)權(quán)利要求1所述的方法,其特征在于,調(diào)用預(yù)設(shè)的數(shù)據(jù)輸出控制類的配置文件之前,所述方法還包括:創(chuàng)建數(shù)據(jù)輸出控制類并設(shè)置默認(rèn)數(shù)據(jù)存儲(chǔ)路徑;設(shè)置配置文件中每一數(shù)據(jù)相關(guān)參數(shù)對(duì)應(yīng)的處理結(jié)果的存儲(chǔ)路徑;將所述配置文件分發(fā)到各個(gè)計(jì)算任務(wù)所在的節(jié)點(diǎn)服務(wù)器。6.一種數(shù)據(jù)輸出控制裝置,其特征在于,包括如下的步驟:參數(shù)獲取模塊,用于接收到數(shù)據(jù)的處理任務(wù),對(duì)所述數(shù)據(jù)進(jìn)行分析,獲取所述數(shù)據(jù)的數(shù)據(jù)相關(guān)參數(shù);業(yè)務(wù)處理模塊,用于根據(jù)所述數(shù)據(jù)相關(guān)參數(shù),按照預(yù)設(shè)的業(yè)務(wù)邏輯對(duì)所述數(shù)據(jù)進(jìn)行業(yè)務(wù)處理;輸出模塊,用于調(diào)用預(yù)設(shè)的數(shù)據(jù)輸出控制類的配置文件,根據(jù)所述數(shù)據(jù)相關(guān)參數(shù)查詢所述業(yè)務(wù)處理得到的處理結(jié)果對(duì)應(yīng)的數(shù)據(jù)輸出路徑,并將每一所述處理結(jié)果輸出至相應(yīng)的所述數(shù)據(jù)輸出路徑。7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述數(shù)據(jù)相關(guān)參數(shù)包括:每一所述數(shù)據(jù)的唯一標(biāo)示、所述數(shù)據(jù)的類型以及所述數(shù)據(jù)的結(jié)果指標(biāo)。8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述業(yè)務(wù)處理模塊具體用于:對(duì)具有同一個(gè)所述唯一標(biāo)的數(shù)據(jù)進(jìn)行所述業(yè)務(wù)處理;和/或,對(duì)同一個(gè)所述數(shù)據(jù)類別的數(shù)據(jù)進(jìn)行所述業(yè)務(wù)處理。9.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述預(yù)設(shè)的業(yè)務(wù)邏輯具體包括:數(shù)據(jù)的聚合操作、數(shù)據(jù)轉(zhuǎn)換操作以及數(shù)據(jù)的連接操作。10.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述裝置還包括類創(chuàng)建模塊,所述類創(chuàng)建模塊用于:創(chuàng)建數(shù)據(jù)輸出控制類并設(shè)置默認(rèn)數(shù)據(jù)存儲(chǔ)路徑;設(shè)置配置文件中每一數(shù)據(jù)相關(guān)參數(shù)對(duì)應(yīng)的處理結(jié)果的存儲(chǔ)路徑;將所述配置文件分發(fā)到各個(gè)計(jì)算任務(wù)所在的節(jié)點(diǎn)服務(wù)器?!疚臋n編號(hào)】G06F17/30GK105956049SQ201610267043【公開日】2016年9月21日【申請(qǐng)日】2016年4月26日【發(fā)明人】趙富欣【申請(qǐng)人】樂視控股(北京)有限公司,樂視網(wǎng)信息技術(shù)(北京)股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
海伦市| 垦利县| 曲周县| 昌宁县| 二手房| 工布江达县| 尉氏县| 洱源县| 雷山县| 博客| 本溪市| 常熟市| 繁昌县| 肥城市| 隆化县| 泽库县| 平陆县| 新龙县| 古交市| 安阳市| 苍溪县| 江阴市| 象山县| 嘉黎县| 乌恰县| 平昌县| 临邑县| 象州县| 康平县| 白玉县| 比如县| 和政县| 灌南县| 新巴尔虎左旗| 黄浦区| 蒙城县| 卓资县| 星座| 惠来县| 名山县| 德保县|