大数据计算框架的理解与对比

标签:分布式系统   大数据   流处理    2096人阅读 评论(0)
分类:

大数据计算框架负责对系统中产生中的数据进行计算。数据的计算则是指从大量单一数据点中提取信息和见解的过程。按照时效性与处理机制分为流处理、批处理和混合模式。

批处理:适合处理对时间要求不高的非常大规模的数据集。具有三个特征:有界,持久,海量。经常应用于历史数据的分析工作。

流处理:适合处理对数据变动或峰值做出实时响应,并且关注一段时间变化趋势的数据。具有特征:无边界、维持少量状态、实时性。经常应用于基于时间衡量指标的实时分析工作。

对于流处理需要具有低延迟、快速容错、快速恢复特点,在技术框架选型选型与调优具有更高的挑战性。

流式处理需关注几点:

1.数据倾斜问题,如何处理?

2.慢节点问题,该如何处理?

3.分布式集群,性能如何完全利用打满?

4.状态计算join问题,如何存储中间结果?

5.如何快速迁移,数据快速恢复?

如下各个开源框架对比理解:

开源框架

应用场景

特性

优点

缺点

描述

Hadoop

批处理

基于hdfs存储

基于yarn集群协调

基于MapReduce 原生引擎

处理海量数据集

不适合时间要求较高场景


Storm

流处理

基于stream无边界流式数据

基于spout产生

基于bolt消耗

处理数据极低延迟

支持多种语言

至少处理一次保证

消息处理无序

高层api弱

无状态,数据容错困难

近实时处理领域的最佳解决方案。

Samza

流处理

基于topic

基于partition

基于broker

基于producer、consumer

发挥与kafka耦合实现低成本订阅与输出

避免数据回压(backpressuer)

至少一次保证

只支持jvm语言

 

Samza本身很适合有多个团队需要使用(但相互之间并不一定紧密协调)不同处理阶段的多个数据流的组织

Spark

混合处理(批与流)

基于RDD(弹性分布式数据集)模型

主要面向批处理工作

处理多样性(批处理与流处理)

集成多种生态系统

流处理基于microbatch调度开销大

Spark流处理亚秒级增量对流进行缓冲,随后这些缓冲会作为小规模的固定数据集进行批处理

Flink

混合处理(流与批)

基于stream无边界数据

基于operator产生数据到其它数据流功能

基于source数据流入口

基于sink输出其它系统

主要面向流处理模型

处理数据低延迟

精确一次保证

设计具有状态及流控

年幼项目,未经大规模部署考验

最适合有极高流处理需求,并有少量批处理任务的组织。该技术可兼容原生Storm和Hadoop程序,可在YARN管理的集群上运行


查看评论

暂无评论

发表评论
  • 评论内容:
      
首页
团队介绍
发展历史
组织结构
MESA大事记
新闻中心
通知
组内动态
科研成果
专利
论文
项目
获奖
软著
人才培养
MESA毕业生
MESA在读生
MESA员工
招贤纳士
走进MESA
学长分享
招聘通知
招生宣传
知识库
文章
地址:北京市朝阳区华严北里甲22号楼五层 | 邮编:100029
邮箱:nelist@iie.ac.cn
京ICP备15019404号-1