最主流的五个大数据处理框架的优势对比

我深入分析了五个大数据处理框架:Hadoop,Spark,Flink,Storm,Samaza

  • Hadoop

顶尖的框架之一,大数据的代名词。Hadoop,MapReduce,以及其生态系统和相关的技术,比如Pig,Hive,Flume,HDFS等。Hadoop是第一个,在工业界被广泛采用。为什么仍然使用Hadoop。尽管Hadoop被用来处理复杂数据,其本身其实相当简单。如果你的数据可以批量处理,可以被分割成小的处理任务,分发到计算集群,然后综合计算结果,并且整个过程都逻辑清晰,那么你的数据很可能适合用Hadoop处理。

Hadoop生态系统里有些工具的用途超出了当初作为支持MapReduce算法的范畴。一个值得注意的就是YARN,Hadoop的资源管理层。它可以用在Hadoop之外,比如用于Spark。

  • Spark

Spark是大数据处理王国的王位继承人。Spark和Hadoop经常被放到二选一的位置,但并不是非要这样的。Hadoop的生态系统可以容纳Spark的处理引擎,用来替代MapReduce,由此产生各种由两个生态系统的工具混合起来的环境。 总的来说,Spark采用更先进的架构,使得灵活性、易用性、性能等方面都比Hadoop更有优势,有取代Hadoop的趋势,但其稳定性有待进一步提高。我总结,具体表现在如下几个方面:

框架:

  • Hadoop:MapRedcue由Map和Reduce两个阶段,并通过shuffle将两个阶段连接起来的。但是套用MapReduce模型解决问题,不得不将问题分解为若干个有依赖关系的子问题,每个子问题对应一个MapReduce作业,最终所有这些作业形成一个DAG。
  • Spark:是通用的DAG框架,可以将多个有依赖关系的作业转换为一个大的DAG。核心思想是将Map和Reduce两个操作进一步拆分为多个元操作,这些元操作可以灵活组合,产生新的操作,并经过一些控制程序组装后形成一个大的DAG作业。

中间计算结果处理:

  • Hadoop:在DAG中,由于有多个MapReduce作业组成,每个作业都会从HDFS上读取一次数据和写一次数据(默认写三份),即使这些MapReduce作业产生的数据是中间数据也需要写HDFS。这种表达作业依赖关系的方式比较低效,会浪费大量不必要的磁盘和网络IO,根本原因是作业之间产生的数据不是直接流动的,而是借助HDFS作为共享数据存储系统。
  • Spark:在Spark中,使用内存(内存不够使用本地磁盘)替代了使用HDFS存储中间结果。对于迭代运算效率更高。
    一个具体的例子,大数据巨头Cloudera如今在把MapReduce替换为Spark。另一个例子,Spark不包含自身的分布式存储层,这样它可以利用Hadoop的分布式文件系统(HDFS),或跟Hadoop无关的,比如Mesos。
  • Flink

数据流引擎。目标是提供针对数据流的计算工具。把批量处理作为数据流的特殊情形,Flink既是批处理又是实时处理框架,但流处理还是放在第一位的。Flink提供了一系列API,包括针对Java和Scala的流API,针对Java,Scala,Python的静态数据API,以及在Java和Scala中嵌入SQL查询的代码。它也自带机器学习和图像处理包。Flink还有一系列额外特性:

  1. 高性能、低延迟
  2. 支持有序和乱序事件
  3. 针对有状态计算的仅限一次语义
  4. Backpressure连续流模型
  5. 通过轻量级分布式快照做容错
  6. 选Flink而不选Spark?Flink真的是面向流的。Spark是批处理的,尽管它可以通过缩减每次处理的事件来模拟流的效果,但毕竟不如Flink。如果你要处理真正的实时数据,Spark是不行的,得用Flink。
  • Storm

分布式计算框架,其应用被设计成有向无环图。被设计成容易处理无限流,并且可用于任何编程语言。每个节点每秒处理上百万个元组,高度可伸缩,提供任务处理保证。用Clojure写的。可用于实时分析,分布式机器学习,以及大量别的情形,特别是数据流大的。Storm可以运行在YARN上,集成到Hadoop生态系统中。五个特征:

  1. 可伸缩
  2. 容错
  3. 可靠
  4. 易操作
  5. 不支持批处理。不支持有状态的管理(可以用Trident)。
  • Samza

消息传递基于Apache Kafka, 集群资源管理基于YARN。特性:

  1. 简单API
  2. 状态管理
  3. 容错
  4. 可持续
  5. 可伸缩
  6. 可插拔
  7. 处理器隔离

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值