Spark概述
背景
目前按照大数据处理类型来分大致可以分为:批量数据处理、交互式数据查询、实时数据流处理,这三种数据处理方式对应的业务场景也都不一样;
关注大数据处理的应该都知道Hadoop,而Hadoop的核心为HDFS与MapReduce,HDFS分布式文件系统在Hadop中是用来存储数据的;MapReduce为Hadoop处理数据的核心,接触过函数式编程的都知道函数式语言中也存在着Map、Reduce函数其实这两者的思想是一致的;也正是因为Hadoop数据处理核心为MapReduce奠定了它注定不是适用场景广泛的大数据框架;
可以这么说Hadoop适用于Map、Reduce存在的任何场景,具体场景比如:WordCount、排序、PageRank、用户行为分析、数据统计等,而这些场景都算是批量数据处理,而Hadoop并不适用于交互式数据查询、实时数据流处理;
这时候就出现了各种数据处理模型下的专用框架如:Storm、Impala、GraphLab等;
1、Storm:针对实时数据流处理的分布式框架;
2、Impala:适用于交互式大数据查询的分布式框架;
3、GraphLab:基于图模型的机器学习框架;
1、MapReduce简单模型
这时候如果一个团队或一个公司中同时都有设计到大数据批量处理、交互式查询、实时数据流处理这三个场景;这时候就会有一些问题:
1、学习成本很高,每个框架都是不同的实现语言、不同的团队开发的;
2、各个场景组合起来代价必然会很大;
3、各个框架中共享的中间数据共享与移动成本高;
Spark
就在这时候UC Berkeley AMP推出了全新的大数据处理框架:Spark提供了全面、统一适用与不同场景的大数据处理需求(批量数据处理、交互式数据查询、实时数据流处理、机器学习);Spark不仅性能远胜于Hadoop而却还兼容Hadoop生态系统,Spark可以运行在Hadoop HDFS之上提供争强 功能,可以说Spark替代了Hadoop MapReduce,但Spark依然兼容Hadoop中的YARN与Apache Mesos组件,现有Hadoop用户可以很容易就迁移到Spark;
Spark提出了RDD(Resilient Distributed Datasets)这么一个全新的概念,RDD弹性分布式数据集是并行、容错的分布式数据结构;RDD可以持久化到硬盘或内存当中,为一个分区的数据集,分区的多少决定了并行计算的粒度;并且提供了一系列的操作RDD中的数据:
1、创建操作(Creation Operation):RDD由SparkContext通过内存数据或外部文件系统创建;
2、转换操作(Transformation Operation):将RDD通过转换操作变为另一个RDD,Spark提供了map、flatMap、filter等一系列的转换操作;
3、控制操作(Control Operation):将RDD持久化到内存或硬盘当中,如cache将filterRDD缓存到内存;
4、行动操作:(Action Operation):Spark采用了惰性计算,对于任何行动操作都会产生Spark Job运行产生最终结果;提供了join、groupBy、count等操作,Spark中存在两种操作产生的结果为Scala集合或者标量与RDD保存到文件或数据库;
1、Spark结构图
Spark RDD:Spark RDD提供了一系列的操作接口,为不变的数据存储结构并存储与内存中使用DAG进行任务规划使更好的处理MapReduce类似的批处理;
Shark/Spark SQL:分布式SQL引擎,兼容Hive性能远比Hive高很多;
Spark Streaming:将数据流分解为一系列批处理作业使用Spark调度框架更好的支持数据流操作,支持的数据输入源有:Kafka、Flume等;
GraphX:兼容Pregel、GraphLab接口为基于Spark的图计算框架;
MLlib:为Spark的机器学习算法库,支持常用的算法有:分类算法、推荐算法、聚类算法等等;
性能卓越、支持多种大数据处理模型、支持多种编程语言接口:Java、Scala、Python,许多大公司如IBM等大力支持推广Spark的发展;
文章首发地址:Solinx
http://www.solinx.co/archives/519
Spark概述的更多相关文章
- 大数据技术之_19_Spark学习_01_Spark 基础解析 + Spark 概述 + Spark 集群安装 + 执行 Spark 程序
第1章 Spark 概述1.1 什么是 Spark1.2 Spark 特点1.3 Spark 的用户和用途第2章 Spark 集群安装2.1 集群角色2.2 机器准备2.3 下载 Spark 安装包2 ...
- Spark概述及集群部署
Spark概述 什么是Spark (官网:http://spark.apache.org) Spark是一种快速.通用.可扩展的大数据分析引擎,2009年诞生于加州大学伯克利分校AMPLab,2010 ...
- 大话Spark(1)-Spark概述与核心概念
说到Spark就不得不提MapReduce/Hadoop, 当前越来越多的公司已经把大数据计算引擎从MapReduce升级到了Spark. 至于原因当然是MapReduce的一些局限性了, 我们一起先 ...
- Spark入门:第1节 Spark概述:1 - 4
2.spark概述 2.1 什么是spark Apache Spark™ is a unified analytics engine for large-scale data processing. ...
- 1 Spark概述
第1章 Spark概述 1.1 什么是Spark Spark是一种快速.通用.可扩展的大数据分析引擎,2009年诞生于加州大学伯克利分校AMPLab,2010年开源,2013年6月成为Apache孵 ...
- Hive On Spark概述
Hive现有支持的执行引擎有mr和tez,默认的执行引擎是mr,Hive On Spark的目的是添加一个spark的执行引擎,让hive能跑在spark之上: 在执行hive ql脚本之前指定执行引 ...
- Spark 概述
Spark 是什么? ● 官方文档解释:Apache Spark is a fast and general engine for large-scale data processing. 通俗的理解 ...
- 3.1 Spark概述
一.Spark简介 1.Spark的特点 特点1:运行速度快(内存计算,循环数据流.有向无环图设计机制) 把所有针对数据集的操作转换成一张有向无环图,整个执行引擎调度都是基于这个有向无环图,对这个有向 ...
- Spark学习一:Spark概述
1.1 什么是Spark Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎. 一站式管理大数据的所有场景(批处理,流处理,sql) spark不涉及到数据的存储,只 ...
随机推荐
- C# 面向对象基础
面向对象编程OOP(Object-Oriented Programming) 类和对象 类是对象的定义,对象是类的实现. [属性集信息] [类修饰符] class 类名 [:类基] //定义类的语法格 ...
- java终端获取输入
上一篇博客已经介绍了System.in这个输入流这次谈谈java如何获取终端(控制台)的输入 (1)BufferedReader JDK 1.4 及以下的版本中要想从控制台中输入数据只有一种办法,即使 ...
- 应用OpenMP的一个简单的设计模式
小喵的唠叨话:最近很久没写博客了,一是因为之前写的LSoftmax后馈一直没有成功,所以在等作者的源码.二是最近没什么想写的东西.前两天,在预处理图片的时候,发现处理200w张图片,跑了一晚上也才处理 ...
- SQL Saturday 北京将于7月25日举办线下活动,欢迎参加
地点:北京微软(中国)有限公司[望京利星行],三层308室 报名地址:https://onedrive.live.com/redir?page=survey&resid=f ...
- MVC5 网站开发之七 用户功能 2 用户添加和浏览
目录 MVC5网站开发之一 总体概述 MVC5 网站开发之二 创建项目 MVC5 网站开发之三 数据存储层功能实现 MVC5 网站开发之四 业务逻辑层的架构和基本功能 MVC5 网站开发之五 展示层架 ...
- 谈谈枚举的新用法——java
问题的由来 前段时间改游戏buff功能,干了一件愚蠢的事情,那就是把枚举和运算集合在一起,然后运行一段时间后buff就出现各种问题,我当时懵逼了! 事情是这样的,做过游戏的都知道,buff,需要分类型 ...
- java占位符应用
(转载自:http://www.cnblogs.com/happyday56/p/3996498.html) String类的format()方法用于创建格式化的字符串以及连接多个字符串对象.熟悉C语 ...
- 使用C#,轻松发邮件之QQ邮箱
参考来源 http://www.cnblogs.com/youring2/archive/2008/11/29/1343911.html
- C#开发微信门户及应用(32)--微信支付接入和API封装使用
在微信的应用上,微信支付是一个比较有用的部分,但也是比较复杂的技术要点,在微商大行其道的年代,自己的商店没有增加微信支付好像也说不过去,微信支付旨在为广大微信用户及商户提供更优质的支付服务,微信的支付 ...
- JavaWeb_day07_JSP
本文为博主辛苦总结,希望自己以后返回来看的时候理解更深刻,也希望可以起到帮助初学者的作用. 转载请注明 出自 : luogg的博客园 谢谢配合! day07 JSP 全称 :Java Server P ...