作业流程和优化

MapReduce作业读取文件

Map任务数量由InputSplit决定,InputSplit分片大小默认是HDFS块大小(hadoop1.x=64mb,hadoop2.x是128mb)。
例如:
        MapReduce作业读取HDFS上(hadoop2.x)两个文件,一个是200MB,一个是100MB,这时候就有3个InputSplit,每个InputSplit会起一个Mapper任务读取,通过
    RecordReader转换为key,value提供Mapper函数使用

MapReduce作业调优:

1、关闭推测执行
        MapReduce模型将作业分解成任务,然后并行的运行任务是作业整体执行时间少于各个任务顺序执行时间。这使作业执行时间多运行缓慢的任务很敏感,因为运行一个缓慢
    的任务会使整个作业所用的时间远远长于其他任务的时间。当一个作业由成百上千时可能会出现拖后腿的任务。
        任务执行缓慢可能有多种原因,包括硬件老化或软件配置错误,但检测问题具体原因很难,因为任务总能成功执行完,尽管比预计时间长。hadoop不会尝试诊断或修复执行
    慢的任务。在一个任务运行比预期慢时,他会尽量检测,并启动另一个相同的任务作为备份,这就是推测执行(speculative execution);如果同时启动两个相同的任务他们
    会相互竞争,导致推测执行无法正常工作,这对集群资源是一种浪费。只有在一个作业的所有任务都启动之后才会启动推测任务,并只针对已经运行一段时间(至少一分钟)且
    比作业中其他任务平均进度慢的任务。一个任务成功完成后任何正在运行的重复任务都将中止。如果原任务在推测任务之前完成则推测任务就会被中止,同样,如果推测任务先
    完成则原任务就会被中止。
        推测任务只是一种优化措施,它并不能使作业运行的更加可靠。如果有一些软件缺陷造成的任务挂起或运行速度慢,依靠推测执行是不能成功解决的。默认情况下推测执行
    是启用的,可根据集群或每个作业,单独为map任务或reduce任务启用或禁用该功能。
        job.getConfiguration().setBoolean(job.MAP_SPECULATIVE, false);        //是否对Map Task启用推测执行机制,默认是true
        job.getConfiguration().setBoolean(job.REDUCE_SPECULATIVE, false);    //是否对Reduce Task启用推测执行机制,默认是true

2、开启jvm重用
        属性:mapred.job.reuse.jvm.num.tasks,默认值是1,在一个taskTracker上对于给定的作业的每个jvm上可以运行任务最大数。-1表示无限制,即同一个jvm可以被该作
    业的所有任务使用。
        conf.set("mapreduce.job.jvm.numtasks", "-1");                //开启jvm重用
        job.getConfiguration().setInt(job.JVM_NUMTASKS_TORUN, -1);    //开启jvm重用

3、跳过坏记录
        在MRv1中可通过启用skipping mode来跳过损坏的记录(格式错误或字段丢失),当启用后任务将正在处理的记录报告给tasktracker,任务失败时tasktracker会重新运行
    该任务,跳过导致任务失败的记录。由于额外的网络流量和记录错误以维护失败记录范围,所有只有在任务失败两次以上才会启用skipping mode。
        在MRv2中不再支持skipping mode选项。权威指南中建议在mapper和reducer代码中处理被损坏的记录。运行时检测到坏记录根据业务需求选择忽略或通过抛异常来终止作业
    运行;如果业务要求必须处理则可以通过计数器来计算作业中总的坏记录数,看问题影响的范围进行处理。
        conf.set("mapreduce.map.skip.maxrecords", "0");        //Map Task跳过损坏记录的最大数,默认0,如果应用能接受任何坏记录则取Long.MAX_VALUE
        job.getConfiguration().setLong(job.MAP_SKIP_MAX_RECORDS, Long.MAX_VALUE); //Map Task跳过损坏记录的最大数,默认0,如果应用能接受任何坏记录则取Long.MAX_VALUE(9223372036854775807)个坏记录    
    
4、设置Map和Reduce任务失败重试次数
        conf.set("mapreduce.map.maxattempts", "4");            //Map Task最大失败尝试次数,默认是4次
        conf.set("mapreduce.reduce.maxattempts", "4");        //Reduce Task最大失败尝试次数,默认是4次

时间: 2024-10-09 20:17:45

作业流程和优化的相关文章

超市仓库商品盘点作业流程,仓库如何进行盘点,仓库盘点流程?仓库盘点好方法?

盘点的结果可以说是一份商场经营绩效的成绩单.通过盘点作业可以计算出商场真实的存货.费用率.毛利率.货损率等经营指标. 1.盘点目的. 盘点目的主要有两个:一是控制存货,以指导日常经营业务:二是掌握损益,以便真实地把握经营绩效,并尽早采取防漏措施. 2.盘点原则. 一般是每月对商品盘点一次,并由连锁总部所设的盘点小组负责各商场的盘点工作.为了确保商品盘点的效率,应坚持三个原则: (1)售价盘点原则,即以商品的零售价作为盘点的基础,库存商品以零售价金额控制,通过盘点确定一定时期内的商品溢损和零售差错

无人机DLG生产作业流程

参考文章 无人机(AVIAN)低空摄影测量作业流程 无人机低空遥感测绘作业流程及主要质量控制点 微型无人机低空摄影测量系 无人机航空摄影测量系统引进与发展 基于复杂地形的无人机航摄系统1∶500 DLG生产-论文 无人机航测技术生产应用型研究及分析 无人机简介 数字线划地形图(DLG)的生产过程及质量标准 <2013年全国注册测绘师资格考试<测绘案例分析>历年真题及答案解析> DEMDOMDLG生产流程

Geekband作业13--视图优化

bug项目地址:https://github.com/lzyzsd/AndroidUIPorblems 这次作业是视图优化,首先运行程序之前,在开发者选项中勾选Show GPU Overdraw 1.程序首页如下 出现3X及以上的过度绘制区域有button上面的文本及下面的整个LinearLayout. 两个button的过度绘制是由于整个界面背景及button默认背景的叠加,这个是合理的需求,所以不改. 下面的LinearLayout背景和界面背景一样,可以删去,效果如下. 2.打开OVERD

超市仓库商品盘点作业流程,仓库怎样进行盘点,仓库盘点流程?仓库盘点好方法?

盘点的结果能够说是一份商场经营绩效的成绩单. 通过盘点作业能够计算出商场真实的存货.费用率.毛利率.货损率等经营指标. 1.盘点目的. 盘点目的主要有两个:一是控制存货,以指导日常经营业务:二是掌握损益,以便真实地把握经营绩效,并尽早採取防漏措施. 2.盘点原则. 通常是每月对商品盘点一次,并由连锁总部所设的盘点小组负责各商场的盘点工作.为了确保商品盘点的效率,应坚持三个原则: (1)售价盘点原则.即以商品的零售价作为盘点的基础,库存商品以零售价金额控制,通过盘点确定一定时期内的商品溢损和零售差

6.流程类优化

网优四大部分优化 覆盖类优化 容量类优化 功率类优化(干扰类优化) 流程类优化 按照流程的步骤,一步步分析优化,与流程相关的优化 入网初始接入,重入网,切换,寻呼,位置更新等 所有制式的状态,发生的变化都是类似的. 空闲状态rrc idle 连接状态rrc connected 状态转移 都是伴随信令交互来变化的 非正常驻留:没有CM卡,只能拨打紧急电话 寻呼:为了快速做业务时入网的定义 业务流程(信令) 常见:入网(开机驻留),接入(做业务),切换,位置更新 小区选择(最优信号排序,记忆优先),

简单梳理memcached工作原理/工作流程/优化建议

一.memcached工作原理基本概念:slab,page,chunk.slab,是一个逻辑概念.它是在启动memcached实例的时候预处理好的,每个slab对应一个chunk size,也就是说不同slab有不同的chunk size.具体分配多少个slab由参数 -f (增长因子)和 -n (chunk最小尺寸)决定的.page,可以理解为内存页.大小固定为1m.slab会在存储请求时向系统申请page,并将page按chunk size进行切割.chunk,是保存用户数据的最小单位.用户

sensor:gsensor的流程以及优化分析

一 概述 frameworks\base\core\java\android\view\WindowOrientationListener.java 监听sensor是否有数据变化 首先看看芯片方向(x,y,z): 补充流程: PhoneWindowManager调用updateOrientationListenerLp去SensorManager里面去注册一个Listener, 当Sensor发生变化的时候,PhoneWindowManager就可以监听到并且调用回调onProposeRota

MapReduce的作业流程以及新一代MapReduce——YARN

了解mapreduceV1(旧版本的mapreduce)与mapreduceV2(YARN)的区别我们需要先深入理解一下mapreduceV1的工作机制和设计思想. 首先看一下mapreduce V1的运行图解 MapReduce V1的组件及功能分别是: Client:客户端,负责编写mapreduce代码并配置和提交作业. JobTracker:是整个mapreduce框架的核心,类似于springMVC中的DispatcherServlet负责初始化作业,分配作业并与TaskTracker

Android高级开发-布局渲染流程与优化

扩展知识CPU(中央处理器)与GPU(图像处理器)主要是设计目标不同,针对不同的应用场景.多缓存多分支,适用于复杂的逻辑运算,主要负责Measure,Layout,Record,Execute的计算操作.CPU擅长逻辑控制和通用类型数据运算.CPU的运算速度取决于请了多么厉害的教授,教授处理复杂任务的能力高,但简单重复的任务,还是人多快.众核少缓存,适用于结构单一的数据处理,主要负责Rasterization(栅格化)操作.GPU擅长大规模并发计算.GPU的运算速度取决于雇了多少小学生. 绿色的