网站运营需要学什么,手机网站制作吧,外协加工订单网,网站建设全国排名目录
1.InputFormat数据输入
1.1.切片与MapTask并行度决定机制
1.2.Job提交流程源码和切片源码
1.3.FileInputFormat切片机制
1.4.TextInputFormat
1.5.CombineTextInputFormat切片机制
1.6.CombineTextInputFormat 1.InputFormat数据输入
1.1.切片与MapTask并行度决定…目录
1.InputFormat数据输入
1.1.切片与MapTask并行度决定机制
1.2.Job提交流程源码和切片源码
1.3.FileInputFormat切片机制
1.4.TextInputFormat
1.5.CombineTextInputFormat切片机制
1.6.CombineTextInputFormat 1.InputFormat数据输入
1.1.切片与MapTask并行度决定机制 MapTask的并行度决定Map阶段的任务处理并发度进而影响到整个Job的处理速度。
MapTask并行度决定机制 数据块Block是HDFS物理上的数据分割数据块是HDFS存储数据单位 数据切片数据切片是MapReduce程序计算输入数据的单位一个切片会对应一个MapTask逻辑切分并非物理切分 1.一个Job的Map阶段并行度由客户端在提交Job时的切片数决定 2.每一个Split切片分配一个MapTask并行实例处理 3.默认情况下切片大小BlockSize 4.切片时不考虑数据集整体而是逐个针对每个文件单独切片 1.2.Job提交流程源码和切片源码 1Job提交流程源码 2FileInputFormat切片源码 1.程序先找到数据存储的目录 2.开始遍历处理规划切片目录下的每一个文件 3.遍历第一个文件 3.1.获取文件大小fs.sizeOf(txt) 3.2.计算切片大小computeSplitSize(Math.max(minSize.Math.min(maxSize.blocksize)))blocksize128M 3.3.默认情况下切片大小blocksize 3.4.开始切片0-128M128-256M256-300M每次切片时都要判断切完剩下的部分是否大于块的1.1倍不大于1.1倍就划分一块切片 3.5.将切片信息写到一个切片规划文件中 3.6.InputSplit只记录切片的元数据信息比如起始位置、长度以及所在节点列表 4.提交切片规划文件到Yarn上Yarn上的MrAppMaster就可以根据切片规划文件计算开启MapTask个数
1.3.FileInputFormat切片机制
1切片机制 1.简单的按照文件的长度进行切片 2.切片大小默认等于bolck大小 3.切片时不考虑数据集整体而是逐个针对每一个文件单独切片
2FileInputFormat切片大小的参数配置 源码中计算切片大小的公式 Math.max(minSize,Math.min(maxSize,blockSize)) mapreduce.input.fileinputformat.split.minsize1默认值为1 mapreduce.input.fileinputformat.split.maxsizeLong.MAXValue默认值Long.MAXValue 因此默认情况下 切片大小blockSize 切片大小设置 maxsize切片最大值参数如果调的比blockSize小则会让切片变小而且等于配置的这个参数的值 minSize切片最小值参数调的比blockSize大则可以让切片变得比blockSize大 获取切片信息API //获取切片的文件名称
String name inputSplit.getPath().getName();
//根据文件类型获取切片信息
FileSplit inputSplit (FileSplit)context.getInputSplit();
1.4.TextInputFormat
1.5.CombineTextInputFormat切片机制
1应用场景 用于小文件过多的场景可以将多个小文件从逻辑上规划到一个切片中这样多个小文件就可以交给一个MapTask处理
2虚拟存储切片最大值设置 CombineTextInputFormat.setMaxInputSplitSize(job,4194304);//4M
3)切片机制 生成切片过程包括虚拟存储过程和切片过程两部分 1.6.CombineTextInputFormat