关闭

常见分布式计算框架特点

标签: stormhadoopspark集群任务调度
1223人阅读 评论(0) 收藏 举报
分类:

Hadoop

Hadoop在使用原理上基本上遵照了MapReduce这样的一种模式进行项目的实际开发与交互,将一个个任务分解成映射与合并两种方式,然而通过映射进行分类与简化,从而产生部分归并结果,然后对同类结果进行归并计算;

由于Hadoop的中间结果需要依托于hdfs,从而需要经历硬盘及网络io的过程所以在实时性方面表现稍差;

Hadoop主要处理hdfs上的文本文件,而文本文件内容本身也是半结构化的;

之前的资源调度就是靠其中的master,之后hadoop2.0之后引入yarn进行资源的统一管理;

Spark

Spark的原理是将任务进行分解,并且在每一步任务上进行相应的操作处理,同时根据操作处理顺序构建DAG图,从而应用DAG引擎进行相关操作。

由于Spark在进行处理时主要使用内存所以基本可以做到实时性,同时,在进行DAG引擎优化方面对速度也有一定程度提升;

Spark本身是通过DAGSchedulerTaskScheduler实现任务调度以及计算节点切换,现在mesosyarn都对spark进行了一定程度的支持;

Spark的数据模型使用RDD这种弹性的存储,并且基于该数据模型构建了相应的数据依赖,从而实现一定的容错机制;

Spark基本上都运行在内存中,可以使用yarn或者mesos进行资源的统一管理,然后在上面进行spark的相关任务调度;

Storm

Storm是基于消息源(spout)获取数据发送信息,并且将信息发送到bolt形成相应的tuple,之后在此基础上继续构建数据的处理规则,处理规则需要认为变成实现;

Storm本身是流式数据处理,所以在实现实时性方面有一定的优势;

Storm的数据模型没有体现依赖关系,没有进行特别的存储结构设计,同时在数据模型处理方面仅仅进行结构设计而没有进行优化;

资源调度以及使用方面直接按照用户的i自定义方式进行,需要用户编写大量的流程控制问题,同时没有在资源啊隔离放main做些谢智导致可能出现局部任务影响全局的问题;

LinkedIn Samza

领英出品,主要结合kafka的设计思想将数据进行分块,同时保证数据的局部有序性,而任务调度方面进行简单操作后进行输入与输出。

进行实时数据流处理,并且综合了Kafka这样的消息队列;

通过类似于Kafka的数据结构,实现消息的分区、局部有序以及消息的重读机制,同时配合持久化方法可实现滑动窗口;

资源的管理主要借助于Yarn,利用消息队列的方式显现消息处理,同时通过备份方式显示数据局部容错;

Yahoo Apache S4

Yahoo出品,与Storm比较类似,基于每个节点处理不同的功能,同样是组成了一个DAG图去描述数据处理工作。

在雅虎内部使用,完成每秒数以千计的搜索查询。

以事件没基础进行设计,将每一次数据当成是一个事件来处理

使用ZooKeeper进行分布式数据的管理,在内部实现了负载均衡、容错、分发、路由等功能;

0
0

猜你在找
【直播】机器学习&数据挖掘7周实训--韦玮
【套餐】系统集成项目管理工程师顺利通关--徐朋
【直播】3小时掌握Docker最佳实战-徐西宁
【套餐】机器学习系列套餐(算法+实战)--唐宇迪
【直播】计算机视觉原理及实战--屈教授
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之矩阵--黄博士
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之凸优化--马博士
【套餐】Javascript 设计模式实战--曾亮
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:35721次
    • 积分:1082
    • 等级:
    • 排名:千里之外
    • 原创:74篇
    • 转载:1篇
    • 译文:1篇
    • 评论:2条
    文章分类