MapReduce

OLTP On-Line Transaction Processing
OLAP On-Line Analytical Processing
在定时任务OLAP中,我们也需要做优化决策,最大吞吐量一次尽可能多的处理数据,而不是多次无止境的重试定时任务。

在平台化设计中,往往需要考虑低延迟,高吞吐的能力,实际上是对算法设计能力的挑战:
1、串行执行计算能力有限(单机)
2、并行执行提高吞吐量(单机):单机并行、单机聚合
3、分布式计算最大化吞吐量(联机):多机聚合

在一般的web项目中使用最多的是单机并行,这里我们为了定时任务更大化处理数据能力设计,我们需要多机聚合任务,大楷分为以下几步:
1、任务拆分,类似于elastic-job中的任务分片,比如有300w条数据需要处理,我们将100w以内的数据扔给tasknode1,100200w内的数据扔给tasknode2执行,200300w扔给tasknode3执行。
2、任务分配记录,以确保任务被哪台机器领去了
3、单机并发策略,如果机器是8核心的,我可以使用一个8核心线程的线程池并发执行
4、任务适配接口(单机),用于匹配不同的任务类型
5、任务处理流程
6、任务处理完成后,通知任务分配器(主任务节点)
7、主任务节点聚合流程
8、上一个任务分配、子节点执行完成、主任务节点聚合完成,则进行流转到下一个任务,可能是该任务后续操作,或者开始执行其他主任务。

    在MapReduce中,任务的执行分为map和reduce阶段。在hdfs知道,hdfs有机架感知特性,故执行任务的时候可以获取最近的block进行处理,hdfs负责新数据的复制,从而处理的速度并不会变得很慢。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容