99偷拍视频精品区一区二,口述久久久久久久久久久久,国产精品夫妇激情啪发布,成人永久免费网站在线观看,国产精品高清免费在线,青青草在线观看视频观看,久久久久久国产一区,天天婷婷久久18禁,日韩动漫av在线播放直播

如何通過inputSplit分片size控制map數(shù)目

本篇內(nèi)容主要講解“如何通過inputSplit分片size控制map數(shù)目”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“如何通過inputSplit分片size控制map數(shù)目”吧!

10年的雞西梨樹網(wǎng)站建設(shè)經(jīng)驗(yàn),針對設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。成都全網(wǎng)營銷推廣的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整雞西梨樹建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)公司從事“雞西梨樹網(wǎng)站設(shè)計(jì)”,“雞西梨樹網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

前言:在具體執(zhí)行Hadoop程序的時(shí)候,我們要根據(jù)不同的情況來設(shè)置Map的個(gè)數(shù)。除了設(shè)置固定的每個(gè)節(jié)點(diǎn)上可運(yùn)行的最大map個(gè)數(shù)外,我們還需要控制真正執(zhí)行Map操作的任務(wù)個(gè)數(shù)。
 1.如何控制實(shí)際運(yùn)行的map任務(wù)個(gè)數(shù)
 我們知道,文件在上傳到Hdfs文件系統(tǒng)的時(shí)候,被切分成不同的Block塊(默認(rèn)大小為64MB)。但是每個(gè)Map處理的分塊有時(shí)候并不是系統(tǒng)的物理Block塊大小。實(shí)際處理的輸入分塊的大小是根據(jù)InputSplit來設(shè)定的,那么InputSplit是怎么得到的呢?

 InputSplit=Math.max(minSize, Math.min(maxSize, blockSize)

 其中:minSize=mapred.min.split.size

     maxSize=mapred.max.split.size

我們通過改變InputFormat中分片的多少來控制實(shí)際使用的Map數(shù)量,而控制InputFormat中的分片多少就需要控制每個(gè)InputSplit分片的大小
 2.如何控制每個(gè)split分片的大小
 Hadoop默認(rèn)的輸入格式是TextInputFormat,他里邊定義了文件讀取的方式和分片的方式。我們打開他的源文件(org.apache.hadoop.mapreduce.lib.input包中):

package org.apache.hadoop.mapreduce.lib.input;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.io.compress.CompressionCodec;
import org.apache.hadoop.io.compress.CompressionCodecFactory;
import org.apache.hadoop.io.compress.SplittableCompressionCodec;
import org.apache.hadoop.mapreduce.InputFormat;
import org.apache.hadoop.mapreduce.InputSplit;
import org.apache.hadoop.mapreduce.JobContext;
import org.apache.hadoop.mapreduce.RecordReader;
import org.apache.hadoop.mapreduce.TaskAttemptContext;
public class TextInputFormat extends FileInputFormat<LongWritable, Text> {
   @Override
   public RecordReader<LongWritable, Text> 
     createRecordReader(InputSplit split,
                       TaskAttemptContext context) {
     return new LineRecordReader();
   }
   @Override
   protected boolean isSplitable(JobContext context, Path file) {
     CompressionCodec codec = 
       new CompressionCodecFactory(context.getConfiguration()).getCodec(file);
     if (null == codec) {
       return true;
     }
     return codec instanceof SplittableCompressionCodec;
   }
}

通過源代碼,我們發(fā)現(xiàn)TextInputFormat繼承了FileInputFormat,而在TextInputFormat中,我們并沒有發(fā)現(xiàn)具體的進(jìn)行文件切分的部分,TextInputFormat應(yīng)該是采用了FileInputFormat默認(rèn)的InputSplit方法。因此,我們打開FileInputFormat的源代碼,在其中發(fā)現(xiàn):
 

 public static void setMinInputSplitSize(Job job,long size) {
     job.getConfiguration().setLong("mapred.min.split.size", size);
   }
   public static long getMinSplitSize(JobContext job) {
     return job.getConfiguration().getLong("mapred.min.split.size", 1L);
   }
   
 public static void setMaxInputSplitSize(Job job,long size) {
     job.getConfiguration().setLong("mapred.max.split.size", size);
   }
   public static long getMaxSplitSize(JobContext context) {
     return context.getConfiguration().getLong("mapred.max.split.size",Long.MAX_VALUE);
   }

如上我們可以看到,Hadoop在這里實(shí)現(xiàn)了對mapred.min.split.size和mapred.max.split.size的定義,且默認(rèn)值分別為1和Long的最大。因此,我們在程序只需重新賦值給這兩個(gè)值就可以控制InputSplit分片的大小了。
3.假如我們想要設(shè)置的分片大小為10MB
 則我們可以在MapReduce程序的驅(qū)動(dòng)部分添加如下代碼:

TextInputFormat.setMinInputSplitSize(job,1024L);//設(shè)置最小分片大小

TextInputFormat.setMaxInputSplitSize(job,1024×1024×10L);//設(shè)置最大分片大小

到此,相信大家對“如何通過inputSplit分片size控制map數(shù)目”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

分享文章:如何通過inputSplit分片size控制map數(shù)目
文章URL:http://www.yijiale78.com/article26/gsohcg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站外貿(mào)網(wǎng)站建設(shè)微信公眾號(hào)網(wǎng)站設(shè)計(jì)公司品牌網(wǎng)站建設(shè)定制網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)