原理系列:Spark1.x 生态圈一览

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/448442.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringMVC 注解 : @ModelAttribute

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 SpringMVC 注解 : ModelAttribute 的用法如上。 转自:https://blog.csdn.net/lovesomnus/article/details/78873…

解决: idea 修改 jsp 后,页面刷新无效

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 idea 修改 jsp 后浏览器访问无效。 解决:进入 idea 配置 修改部署方式: 修改 更新文件方式: OK了。

Python中的getpass模块

getpass模块用于输入密码时,隐藏密码字符 代码 import getpass name input("请输入你的名字:") passwd getpass.getpass("请输入你的密码:")print (name,passwd)   首先我们要import引入getpass模块,然后…

如何做到每天写代码?

摘要:总有一大堆事情没有做完,没有时间和精力为业余项目写代码?不要着急,看看可汗学院计算机科学院院长John Resig怎么说。本文将教你如何保证在每天都能有时间给业余项目写代码。 你是否曾为业余项目没有进展而惆怅过&#xff1f…

Vue 实现前后端分离项目

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 Vue实现前后端分离项目的初体验 经过之前学习的Vue的知识: vue基本指令vue组件vue-resourcevue路由 其实我们已经可以开始…

优秀Unix管理员的七个习惯

摘要:Unix系统管理员可能会很懒或喜欢优雅的解决方法,这就是他们的存在之美。一位优秀的Unix系统管理员有着自己的习惯:不会等到问题来找你、精通所使用的工具和系统、确定事情优先次序和喜欢优雅的解决方案但不迷失等。 优秀的Unix系统管理员…

Vue.js 极简小例:读值、样式调用、if判断、a 标签、点击事件、管道

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1. 写法&#xff1a; <template><div id"app"><!-- 三目运算符使用 ‘ok’ 的值定义在 data 中-->{{ ok …

C++与C中const的比较以及const和define的比较

C与C中const的比较&#xff1a; C语言中 const修饰的变量是一个 常变量&#xff0c;本质还是变量&#xff0c;有自己的地址空间C编译器对const常量的处理 当碰见常量声明时&#xff0c;在符号表中放入常量 > 问题&#xff1a;那又如何解释取地址编译过程中若发现对const使…

Vue.js 极简小例:数值计算、千米换算为米、九九乘法表、循环

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 代码&#xff1a; <template><div id"app"><!-- 千米和米换算 --><div id "computed_props&quo…

C++之内联函数

内联函数是一种特殊的函数&#xff0c;具有普通函数的特征&#xff08;参数检查&#xff0c;返回类型等&#xff09; 内联函数是对编译器的一种请求&#xff0c;因此编译器可能拒绝这种请求 内联函数由 编译器处理&#xff0c;直接将编译后的函数体插入调用的地方 宏代码片段…

Vue.js 极简小例: 4 种方式样式绑定、style 的多种方式实现

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 代码&#xff1a; <template><div id"app"><!-- JSON方式使用样式 --><div v-bind:style"{ colo…

50 Python - 装饰器 类定义装饰器

04 类定义装饰器 上节通过函数定义装饰器&#xff0c;本节通过类定义装饰器 001 定义类装饰器 定义一个类&#xff0c;类里面两个函数&#xff0c;一个构造函数init()&#xff0c;一个调用函数call() 构造函数init时候&#xff0c;传递一个函数func()进来 调用函数call()&#…

Vue.js 极简小例: 点击事件

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 代码&#xff1a; <template><div> <!-- jy_mothed 是在 js 中自定义的方法 --><button v-on:click"jy_mot…

APU(美国AMD公司研发的加速处理器)

APU(Accelerated Processing Unit)中文名字叫加速处理器&#xff0c;是AMD“融聚未来”理念的产品&#xff0c;它第一次将中央处理器和独显核心做在一个晶片上&#xff0c;它同时具有高性能处理器和最新独立显卡的处理性能&#xff0c;支持DX11游戏和最新应用的“加速运算”&am…

根本不值得一提的乒乓球国手王浩

最近在看世界乒乓球锦标赛&#xff0c;关于王浩&#xff0c;很多人都说他的技术开创了一个时代&#xff0c;而事实是王浩没有夺过任何世界性大的赛事的单打冠军&#xff0c;我所说的世界性的赛事包括&#xff1a;世界乒乓球锦标赛,奥运会&#xff0c;世界杯&#xff0c;国际乒联…

Vue.js 极简小例:表单 (输入框 input、文本域 textarea、单选框 radio、下拉菜单 selected、复选框 checkbox)

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 代码&#xff1a; <template> <div > <p>---------------------------------------------------------------------…

显卡常识 电脑显卡基础知识普及

我们组装电脑的时候肯定需要考虑到显卡性能&#xff0c;如果电脑配置中的显卡性能不行&#xff0c;那么电脑肯定玩不了大型游戏。可能一些新电脑用户对显卡一点也不了解&#xff0c;我们下面来详细介绍一下电脑显卡的基础知识。 一、显卡简介 显卡是个人电脑最基本组成部分之一…

解决: Cannot find module ‘webpack-cli/bin/config-yargs‘、Error: Cannot find module ‘webpack-cli‘

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 npm 、cnpm 、node、vue 全都装上了&#xff0c;就是 webpack 装不上&#xff01;&#xff01; 最后我把整个服务器还原为初始设置了&…

路由器和交换机的区别详解

很多人对路由器和交换机混为一谈&#xff0c;甚至搞不清楚路由器和交换机有什么区别&#xff0c;有的用户还认为是一样的功能&#xff0c;看名字就知道是两种不同的产品&#xff0c;功能虽然有些类似&#xff0c;但绝对不会完全相同&#xff0c;否则就没有必要用两个全面不同的…