MapReduce实现日记-任务粒度如何把握

简介: MapReduce实现日记-任务粒度如何把握

MapReduce实现日记-任务粒度如何把握

通常,我们将map阶段分为M个片段,将Reduce阶段分为R个片段。在理想的情况下,M和R应该远大于工作机器的数量。为了让每一个worker都能执行不同的任务来动态的保持负载均衡。并且在worker发生故障时,能够加快恢复速度,比如已经完成的map任务可以分布在其他所有worker上。

在现实开发中,M和R的大小是有实际限制的,因为master必须作出O(M+R)的决策调度,并在内存中保持O(M*R)的状态。

此外R的数量经常受到用户的限制,因为每个reduce任务的输出最终都是在一个单独的输出文件中。在实际中,我们倾向于选择M的任务,大约在16M到64M的输入数据(这种情况可以确保局部新能优化最有效)。

相关文章
|
SQL 分布式计算 Hadoop
通过Job Committer保证Mapreduce/Spark任务数据一致性
通过对象存储系统普遍提供的Multipart Upload功能,实现的No-Rename Committer在数据一致性和性能方面相对于FileOutputCommitter V1/V2版本均有较大提升,在使用MapRedcue和Spark写入数据到S3/Oss的场景中更加推荐使用。
通过Job Committer保证Mapreduce/Spark任务数据一致性
|
3月前
|
数据采集 SQL 分布式计算
|
4月前
|
SQL 分布式计算 数据处理
【Hive】所有的Hive任务都会有MapReduce的执行吗?
【4月更文挑战第17天】【Hive】所有的Hive任务都会有MapReduce的执行吗?
|
10月前
|
分布式计算 Java Hadoop
70 Azkaban MAPREDUCE任务
70 Azkaban MAPREDUCE任务
32 0
|
分布式计算 Java
Mapreduce执行机制之提交任务和切片原理
Mapreduce执行机制之提交任务和切片原理
|
缓存 分布式计算 Hadoop
利用采样器实现mapreduce任务输出全排序
采样器是hadoop内自带的一个可以对目标文件部分数据进行提取的工具类,以方便我们对这些采样的数据做一些参考或者处理。hadoop提供了多种采样器供我们使用,以满足不同的需求。另外,采样器不同于普通mapreduce操作。
1121 0
|
分布式计算 Hadoop 分布式数据库
通过Job Committer保证Mapreduce/Spark任务数据一致性
并发地向目标存储系统写数据是分布式任务的一个天然特性,通过在节点/进程/线程等级别的并发写数据,充分利用集群的磁盘和网络带宽,实现高容量吞吐。并发写数据的一个主要需要解决的问题就是如何保证数据一致性的问题,本文主要介绍MapReduce/Spark如何通过Job Committer机制解决写数据一致性的问题,以及在OSS等对象存储上的解决方案。
460 0
|
SQL 数据采集 缓存
实践Hadoop MapReduce 任务的性能翻倍之路
eBay每天产生PB量级的CAL日志,其数据量每天都在增加。对于日益增长的数据量,Hadoop MapReduce job的优化将会大大节省计算资源。本文将分享eBay团队如何对这些Hadoop job进行优化,希望为开发者带来启发,解决Hadoop MapReduce(MR)job实践中存在的问题。
实践Hadoop MapReduce 任务的性能翻倍之路
|
分布式计算 Java 大数据
Spark和MapReduce任务计算模型
【前言:本文主要从任务处理的运行模式为角度,分析Spark计算模型,希望帮助大家对Spark有一个更深入的了解。同时拿MapReduce和Spark计算模型做对比,强化对Spark和MapReduce理解】
|
资源调度 分布式计算 调度
Yarn源码分析之MapReduce作业中任务Task调度整体流程(一)
        v2版本的MapReduce作业中,作业JOB_SETUP_COMPLETED事件的发生,即作业SETUP阶段完成事件,会触发作业由SETUP状态转换到RUNNING状态,而作业状态转换中涉及作业信息的处理,是由SetupCompletedTransition来完成的,它主要做了...
1149 0