+发表新主题
查看: 969|回复: 1

数据时代,Hadoop和Spark,应该怎么选?

[复制链接]

数据时代,Hadoop和Spark,应该怎么选?

[复制链接]
阿兰图灵 发表于 2018-2-24 09:22:43 浏览:  969 回复:  1 [显示全部楼层] 回帖奖励 |倒序浏览 |阅读模式
    u=1934427170,531442677&fm=27&gp=0.jpg

   面对Hadoop和Spark,我们应该怎么选择?

回复

使用道具 举报

7

主题

14

帖子

43

积分

网站编辑

Rank: 8Rank: 8

积分
43
阿兰图灵
 楼主|
发表于 2018-2-24 09:23:27 显示全部楼层
   Hadoop和Spark的选择是非常难的,Hadoop虽然已成为大数据技术的事实标准,但其本身还存在诸多缺陷,最主要的缺陷是其MapReduce计算模型延迟过高,无法胜任实时、快速计算的需求,因而只适用于离线批处理的应用场景。

     通过Hadoop的工作流程,可以发现Hadoop存在以下缺点,具体如下:

         1.表达能力有限,计算都必须要转化成Map和Reduce两个操作,但这并不适合所有的情况,难以描述复杂的数据处理过程。

         2.磁盘IO开销大,每次执行时都需要从磁盘读取数据,并且在计算完成后需要将中间结果写入到磁盘中,IO开销较大。

         3.延迟高,一次计算可能需要分解成一系列顺序执行的MapReduce任务,任务之间的衔接由于涉及到IO开销,会产生较高延迟。而且,在前一个任务执行完成之前,其他任务无法开始,因此难以胜任复杂,多阶段的计算任务。

      Spark在借鉴 Hadoop MapReduce优点的同时,很好地解决了MapReduce所面临的问题。相比于MapReduce,Spark主要有以下优点。

          1.Spark的计算模式也属于MapReduce,但不局限于Map和Reduce操作,还提供了多种数据集操作类型,编程模型比MapReduce更灵活。

          2.Spark提供了内存计算,中间结果直接放到内存中,带来了更高的迭代运算效率。

          3.Spark基于DAG的任务调度执行机制,要优于Mapreduce的迭代执行机制。

    Hadoop与Spark的执行流程经过对比,可以看到,Spark最大的特点就是将计算数据、中间结果都储存在内存中,大大减少了IO开销,因而Spark更适合于迭代运算比较多的数据挖掘与机器学习运算。

    尽管Spark相对于Hadoop而言具有较大优势,但Spark并不能完全替代Hadoop,主要用于替代Hadoop中的MapReduce计算模型


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则