常见分布式计算框架特点

Hadoop:

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

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

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

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

Spark:

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

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

Spark本身是通过DAGScheduler与TaskScheduler实现任务调度以及计算节点切换,现在mesos及yarn都对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进行分布式数据的管理,在内部实现了负载均衡、容错、分发、路由等功能;

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-07 01:13:26

常见分布式计算框架特点的相关文章

[转]分布式计算框架综述

本来是发表到科技论在线的,谁知道被退稿了,那就发到这里来吧. 0      引言 随着互联网的发展,web2.0时期[1]的到来,人类正式进入了信息爆炸时期的.海量的信息在很多应用都会出现,比如一些社交网络应用中记录用户行为日志通常都是以GB甚至是TB为单位的.常规的单机计算模式已经不能支撑如此巨大的数据量.所以,计算必须以分布式的把巨大的计算任务分成小的单机可以承受的计算任务,在这种情况下分布式计算框架与云计算[2]出现. 1      分布式计算框架背景介绍 我们的互联网从Web 1.0迈入

大数据时代之hadoop(五):hadoop 分布式计算框架(MapReduce)

hadoop的核心分为两块,一是分布式存储系统-hdfs,这个我已经在上一章节大致讲了一下,另一个就是hadoop的计算框架-mapreduce. mapreduce其实就是一个移动式的基于key-value形式的分布式计算框架. 其计算分为两个阶段,map阶段和reduce阶段,都是对数据的处理,由于其入门非常简单,但是若想理解其中各个环节及实现细节还是有一定程度的困难,因此我计划在本文中只是挑几个mapreduce的核心来进行分析讲解. 1.MapReduce驱动程序默认值 编写mapred

分布式计算框架综述

最近在写本科的毕业论文,题目是有关于MapReduce的并行化处理,老师给出修改意见中提到了关于分布式计算框架的的国内外研究现状,一开始并没有搞懂分布式计算机框架,以为是MapReduce.MapReduce只是一种并行编程模式,也可以是一种并行框架,并不是分布式计算框架.百度得知,比如Hadoop,storm,Spark等才是分布式计算框架,随后又查看了一篇博客,写得不错,如下: 以下是转载内容:http://blog.csdn.net/zwan0518/article/details/177

Spark分布式计算框架

写在前面 Spark是分布式计算领域中继Hadoop之后,又一个比较流行的框架,最近研究了Spark的基本内容,这里稍微总结下,并与Hadoop进行对比. 什么是Spark? Spark是伯克利大学AMP实验室在09年提出的开源的通用分布式计算框架,使用的也是类似Hadoop的计算模型,但是在设计理念上有较多地改进.概括来说,Spark是一种快速的集群计算技术: 基于Hadoop Map Reduce,扩展了Map Reduce的模型 提供了更多的分布式计算场景,包括交互式查询和流处理 基于内存

SpringMVC背景介绍及常见MVC框架比较

一.Spring MVC 背景介绍 Spring框架提供了构建Web应用程序的全功能MVC模块.使用Spring可插入的MVC架构,可以选择是使用内置的Spring Web框架还是Struts这样的Web框架.通过策略接口,Spring框架是高度可配置的,而且包含多种视图技术,例如JavaServer Pages(JSP)技术.Velocity.Tiles.iText和POL.Spring MVC框架并不知道使用的视图,所以不会强迫您只使用JSP技术.Spring MVC分离了控制器.模型对象.

常见MVC框架比较

常见MVC框架比较 运行性能上: Jsp+servlet>struts1>spring mvc>struts2+freemarker>>struts2,ognl,值栈. 开发效率上,基本正好相反.值得强调的是,spring mvc开发效率和struts2不相上下. Struts2的性能低的原因是因为OGNL和值栈造成的.所以,如果你的系统并发量高,可以使用freemaker进行显示,而不是采用OGNL和值栈.这样,在性能上会有相当大得提高.

分布式计算框架MapReduce

MapReduce概述 MapReduce源自Google的MapReduce论文,论文发表于2004年12月.Hadoop MapReduce可以说是Google MapReduce的一个开源实现.MapReduce优点在于可以将海量的数据进行离线处理,并且MapReduce也易于开发,因为MapReduce框架帮我们封装好了分布式计算的开发.而且对硬件设施要求不高,可以运行在廉价的机器上.MapReduce也有缺点,它最主要的缺点就是无法完成实时流式计算,只能离线处理. MapReduce属

7个常见Javascript框架介绍

设计开发中的“框架”指一套包含工具.函数库.约定,以及尝试从常用任务中抽象出可以复用的通用模块,目标是使设计师和开发人员把重点放在任务项目所特有的方面,避免重复开发.通俗的讲,框架就是最常用的javascript框架和Web应用框架,当然,还有CSS框架. 下面我们介绍一些比较常见的Javascript框架,高手跳过,才学JS和ajax的朋友则应该好好了解一下. jQuery jquery是一个快速.简洁的JavaScript框架,帮助你简化查询DOM对象,处理事件,制作动画,和处理Ajax交互

hadoop-MapReduce分布式计算框架

计算框架: MapReduce:主要用于离线计算 Storm:流式计算框架,更适合做实时计算 stack:内存计算框架,快速计算 MapReduce设计理念: --何为分布式计算 --移动计算,而不是移动数据 4个步骤: 1.Splitting 2.Mapping:Map步骤有可能有多个Map task线程并发同时执行 3.Shuffing:合并和排序 4.Reducing Hadoop计算框架Shuffler 在mapper和reducer中间的一个步骤 可以把mapper的输出按照某种key