Spark基础-为什么选择spark

核心
1、spark大数据处理框架
2、RDD表达能力
3、Spark子系统

1、Spark大数据处理框架
Mapreduce及各种专有系统中出现的不足,伯克利大学推出了全新的统一大数据处理框架spark,创新性地提供了RDD概念(一种新的抽象的弹性数据集),在某种程度上spark的对Mapreduce模型的一种扩展,要在Mapreduce上实现其不擅长的计算工作(比如迭代式、交互式和流式),看上去是一件非常困难的事情,其实主要的原因是mapreduce缺乏一种特性,即在并行计算的各个阶段进行有效的数据共享。这种共享就是RDD的本质。利用这种有效的数据共享和类似Mapreduce的操作接口,上述的各种专有类型计算都能够有效地表达,而且能够获得与专有系统同等的性能。
从前对于集群处理的容错方式,比如Mapreduce和Dryad是将计算构建成为一个有向无环图的任务集,而这只能允许它们有效地重新计算部分DAG,在单独的计算之间,除了复制文件,这些模型没有提供其他的存储抽象。这就显著地增加了在网络之间复制文件的代价,RDD能够适应当前大部分的数据并行算法和编程模型

2 RDD表达能力
可以使用RDD实现很多现有的集群编程模型以及一些以前的模型不支持的新应用,在这些模型中,RDD能够取得和专有系统同样的性能,还能提供包括容错处理、滞后节点处理等这些专有系统缺乏的特性。下面重点介绍4类模型
1、迭代算法:这是目前专有系统实现的非常普遍的一种应用场景,比如迭代算法可以用于图处理和机器学习。RDD 能够很好的实现这些模型,包括Pregel、Haloop和Graphalp等模型
2、关系型查询:对于Mapreduce来说非常重要的需求就是运行SQL查询,包括长期运行、数小时的批处理作业和交互式的查询,然而对于Mapreduce而言,对比并行数据库进行交互式查询,有其内在的缺点,比如由于其容器的模型而导致速度很慢。利用RDD模型,可以通过实现很多通用的数据库引擎特性,从而获得非常好的性能
3、Maprduce批处理:RDD提供的接口是Mapreduce的超集,所有RDD可以有效的利用Mapreduce实现的应用程序,另外RDD还适合更加抽象的基于DAG的应用程序,比如DryadINQ
4、流式处理:目前的流式系统也只是提供了有限的容错处理,需要消耗系统非常大的拷贝代价或者非常长的容错时间。利用RDD实现一种新的模型-离散数据流(D-Stream),可以克服上面的这些问题,D-Stream将流式计算当作一系列的短小而确定的批处理操作。而不是常驻的有状态的操作,将两个离散流直接的状态保存在RDD中。离散流模型能够允许通过RDD的继承关系图(lineage)进行并行性的恢复而不需要进行数据拷贝。

3、spark子系统
如果按照目前流行的大数据处理场景来划分可以将大数据处理分为如下3种
1、复杂的批量数据处理,通常的时间跨度为数10分钟到数小时
2、基于历史数据的交互式查询,通常时间跨度为数十秒到分钟
3、基于实时数据流的数据处理,通常的时间跨度为数百毫秒到数秒

由于RDD具有丰富的表达能力,所以伯克利在spark core的基础上衍生出了能够同时处理上述三种情形的统一大数据处理平台
这里写图片描述
spark core :基于RDD提供了丰富的操作接口,利用DAG进行统一的任务规划,使得spark能够更加灵活地处理类似Mapreduce的批处理作业
Spark SQL:兼容hive的接口HQL,提供了比hive高出10~100倍的查询速度的分布式SQL引擎
Spark Streaming:将流式计算分解成一系列的短小的批处理作业,利用spark轻量级和低延迟的调度框架,可以很好的支持流式处理,目前已经支持的数据输入源包括kafka,flume,Twitter,TCP sockets。
GraphX :基于Spark的图计算框架,兼容Pregel和GraphLab接口,增强了图构建以及图转换功能
MLlib:Spark Core天然地非常适合于迭代式计算,MLlib就是构建在spark上的集群学习算法库,目前已经可以支持常用的分类算法、聚合算法、推荐算法等

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Hadoop从业者为什么需要Spark?答案是Hadoop已死,Spark称霸。 而Hadoop的死亡过程在2012年已经开始: 1,由于Hadoop自身架构的导致了在离线数据存储分析意外的一切领域都力不从心,理论已经证明MapReduce模型可以模拟一切分布式计算,但是效率成为其死穴,而Spark基于RDD的计算图可以轻松、完整地表达MapReduce模型,并且能极为容易的处理实时流计算、机器学习、图计算、误差查询等; 2,2012年以来Hadoop本身架构臃肿并未得到本质性的改善,很多修改升级也就只是补丁式的修修补补,现在Hadoop这个云计算大数据前期做出卓越贡献的平台正在继续的死亡; 4,原先支持Hadoop的四大商业机构纷纷宣布支持Spark; 5,Mahout前一阶段表示从现在起他们将不再接受任何形式的以MapReduce形式实现的算法,另外一方面,Mahout宣布新的算法基于Spark; 6,Cloudera的机器学习框架Oryx的执行引擎也将由Hadoop的MapReduce替换成SparkSpark是继Hadoop之后,成为替代Hadoop的下一代云计算大数据核心技术,目前SPARK已经构建了自己的整个大数据处理生态系统,如流处理、图技术、机器学习、NoSQL查询等方面都有自己的技术,并且是Apache顶级Project,可以预计的是2014年下半年到2015年在社区和商业应用上会有爆发式的增长。 国外一些大型互联网公司已经部署了Spark。甚至连Hadoop的早期主要贡献者Yahoo现在也在多个项目中部署使用Spark;国内的淘宝、优酷土豆、网易、Baidu、腾讯等已经使用Spark技术用于自己的商业生产系统中,国内外的应用开始越来越广泛。Spark正在逐渐走向成熟,并在这个领域扮演更加重要的角色。 现在很多原来使用深度使用Hadoop的公司都在纷纷转向Spark,国内的淘宝是典型的案例,我们在这里就不做介绍。在此,我们以使用世界上使用Hadoop最典型的公司Yahoo!为例,大家可以看一下其数据处理的架构图: 而使用Spark后的架构如下: 大家可以看出,现阶段的Yahoo!是使用Hadoop和Spark并存的架构,而随着时间的推进和Spark本身流处理、图技术、机器学习、NoSQL查询的出色特性,最终Yahoo!可能会完成Spark全面取代Hadoop,而这也代表了所有做云计算大数据公司的趋势。 最后,不得不提的是Spark的“One stack to rule them all”的特性,Spark的特点之一就是用一个技术堆栈解决云计算大数据中流处理、图技术、机器学习、交互式查询、误差查询等所有的问题,此时我们只需要一个技术团队通过Spark就可以搞定一切问题,而如果基于Hadoop就需要分别构建实时流处理团队、数据统计分析团队、数据挖掘团队等,而且这些团队之间无论是代码还是经验都不可相互借鉴,会形成巨大的成本,而使用Spark就不存在这个问题; 再说一点,Hadoop现在人才已经非常多了,想在该技术领域做到中国前100人之内是非常有难度的,而如果从事Spark则会更容易些,因为现在Spark人才不是稀少,而是太稀缺。 Hadoop从业者们,您需要Spark

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值