1.spark简介

spark是一个用于大规模数据处理的统一计算引擎。适用于各种各样原先需要多种不同的分布式平台处理的场景,包括批处理、迭代计算、交互式查询、流处理。通过统一的框架将各种处理流程整合到一起。

spark特性

  • 快速性

spark通过使用先进的DAG调度器、查询优化器和物理执行引擎,可以高性能地进行批量及流式处理。使用逻辑回归算法进行迭代计算,spark比hadoop速度快100多倍。

快速性
  • 简单易用

spark支持多种编程语言,比如Java、Scala、Python、R及SQL。

spark提供了超过80多个高级算子操作,可以很便捷地构建并行计算应用。

  • 通用性

spark构建了一个完善的生态栈,将批量计算、交互式计算、流式计算、机器学习及图计算整合到一个统一的框架体系中。

通用性
  • 处处运行

spark可以运行在standalone、YARN、Mesos、Kubernetes及EC2多种调度平台上。

另外,spark可以接入多种数据源,比如HDFS、Alluxio、HBase、Cassandra、Hive及本地文件。

处处运行

spark生态栈

spark生态栈

Spark Core

Spark Core实现了Spark的基本功能,包括任务调度、内存管理、错误恢复、与存储系统交互等模块。Spark Core还包含了对弹性分布式数据集(resilient distributed dataset,简称RDD)的API定义。RDD表示分布在多个计算节点上并行操作的元素集合,是Spark的核心抽象模型。

Spark SQL

Spark SQL是Spark用来处理结构化数据的子框架。Spark SQL支持多种数据源,比如Hive表、Parquet及JSON等。Spark SQL可使用SQL或Hive的SQL方言(HQL)查询数据,还支持将SQL和RDD相互转换。

Spark Streaming

Spark Streaming是Spark提供的对实时数据进行流式计算的组件。Spark Streaming提供了操作数据流的API,同时还提供了高级别的容错性、吞吐量及可伸缩性。

MLlib

MLlib是一个提供常见机器学习(ML)功能的程序库。MLlib提供了很多种机器学习算法,包括分类、回归、聚类、协同过滤等,还提供了模型评估、数据导入及更底层的机器学习原语(包括通用的梯度下降优化算法)。

Graphx

Graphx是用来操作图(比如社交网络的朋友关系图)的程序库,可进行并行的图计算。Graphx扩展了RDD API,能用来创建一个顶点和边都包含任意属性的有向图。Graphx支持对图的各种操作(比如进行图分隔的subgraph和操作所有顶点的mapVertices),及一些常用算法(比如PageRank和三角计数)。

集群管理器

Spark设计为可高效地在一个计算节点到数千个计算节点之间伸缩计算,所以为了获取最大灵活性,spark支持在各种集群管理器上运行,包括Hadoop YARN、Apache Mesos及Spark自带的独立调度器等。

spark用户及用途

spark的使用者主要分为两大目标人群:数据分析师和工程师。这两大人群使用spark的典型用例不一致,大致分为两类:数据分析和数据处理。

数据分析

数据分析师就是主要负责分析数据并建模的人。他们具备SQL、统计、预测建模(机器学习)等方面技能,有一定使用Python、Matlab或R编程的能力。

Spark通过一系列组件支持数据分析任务。Spark shell提供python和scala接口来进行交互式数据分析。Spark SQL提供独立的SQL shell来使用SQL探索数据,也可以通过标准的Spark程序或Spark shell进行SQL查询。MLlib程序库进行机器学习和数据分析。Spark还支持调用R或Matlab外部程序。

数据处理

工程师就是使用Spark开发数据处理应用的软件开发者。他们具备软件工程概念(封装、接口设计及面向对象思想),能使用工程技术设计软件系统。

Spark为开发用于集群并行执行的程序提供了捷径。不需要开发者关注分布式问题、网络通信及程序容错性。为工程师提供足够的接口实现常见的任务及对应用监控、审查和性能调优。

spark简史

  • 2009 ,Spark诞生于UCBerkeley的AMP实验室

  • 2010 ,Spark正式对外开源

  • 2012-10-15,Spark 0.6.0发布。

  • 大范围的性能改进,增加了一些新特性,并对Standalone部署模式进行了简化

  • 2013-02-27,Spark 0.7.0发布

  • 增加了更多关键特性,例如:Python API、Spark Streaming的alpha版本等

  • 2013-06-21,Spark接受进入Apache孵化器

  • 2013-09-17,Spark 0.8.0发布

  • 支持Scala2.9/YARN2.2/Standalone部署模式下调度的高可用性,shuffle优化等

  • 2014-01-24,Spark 0.9.0发布

  • 增加了GraphX,机器学习新特性,流式计算新特性,核心引擎优化(外部聚合、加强对YARN的支持)等

  • 2014-05-26,Spark 1.0.0发布

  • 增加了Spark SQL、MLlib、GraphX和Spark Streaming都增加了新特性并进行了优化。Spark核心引擎还增加了对安全YARN集群的支持

  • 2014-09-03,Spark 1.1.0发布

  • Spark核心API及Streaming,Python,SQL,GraphX和MLlib的bug修复

  • 2014-12-10,Spark 1.2.0发布

  • Spark核心API及Streaming,Python,SQL,GraphX和MLlib的bug修复

  • 2015-03-06,Spark 1.3.0发布

  • 该版本发布的最大亮点是新引入的DataFrame API,对于结构型的DataSet,它提供了更方便更强大的操作运算。。除了DataFrame之外,还值得关注的一点是Spark SQL成为了正式版本,这意味着它将更加的稳定,更加的全面。

  • 2015-06-03,Spark 1.4.0发布

  • 该版本将 R API 引入 Spark,同时提升了 Spark 的核心引擎和 MLlib ,以及 Spark Streaming 的可用性

  • 2015-09-09,Spark 1.5.0发布

  • Spark 1.5.0是1.x线上的第6个发行版。这个版本共处理了来自230+contributors和80+机构的1400+个patches。

  • Spark 1.5的许多改变都是围绕在提升Spark的性能、可用性以及操作稳定性。

  • Spark 1.5.0焦点在Tungsten项目,它主要是通过对低层次的组建进行优化从而提升Spark的性能。

  • Spark 1.5版本为Streaming增加了operational特性,比如支持backpressure。另外比较重要的更新就是新增加了一些机器学习算法和工具,并扩展了Spark R的相关API。

  • 2015-12-22,Spark 1.6.0发布

  • 该版本含了超过1000个patches,在这里主要展示三个方面的主题:新的Dataset API,性能提升(读取Parquet 50%的性能提升,自动内存管理,streaming state management十倍的性能提升),以及大量新的机器学习和统计分析算法。

  • 在Spark1.3.0引入DataFrame,它可以提供high-level functions让Spark更好地处理数据结构和计算。这让Catalyst optimizer 和Tungsten execution engine自动加速大数据分析。发布DataFrame之后开发者收到了很多反馈,其中一个主要的是大家反映缺乏编译时类型安全。为了解决这个问题,Spark采用新的Dataset API (DataFrame API的类型扩展)。Dataset API扩展DataFrame API支持静态类型和运行已经存在的Scala或Java语言的用户自定义函数。对比传统的RDD API,Dataset API提供更好的内存管理,特别是在长任务中有更好的性能提升。

  • 2016-07-20,Spark 2.0.0发布

  • 该版本主要更新APIs,支持SQL 2003,支持R UDF ,增强其性能。300个开发者贡献了2500补丁程序

  • 2016-12-16,Spark 2.1.0发布

  • 这是 2.x 版本线的第二个发行版。此发行版在为Structured Streaming进入生产环境做出了重大突破,Structured Streaming 现在支持了event time watermarks了并且支持Kafka0.10

  • 此外,此版本更侧重于可用性,稳定性和优雅(polish),并解决了1200多个tickets

  • 2017-07-01,Spark 2.2.0发布

  • 这是 2.x 系列的第三个版本。此版本移除了 Structured Streaming 的实验标记(experimental tag),意味着已可以放心在线上使用。

  • 该版本的更新内容主要针对的是系统的可用性、稳定性以及代码润色。包括:

    • Core 和 Spark SQL 的 API 升级和性能、稳定性改进,比如支持从 Hive metastore 2.0/2.1 中读取数据;支持解析多行的 JSON 或 CSV 文件;移除对 Java 7 的支持;移除对 Hadoop 2.5 及更早版本的支持 等

    • SparkR 针对现有的 Spark SQL 功能添加了更广泛的支持,比如 Structured Streaming 为 R 语言提供的 API ;R 语言支持完整的 Catalog API ;R 语言支持 DataFrame checkpointing 等

  • 2018-02-23,Spark 2.3.0发布

  • 这是 2.x 系列中的第四个版本。此版本增加了对 Structured Streaming 中的 Continuous Processing 以及全新的 Kubernetes Scheduler 后端的支持

  • 其他主要更新包括新的 DataSource 和 Structured Streaming v2 API,以及一些 PySpark 性能增强。

  • 此外,此版本继续改进项目的可用性、稳定性,并持续润色代码。

  • now

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,258评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,335评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,225评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,126评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,140评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,098评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,018评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,857评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,298评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,518评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,678评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,400评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,993评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,638评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,801评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,661评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,558评论 2 352

推荐阅读更多精彩内容