




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
MapReduce的類(lèi)型與格式MapReduce數(shù)據(jù)處理模型非常簡(jiǎn)單:map和reduce函數(shù)的輸入和輸出是鍵/值對(duì)(key/valuepair)。本章深入討論MapReduce模型,重點(diǎn)介紹各種類(lèi)型的數(shù)據(jù)(從簡(jiǎn)單文本到結(jié)構(gòu)化的二進(jìn)制對(duì)象)如何在MapReduce中使用引言目錄MapReduce的類(lèi)型
默認(rèn)的MapReduce作業(yè)輸入格式
輸入分片與記錄文本輸入二進(jìn)制輸入多種輸入數(shù)據(jù)庫(kù)輸入(和輸出)輸出格式
文本輸出二進(jìn)制輸出多個(gè)輸出延遲輸出數(shù)據(jù)庫(kù)輸出MapReduce的類(lèi)型
map:(K1,V1)list(K2,V2)reduce:(K2,list(V2))list(K3,V3)一般來(lái)說(shuō),map函數(shù)輸入的鍵/值的類(lèi)型(K1和V1)不同于輸出類(lèi)型(K2和V2)reduce函數(shù)的輸入類(lèi)型必須與map函數(shù)的輸出類(lèi)型相同,但reduce函數(shù)的輸出類(lèi)型可以不同于輸入類(lèi)型MapReduce的類(lèi)型
partition:(K2,V2)integerpartition函數(shù)將中間的鍵/值對(duì)(K2和V2)進(jìn)行處理,并且返回一個(gè)分區(qū)索引。實(shí)際上分區(qū)單獨(dú)由鍵決定MapReduce的類(lèi)型
為什么不能結(jié)合mapper和reducer導(dǎo)出類(lèi)型呢?
默認(rèn)的MapReduce作業(yè)默認(rèn)的輸入格式是TextInputFormat,它產(chǎn)生的鍵類(lèi)型是LongWritable,值類(lèi)型是Text(文本行)默認(rèn)的mapper是IdentityMapper,它將輸入的鍵和值原封不動(dòng)地寫(xiě)到輸出中IdentityMapper是一個(gè)泛型類(lèi)型,它可以接受任何鍵或值的類(lèi)型,只要map輸入和輸出鍵的類(lèi)型相同,值的類(lèi)型也相同就可以
默認(rèn)的MapReduce作業(yè)默認(rèn)的partitioner是HashPartitioner,它對(duì)每條記錄的鍵進(jìn)行哈希操作以決定該記錄應(yīng)該屬于哪個(gè)分區(qū)。每個(gè)分區(qū)對(duì)應(yīng)一個(gè)reducer任務(wù)
鍵的哈希碼被轉(zhuǎn)換為一個(gè)非負(fù)整數(shù),它由哈希值與最大的整型值做一次按位與操作而獲得,然后用分區(qū)數(shù)進(jìn)行取模操作,來(lái)決定該記錄屬于哪個(gè)分區(qū)索引
默認(rèn)的MapReduce作業(yè)默認(rèn)的reducer是IdentityReducer,它也是一個(gè)泛型類(lèi)型,它簡(jiǎn)單的將所有的輸入寫(xiě)到輸出中
大多數(shù)MapReduce程序不會(huì)一直用相同的鍵或值類(lèi)型,所以就想上一節(jié)中描述的那樣,必須配置作業(yè)來(lái)聲明使用的類(lèi)型
默認(rèn)的Streaming作業(yè)必須提供一個(gè)mapper因?yàn)槟J(rèn)的輸入格式TextInputFormat產(chǎn)生的鍵類(lèi)型是LongWritable,值類(lèi)型是Text,而Streaming的輸出鍵和值(包括map的鍵和值)都是Text類(lèi)型。默認(rèn)的IdentityMapper無(wú)法將LongWritable類(lèi)型的鍵轉(zhuǎn)換為T(mén)ext類(lèi)型的鍵Streaming中的鍵和值Streaming應(yīng)用可以決定分隔符,該分隔符用于通過(guò)標(biāo)準(zhǔn)輸入把鍵/值對(duì)轉(zhuǎn)換為一串比特值發(fā)送到map或reduce函數(shù)。分隔符默認(rèn)情況下是Tab(制表符),但如果鍵或值本身含有Tab,它能將分隔符修改成其他符號(hào)輸出鍵/值對(duì)時(shí),也需要用一個(gè)可配置的分隔符來(lái)進(jìn)行分割Streaming中的鍵和值輸入格式輸入格式輸入分片與記錄一個(gè)輸入分片(split)就是由單個(gè)map處理的輸入塊每條記錄就是一個(gè)鍵/值對(duì)在數(shù)據(jù)庫(kù)的場(chǎng)景中,一個(gè)輸入分片對(duì)應(yīng)于一個(gè)表上的若干行,而一條記錄對(duì)應(yīng)到一行(DBInputFormat正是這么做的,它這種輸入格式用于從關(guān)系數(shù)據(jù)庫(kù)讀取數(shù)據(jù))。輸入格式輸入分片與記錄輸入分片(split)在Java中被表示為InputSplit接口InputSplit包含一個(gè)以字節(jié)為單位的長(zhǎng)度和一組存儲(chǔ)位置(即一組主機(jī)名)輸入格式輸入分片與記錄InputSplit是由InputForamt創(chuàng)建的。InputForamt負(fù)責(zé)產(chǎn)生輸入分片并將它們分割成記錄。輸入格式FileInputFormat類(lèi)FileInputFormat是所有使用文件作為其數(shù)據(jù)源的InputFormat實(shí)現(xiàn)的基類(lèi)提供了兩個(gè)功能:一個(gè)定義哪些文件包含在一個(gè)作業(yè)的輸入中,一個(gè)為輸入文件生成分片的實(shí)現(xiàn)。輸入格式FileInputFormat類(lèi)的輸入路徑輸入格式FileInputFormat類(lèi)的輸入路徑add和set方法允許指定包含的文件。如果需要排除特定文件,可以使用setInputPathFilter()方法設(shè)置一個(gè)過(guò)濾器即使不設(shè)置過(guò)濾器,也會(huì)使用一個(gè)默認(rèn)的過(guò)濾器來(lái)排除隱藏文件(名稱(chēng)中以"."和"_"開(kāi)頭的文件)輸入格式FileInputFormat類(lèi)的輸入分片最小的輸入分片大小通常是1字節(jié)最大的分片大小默認(rèn)為Javalong類(lèi)型表示的最大值輸入格式FileInputFormat類(lèi)的輸入分片若需增加map數(shù),可以把mapred.min.split.size調(diào)小,把mapred.max.split.size調(diào)大若需減少map數(shù),可以把mapred.min.split.size調(diào)大,并把mapred.max.split.size調(diào)小輸入格式FileInputFormat類(lèi)的輸入分片輸入格式小文件與CombineFileInputFormatFileInputFormat會(huì)讓每個(gè)輸入文件至少產(chǎn)生一個(gè)map任務(wù),因此如果你的輸入目錄下有許多文件,而每個(gè)文件都很小,例如幾十kb,那么每個(gè)文件都產(chǎn)生一個(gè)map會(huì)增加調(diào)度開(kāi)銷(xiāo).作業(yè)變慢.那么如何防止這種問(wèn)題呢?CombineFileInputFormat能有效的減少map數(shù)量.CombineFileInputFormat是針對(duì)小文件而設(shè)計(jì)的抽象類(lèi)輸入格式避免切分有些應(yīng)用程序可能不希望文件被切分,而是用一個(gè)mapper完整處理每一個(gè)輸入文件。輸入格式把整個(gè)文件作為一條記錄來(lái)處理輸入格式將若干個(gè)小文件打包成順序文件的MapReduce程序輸入格式TextInputFormat默認(rèn)的InputFormat,鍵是LongWritable類(lèi)型,存儲(chǔ)該行在整個(gè)文件中的字節(jié)偏移量,值是Text類(lèi)型,是這行的內(nèi)容,不包括任何終止符(換行符和回車(chē)符)輸入格式KeyValueTextInputFormat輸入格式NLineInputFormat輸入格式XML大多數(shù)XML解析器會(huì)處理整個(gè)XML文檔,所以如果一個(gè)大型XML文檔由多個(gè)輸入分片組成,那么單獨(dú)處理每個(gè)分片就有挑戰(zhàn)了把整個(gè)文件作為一條記錄來(lái)處理StreamXmlRecordReader類(lèi)輸入格式二進(jìn)制輸入SequenceFileInputFormatHadoop的順序文件格式存儲(chǔ)二進(jìn)制的鍵/值對(duì)的序列SequenceFileAsTextInputFormatSequenceFileAsBinaryInputFormat變體二進(jìn)制對(duì)象SequenceFile.Reader的appendRaw()方法輸入格式多種輸入數(shù)據(jù)格式往往會(huì)隨著時(shí)間演變對(duì)不同的數(shù)據(jù)集進(jìn)行連接(join,也稱(chēng)“聯(lián)接”)操作MultipleInputs允許為每條輸入路徑指定InputFormat和Mapper輸入格式數(shù)據(jù)庫(kù)輸入(和輸出)DBInputFormat用于使用JDBC從關(guān)系數(shù)據(jù)庫(kù)中讀取數(shù)據(jù)最好用于加載小量的數(shù)據(jù)集,如果需要與來(lái)自HDFS的大數(shù)據(jù)集連接,要使用MultipleInputsDBOutputFormat適用于將作業(yè)輸出數(shù)據(jù)(中等規(guī)模的數(shù)據(jù))轉(zhuǎn)儲(chǔ)到數(shù)據(jù)庫(kù)輸出格式文本輸出默認(rèn)的輸出格式是TextOutputFormat鍵和值可以是任意類(lèi)型,因?yàn)門(mén)extOutputFormat調(diào)用toString()方法把它們轉(zhuǎn)換為字符串每個(gè)鍵和值由制表符進(jìn)行分割與TextOutputFormat對(duì)應(yīng)的輸入格式是KeyValueTextInputFormatNullWritable輸出格式二進(jìn)制輸出SequenceFileOutputFormatSequenceFileAsBinaryOutputFormatMapFileOutputFormat輸出格式多個(gè)輸出輸出格式多個(gè)輸出MultipleOutputFormat可以將數(shù)據(jù)寫(xiě)到多個(gè)文件,這些文件的名稱(chēng)源于輸出的鍵和值抽象類(lèi),兩個(gè)實(shí)體子類(lèi):MultipleTextOutputF
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 多樣化六年級(jí)語(yǔ)文學(xué)習(xí)經(jīng)驗(yàn)分享試題及答案
- 2024年汽車(chē)美容師企業(yè)運(yùn)營(yíng)管理試題及答案
- 核心客戶的管理與維護(hù)策略
- 云南省楚雄彝族自治州2023-2024學(xué)年八年級(jí)下學(xué)期英語(yǔ)期中試卷(含答案)
- 預(yù)測(cè)2024年二手車(chē)評(píng)估師考試趨勢(shì)試題及答案
- 二手車(chē)市場(chǎng)營(yíng)銷(xiāo)策略的評(píng)估與調(diào)整試題及答案
- 2024年公務(wù)員考試的行政能力測(cè)試分析試題及答案
- 寵物營(yíng)養(yǎng)師發(fā)展的法律環(huán)境考題及答案
- 為何選擇成為二手車(chē)評(píng)估師試題及答案
- 2024年小自考公共事業(yè)管理考察內(nèi)容及答案
- 生物學(xué)基因組學(xué)課件
- 兩帶來(lái)范文(通用十六篇)
- 綜合錄井儀工作原理演示教學(xué)課件
- 房建監(jiān)理大綱(共114)
- 國(guó)際工程招投標(biāo)流程圖
- 城市環(huán)境衛(wèi)生工作物資消耗定額
- 液化氣站三級(jí)安全教育培訓(xùn)試題
- 經(jīng)濟(jì)法實(shí)用教程(理論部分)(第八版)(何辛)案例分析及參考答案
- 532近代前夜的危機(jī)
- 病原微生物實(shí)驗(yàn)室生物安全備案專(zhuān)家意見(jiàn)表
- (精心整理)朱德熙_說(shuō) “的”
評(píng)論
0/150
提交評(píng)論