大数据处理框架分类与选择

提到大数据处理,很多人可能都会想到Google的《MapReduce:Simplied Data Processing on Large Clusters》,毕竟Google算是应用大数据最早的企业了。

大讲台老师认为,hadoop流行的主要原因是它的开源,否则,Google的MapReduce、GFS和BigTable开源的话,估计就没有现在的hadoop了。


(一)大数据处理框架分类

不论是系统中存在的历史数据,还是持续不断接入系统中的实时数据,只要数据是可访问的,我们就可以对数据进行处理。按照对所处理的数据形式和得到结果的时效性分类,数据处理框架可以分为两类:

批处理系统
流处理系统

批处理是一种用来计算大规模数据集的方法。批处理的过程包括将任务分解为较小的任务,分别在集群中的每个计算机上进行计算,根据中间结果重新组合数据,然后计算和组合最终结果。当处理非常巨大的数据集时,批处理系统是最有效的。

典型的批处理系统就是Apache Hadoop。而流处理则对由连续不断的单条数据项组成的数据流进行操作,注重数据处理结果的时效性。典型的流处理系统有Apache Storm,Apache Samza。还有一种系统,同时具备批处理与流处理的能力,这种称为混合处理系统,比如Apache Spark,Apache Flink。接下来我们来详细介绍这三种处理系统。

(二)大数据处理框架的选择

1. 对于初学者

由于Apache Hadoop在大数据领域的广泛使用,因此仍推荐作为初学者学习数据处理框架的首选。虽然MapReduce因为性能原因以后的应用会越来越少,但是YARN和HDFS依然作为其他框架的基础组件被大量使用(比如HBase依赖于HDFS,YARN可以为Spark、Samza等框架提供资源管理)。学习Hadoop可以为以后的进阶打下基础。

Apache Spark在目前的企业应用中应该是当之无愧的王者。在批处理领域,虽然Spark与MapReduce的市场占有率不相上下,但Spark稳定上升,而MapReduce却稳定下降。而在流处理领域,Spark Streaming与另一大流处理系统Apache Storm共同占据了大部分市场(当然很多公司会使用内部研发的数据处理框架,但它们多数并不开源)。伯克利的正统出身、活跃的社区以及大量的商用案例都是Spark的优势。除了可用于批处理和流处理系统,Spark还支持交互式查询、图计算和机器学习。Spark在未来几年内仍然会是大数据处理的主流框架,推荐同学们认真学习。

另一个作为混合处理框架的Apache Flink则潜力无限,被称作“下一代数据处理框架”。虽然目前存在社区活跃度不够高、商用案例较少等情况,不过“是金子总会发光”,如果Flink能在商业应用上有突出表现,则可能挑战Spark的地位。

2. 对于企业应用

如果企业中只需要批处理工作,并且对时间并不敏感,那么可以使用成本较其他解决方案更低的Hadoop集群。

如果企业仅进行流处理,并且对低延迟有着较高要求,Storm更加适合,如果对延迟不非常敏感,可以使用Spark Streaming。而如果企业内部已经存在Kafka和Hadoop集群,并且需要多团队合作开发(下游团队会使用上游团队处理过的数据作为数据源),那么Samza是一个很好的选择。

如果需要同时兼顾批处理与流处理任务,那么Spark是一个很好的选择。混合处理框架的另一个好处是,降低了开发人员的学习成本,从而为企业节约人力成本。Flink提供了真正的流处理能力并且同样具备批处理能力,但商用案例较少,对于初次尝试数据处理的企业来说,大规模使用Flink存在一定风险。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值