• xingoo
    2019-10-25
    这个批量定义有点模糊。宏观上完整的mapreduce不属于批量,因为最后有个reduce合并操作;但是还要考虑最后reduce要做什么。微观上每个map任务或者shuffle都是并行处理的,此时就可以看做批量任务。

    作者回复: 其实这里的批量处理,是指在map阶段,多个子任务之间是没有依赖关系,可以并发处理不同的数据。

    
     2
  • 小飞侠
    2019-12-19
    手机订单统计,任务分解时有问题哦,地市不能只统计top3

    作者回复: 这里只是举例方便读者理解,真实情况考虑的维度肯定会更多一些

    
     1
  • 小飞侠
    2019-12-19
    主要讲了下分而治之的思想,思想比较容易理解,但这只是入了个门,MR作为一个计算框架,里边应该涉及任务的调度,数据的分发,key value 如何选取,多年前做过相关开发,但使用后并没有给我很惊艳的感觉,就是对着API编程,定义好KEY,然后启动任务,研究不够深入,工作上涉及的太少了。

    作者回复: 是的,你的理解没错!

    我们在物理中学到过能力守恒定律:能量既不会凭空产生,也不会凭空消失,它只会从一种形式转化为另一种形式,或者从一个物体转移到其它物体,而能量的总量保持不变。

    其实在计算机科学中也存在类似的定律,我暂且把它叫复杂性守恒的定律或者你也可以把它叫做聂鹏程定律:)“一个问题的复杂性既不会凭空产生,也不会凭空消失,它只会从一种形式转化为另一种形式,或者从一个组件转移到其它组件,而复杂性的总量保持不变。”

    当我们在用Hadoop这样的系统,在享受到它们带给我们的简单、便捷的同时,其实是因为Hadoop本身把相应的复杂度给封装起来了。

    分而治之的思想虽然简单,但是如果集群规模是10台、100台、1000台、10000台......这样的递增就不简单了。

    
     1
  • Jackey
    2019-10-25
    有两个问题想请教老师和各位同学
    1. 中间结果一定要落盘吗?如果只在内存中进行排序,再发给reduce是不是在速度上可以得到一个提升?
    2. 如果在执行时某个任务特别慢,Hadoop的整个流程都会卡住吧?这里有一些改进方法吗?比如超时舍弃任务?
    关于思考题:我认为MR是属于批处理类型的。文中讲到一个大任务拆分成多个子任务,类似的,只要是同质的多个任务,都可以放到MR中处理。如果子任务本身粒度比较细,感觉可以考虑省略“拆分”这一步骤了。
     4
     1
  • 💢 星星💢
    2019-12-18
    是批处理任务,我觉得批处理任务属于执行时间比较长,任务数量比较多,任务总体数据比较大。
    
    
  • ~风铃~
    2019-11-11
    批处理框架还有个Spring batch,不知道这个怎样定位的
    
    
  • 随心而至
    2019-10-26
    可以类比算法中归并排序理解分而治之的思想。
    
    
  • leslie
    2019-10-25
    个人觉得其实任何都应当从层级去考虑:批量那么它其实是先拆分再分别处理再统一。
    可能现在越来越觉得任何的独立,分别都是从层级的概念去考虑和定位。可能最近学习算是把多年的知识在学习中梳理的过程吧:不同的point看待是不同的。
    
    
  • 锦
    2019-10-25
    可用于处理静态数据,属于批处理,如果把流处理拆分成多个小段数据,也能处理流数据。
    有个疑问,集群内的MRAppmaster以及Worker节点都有任务的副本,冗余任务是为什么呢?如果为了实现高可用也是冗余数据吧?
    
    
  • 花儿少年
    2019-10-25
    批处理任务的定义是 无需人工干预而执行一列程序,并且是使用已定义好的输入数据。
    所以mapreduce是批处理任务类型,因为输入数据已经准备好,并且无需交互。
    与此相对的是流计算,期待下一章
    
    
我们在线,来聊聊吧