Spark生态圈,也就是BDAS(伯克利数据分析栈),是伯克利APMLab实验室精心打造的,力图在算法(Algorithms)、机器(Machines)、人(People)之间通过大规模集成,来展现大数据应用的一个平台,其核心引擎就是Spark,其计算基础是弹性分布式数据集,也就是RDD。通过Spark生态圈,AMPLab运用大数据、云计算、通信等各种资源,以及各种灵活的技术方案,对海量不透明的数据进行甄别并转化为有用的信息,以供人们更好的理解世界。Spark生态圈已经涉及到机器学习、数据挖掘、数据库、信息检索、自然语言处理和语音识别等多个领域。
随着spark的日趋完善,Spark以其优异的性能正逐渐成为下一个业界和学术界的开源大数据处理平台。随着Spark1.0.0的发布和Spark生态圈的不断扩大,可以预见在今后的一段时间内,Spark将越来越火热。下面我们来看看最近的Spark1.0.0生态圈,也就是BDAS(伯克利数据分析栈),对Spark生态圈做一简单的介绍。
如下图所示,Spark生态圈以Spark为核心引擎,以HDFS、S3、Techyon为持久层读写原生数据,以Mesos、YARN和自身携带的Standalone作为资源管理器调度job,来完成spark应用程序的计算;而这些spark应用程序可以来源于不同的组件,如Spark的批处理应用、SparkStreaming的实时处理应用、Spark SQL的即席查询、BlinkDB的权衡查询、MLlib或MLbase的机器学习、GraphX的图处理、来自SparkR的数学计算等等。更多的新信息请参看伯克利APMLab实验室的项目进展https://amplab.cs.berkeley.edu/projects/ 或者 Spark峰会信息http://spark-summit.org/。

1:生态圈简介


 

A:Spark

Spark是一个快速的通用大规模数据处理系统:
  • 内存计算并具有容错性,决定大多数场景运算速度快于MapReduce
  • 提供了支持DAG图的分布式并行计算框架,减少多次计算之间中间结果IO开销
  • 提供Cache机制来支持多次迭代计算或者数据共享,减少IO开销
  • 使用多线程池模型来减少task启动开稍
  • 支持互动和迭代程序

B:Spark SQL

Spark SQL是一个即席查询系统,可以通过SQL表达式、HiveQL或者Scala DSL在Spark上执行查询。
Spark SQL的特点:
  • 引入了新的RDD类型SchemaRDD,可以象传统数据库定义表一样来定义SchemaRDD,SchemaRDD由定义了列数据类型的行对象构成。
  • SchemaRDD可以从RDD转换过来,也可以从Parquet文件读入,也可以使用HiveQL从Hive中获取。
  • 在应用程序中可以混合使用不同来源的数据,如可以将来自HiveQL的数据和来自SQL的数据进行join操作。
  • 内嵌catalyst优化器对用户查询语句进行自动优化

C:SparkStreaming

SparkStreaming是一个对实时数据流进行高通量、容错处理的流式处理系统,可以对多种数据源(如Kdfka、Flume、Twitter、Zero和TCP 套接字)进行类似map、reduce、join、window等复杂操作,并将结果保存到外部文件系统、数据库或应用到实时仪表盘。
SparkStreaming流式处理系统特点有:
  • 将流式计算分解成一系列短小的批处理作业
  • 将失败或者执行较慢的任务在其它节点上并行执行
  • 较强的容错能力(基于RDD继承关系Lineage)
  • 使用和RDD一样的语义

D:MLlib

MLlib是Spark实现一些常见的机器学习算法和实用程序,包括分类,回归,聚类,协同过滤,降维,以及底层优化。

E:GraphX

GraphX是基于Spark的图处理和图并行计算API。GraphX定义了一个新的概念:弹性分布式属性图,一个每个顶点和边都带有属性的定向多重图;并引入了三种核心RDD:Vertices、Edges、Triplets;还开放了一组基本操作(如subgraph, joinVertices, and mapReduceTriplets),并且在不断的扩展图形算法和图形构建工具来简化图分析工作。

2:生态圈的应用

Spark生态圈以Spark为核心、以RDD为基础,打造了一个基于内存计算的大数据平台,为人们提供了all-in-one的数据处理方案。人们可以根据不同的场景使用spark生态圈的多个产品来解决应用,而不是使用多个隔离的系统来满足场景需求。下面是几个典型的例子:

A:场景1:历史数据和实时数据分析查询

通过Spark进行历史数据分析、Spark Streaming进行实时数据分析,最后通过Spark SQL或BlinkDB给用户交互查询。

B:场景2:欺诈检测、异常行为的发现

通过Spark进行历史数据分析,用MLlib建立数据模型,对Spark Streaming实时数据进行评估,检测并发现异常数据。

C:场景3:社交网络洞察

通过Spark和GraphX计算社交关系,给出建议。

3、与Hadoop生态环境比较

优势:

支持DAG运算,减少中间数据的传输。

所谓DAG,就是有向不循环图。数据进入第一个计算,得到的结果进入第二个计算;第二个计算得到的结果进入第三个计算……依此类推。

提供了全栈(all-in-one)式,减少中间数据的传输。

即运算框架(Spark)、流式计算(Streaming)、机器学习(MLlib)、图形计算(GraphX)为一体。在其中一个框架中可以调用另一个框架,如:在Streaing中接收数据,使用Spark的运行进行清洗,通过MLlib或GraphX运算得到最终结果。框架无缝转换,无需传递中间数据。
而Hadoop中,通过YARN来集成所有的如MapReduce、Storm、Mahout、Hive、Pig等,这样无法在一个框架中调用另一个,只能顺序执行传递中间数据。

劣势

使用Scala语言

好吧,官方一直声称这是优势。
Scala语言的已经出来很多年,但从未流行过,即一直是小众型语言。虽然软文做很牛逼,但与现实脱离。

不是很成熟

Spark SQL还是是beta版,但软文满天飞
MLlib支持的算法有限
生产环境敢/能用不?

框架本身复杂,想写出性能卓越的程序需要下大功夫

job拆分,task的拆分等,会导致代码的
 参考:
http://spark.apache.org/
http://blog.csdn.net/book_mmicky/article/details/29362405

转载于:https://www.cnblogs.com/chanxiu/p/3967786.html

原理系列:Spark1.x 生态圈一览相关推荐

  1. HDFS底层原理系列讲解之fsimage、editslog

    HDFS底层原理系列讲解之fsimage.editslog

  2. 高性能Web动画和渲染原理系列(3)——transform和opacity为什么高性能

    [摘要] 研究Web高性能动画及原理 示例代码托管在:http://www.github.com/dashnowords/blogs 博客园地址:<大史住在大前端>原创博文目录 关于opa ...

  3. 算法原理系列:红黑树

    红黑树 看了网上关于红黑树的大量教程,发现一个共性,给出定义,适用情况,然后大量篇幅开始讨论它如何旋转,这就一发不可收拾了,各种情况的讨论,插入删除,插入删除,看的云里雾里,好不容易搞清楚,过段时间就 ...

  4. 海量存储检索原理系列文章

    海量存储检索原理系列文章 作者:WhisperXD 来源:http://qing.blog.sina.com.cn/whisperxd Nov20 海量存储之序言 标签:海量存储检索原理 ​今天玩微薄 ...

  5. [转]海量存储检索原理系列文章

    海量存储检索原理系列文章 作者:WhisperXD 来源:http://qing.blog.sina.com.cn/whisperxd Nov20 海量存储之序言 标签:海量存储检索原理 ​今天玩微薄 ...

  6. 海量存储检索原理系列文章(都是精华)

    海量存储检索原理系列文章 作者:WhisperXD 来源:http://qing.blog.sina.com.cn/whisperxd Nov20 海量存储之序言 标签:海量存储检索原理 ​今天玩微薄 ...

  7. Tomcat原理系列之四:Tomat如何启动spring(加载web.xml)

    Tomcat原理系列之四:Tomat如何启动spring 熟悉的web.xml ContextLoaderListener Tomcat的初始化StandardContext.startInterna ...

  8. 调试器工作原理系列一: 基础篇

    调试器工作原理系列一: 基础篇 本文是一系列探究调试器工作原理的文章的第一篇.我还不确定这个系列需要包括多少篇文章以及它们所涵盖的主题,但我打算从基础知识开始说起. 关于本文 我打算在这篇文章中介绍关 ...

  9. 算法原理系列:优先队列

    算法原理系列:优先队列 第一次总结这种动态的数据结构,一如既往,看了大量的教程,上网搜优先队列原理,能出来一大堆,但不知道为什么怎么这么多人搞不清楚原理和实现的区别?非要把实现讲成原理,今天就说说自己 ...

最新文章

  1. NVelocity模板引擎的注意事项
  2. POJ2817 WordStack(状压DP)
  3. java Thread sleep 和obj.wait,以及sychronized,minor源码
  4. C#操作Excel文件暨C#实现在Excel中将连续多列相同数据项合并
  5. 列表视图案例2——显示用户列表
  6. 大数据导论(2)——推动大数据发展主要的商业因素(业务架构、业务流程管理、通信技术、万物互联等)...
  7. 银耳椰椰——Alpha冲刺Day09
  8. 钓鱼工具gophish史上最详细教程(附实例) —— 手把手教你成为“捕鱼人”
  9. 爱快路由研究中关于rootfs.gz文件的解压缩问题
  10. fnl+wrf 报错记录
  11. 2020年最好用的手机是哪一款_2020年什么手机好用,买手机建议买什么牌子的?...
  12. matlab取点坐标之前先将图片放大缩小
  13. vim autoformat php,将Vim打造成Python IDE(二):代码格式化的一些问题
  14. 一些检索英文文献的网址(收藏)
  15. 60个相见恨晚的神器工具
  16. 怎么把文字转换成语音?教你几个方法,超级简单
  17. 对MSRA-USTC 2011的 meng-meng(萌萌) 的team project的学习和评价
  18. ECCV 2020 Oral | 沈春华团队新作,将条件卷积引入实例分割
  19. html阅读模式怎么进入word模式,Word视图阅读模式 带您体验Word2013进入阅读模式、视图设置功能...
  20. linux东软培训答案,东软Linux实验报告.doc

热门文章

  1. SpringCloud:学习Docker安装zookeeper,注册服务
  2. Hive优化(再一遍系统复习)
  3. 计算机投诉信英语作文,投诉信A Letter of Complaint
  4. 【Python学习】 - skimage包
  5. 【牛客 - 82B】区间的连续段(贪心,建图,倍增)
  6. 【HDU - 4056】Draw a Mess (并查集 or 线段树)
  7. 【HRBUST - 1054 】Brackets! Brackets! (括号匹配,思维,STL栈)
  8. Trie树(字典树)详细知识点及其应用
  9. php文件上传并保存路径到数据库,thinkphp表单上传文件并将文件路径保存到数据库中?...
  10. 群签名和环签名的区别_超级签名和TF签名使用个人开发者账号的区别是什么?...