什么是Speculative Execution
所谓的推测执行,就是当所有task都开始运行之后,Job Tracker会统计所有任务的平均进度,如果某个task所在的task node机器配置比较低或者CPU load很高(原因很多),导致任务执行比总体任务的平均执行要慢,此时Job Tracker会启动一个新的任务(duplicate task),原有任务和新任务哪个先执行完就把另外一个kill掉,这也是我们经常在Job Tracker页面看到任务执行成功,但是总有些任务被kill,就是这个原因。
mapred.map.tasks.speculative.execution=true
mapred.reduce.tasks.speculative.execution=true
这两个是推测执行的配置项,它们默认值是true
然而在HBase中,这样做,会加重regionserver的load。
因为用Hadoop map/reduce操作HBase的时候,会尽量采用本地原则,即相应的task尽量使用本地的数据。
而如果另起一个task,则会导致数据不在本地,凭空浪费IO和网络资源。
所以,强烈建议关闭 Speculative Execution
关闭的方法是在jobconf中设定
分享到:
相关推荐
此外,用户还可以通过调整mapred.map.tasks.speculative.execution和mapred.reduce.tasks.speculative.execution参数来控制任务的推测执行,进一步优化导入性能。 整个Hadoop数据迁移过程中,importtsv工具发挥了...
- **Speculative Execution**:为失败的任务启动额外的实例,以便快速恢复故障节点的工作。 #### 四、YARN架构与功能 - **架构组成**:YARN主要包括三个关键组件: - **ResourceManager**:集群中的单点管理实体...
Map阶段负责数据的拆分和初步处理,而Reduce阶段则对Map阶段的结果进行聚合,最终得到全局结果。这种设计使得Hadoop能够处理PB级别的数据。 HDFS是Hadoop的基础,是一个高度容错性的分布式文件系统,专为大规模数据...
Speculative Execution 213 Output Committers 215 Task JVM Reuse 216 Skipping Bad Records 217 7. MapReduce Types and Formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ....
- **优化技术**:为了提高MapReduce的性能,引入了多种优化技术,比如Combiner(局部聚合)、Speculative Execution(投机执行)等。 #### 四、Hadoop生态系统 - **Hive**:基于Hadoop的一个数据仓库工具,可以将...