本篇內(nèi)容主要講解“MapReduce中的Partitioner怎么使用”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“MapReduce中的Partitioner怎么使用”吧!
為新疆等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及新疆網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、新疆網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!
問題導(dǎo)讀:
1.Partitioner分區(qū)類的作用是什么?
2.getPartition()三個(gè)參數(shù)分別是什么?
3.numReduceTasks指的是設(shè)置的Reducer任務(wù)數(shù)量,默認(rèn)值是是多少?
擴(kuò)展:
如果不同類型的數(shù)據(jù)被分配到了同一個(gè)分區(qū),輸出的數(shù)據(jù)是否還是有序的?
在進(jìn)行MapReduce計(jì)算時(shí),有時(shí)候需要把最終的輸出數(shù)據(jù)分到不同的文件中,比如按照省份劃分的話,需要把同一省份的數(shù)據(jù)放到一個(gè)文件中;按照性別劃分的話,需要把同一性別的數(shù)據(jù)放到一個(gè)文件中。我們知道最終的輸出數(shù)據(jù)是來自于Reducer任務(wù)。那么,如果要得到多個(gè)文件,意味著有同樣數(shù)量的Reducer任務(wù)在運(yùn)行。Reducer任務(wù)的數(shù)據(jù)來自于Mapper任務(wù),也就說Mapper任務(wù)要?jiǎng)澐謹(jǐn)?shù)據(jù),對(duì)于不同的數(shù)據(jù)分配給不同的Reducer任務(wù)運(yùn)行。Mapper任務(wù)劃分?jǐn)?shù)據(jù)的過程就稱作Partition。負(fù)責(zé)實(shí)現(xiàn)劃分?jǐn)?shù)據(jù)的類稱作Partitioner。
在我們前面講過的例子中,始終沒有提到分區(qū),那是因?yàn)榭蚣軆?nèi)置了分區(qū)類,稱作HashPartitioner。我們看一下源碼,如圖6-6
圖6-6
在圖6-6中,HashPartitioner是處理Mapper任務(wù)輸出的,getPartition()方法有三個(gè)形參,key、value分別指的是Mapper任務(wù)的輸出,numReduceTasks指的是設(shè)置的Reducer任務(wù)數(shù)量,默認(rèn)值是1。那么任何整數(shù)與1相除的余數(shù)肯定是0。也就是說getPartition(…)方法的返回值總是0。也就是Mapper任務(wù)的輸出總是送給一個(gè)Reducer任務(wù),最終只能輸出到一個(gè)文件中。
據(jù)此分析,如果想要最終輸出到多個(gè)文件中,在Mapper任務(wù)中對(duì)數(shù)據(jù)應(yīng)該劃分到多個(gè)區(qū)中。那么,我們只需要按照一定的規(guī)則讓getPartition(…)方法的返回值是0,1,2,3…即可。
假設(shè)我們按照性別分區(qū),那么可以覆蓋Partitioner類的getpartition(…)方法,代碼如圖6-7
圖6-7
在圖6-7中,我們分別使用0、1、2與numPartitions相除。如果想把數(shù)據(jù)分到三個(gè)不同的輸出中,意味著numPartitions的值是3。這樣,0%3、1%3、2%3的值才是三個(gè)不同的。那么,我們怎么使用哪?只需要在驅(qū)動(dòng)中進(jìn)行兩個(gè)操作即可,如圖6-8
圖6-8
在圖6-8中,我們使用了自定義的分區(qū)類,并且制定了numReduceTasks。這里的numReduceTasks在內(nèi)部就把值賦給了分區(qū)類中形式參數(shù)numPartitions。
到此,相信大家對(duì)“MapReduce中的Partitioner怎么使用”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
網(wǎng)站題目:MapReduce中的Partitioner怎么使用
文章分享:http://sd-ha.com/article12/gpsjgc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣、電子商務(wù)、移動(dòng)網(wǎng)站建設(shè)、企業(yè)網(wǎng)站制作、品牌網(wǎng)站建設(shè)、云服務(wù)器
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)