MapReduce

作者: 北风第一支 | 来源:发表于2017-07-15 20:25 被阅读0次

    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负责新数据的复制,从而处理的速度并不会变得很慢。

    相关文章

      网友评论

          本文标题:MapReduce

          本文链接:https://www.haomeiwen.com/subject/yqzahxtx.html