Spark快速入门系列(1) | 深入浅出,一文让你了解什么是Spark

  大家好,我是不温卜火,是一名计算机学院大数据专业大二的学生,昵称来源于成语—不温不火,本意是希望自己性情温和。作为一名互联网行业的小白,博主写博客一方面是为了记录自己的学习过程,另一方面是总结自己所犯的错误希望能够帮助到很多和自己一样处于起步阶段的萌新。但由于水平有限,博客中难免会有一些错误出现,有纰漏之处恳请各位大佬不吝赐教!暂时只有csdn这一个平台,博客主页:https://buwenbuhuo.blog.csdn.net/

  此篇为大家带来的是Spark的一个详细介绍。
1

目录

  • 1. 什么是Spark
    • Spark的发展历史
  • 2. Spark VS Hadoop
  • 3. spark的特点
    • 1. 快速
    • 2. 易用
    • 3. 通用
    • 4. 可融合性
  • 4. Spark 内置模块介绍
    • 4.1 集群管理器(Cluster Manager)
    • 4.2 SparkCore
    • 4.3 Spark SQL
    • 4.4 Spark Streaming
    • 4.5 Spark MLlib


2

1. 什么是Spark

  Spark 是一个快速(基于内存), 通用, 可扩展的集群计算引擎
  并且 Spark 目前已经成为 Apache 最活跃的开源项目, 有超过 1000 个活跃的贡献者.

Spark的发展历史

  2009年诞生于美国加州大学伯克利分校AMP 实验室,

  2010年通过BSD许可协议开源发布,

  2013年捐赠给Apache软件基金会并切换开源协议到切换许可协议至 Apache2.0,

  2014年2月,Spark 成为 Apache 的顶级项目

  2014年11月, Spark的母公司Databricks团队使用Spark刷新数据排序世界记录

  Spark 成功构建起了一体化、多元化的大数据处理体系。在任何规模的数据计算中, Spark 在性能和扩展性上都更具优势。

  Hadoop 之父Doug Cutting 指出:Use of MapReduce engine for Big Data projects will decline, replaced by Apache Spark (大数据项目的MapReduce 引擎的使用将下降,由Apache Spark 取代)

  Hadoop 商业发行版本的市场领导者Cloudera 、HortonWorks 、MapR 纷纷转投Spark,并把Spark 作为大数据解决方案的首选和核心计算引擎。

  2014 年的如此Benchmark 测试中, Spark 秒杀Hadoop ,在使用十分之一计算资源的情况下,相同数据的排序上, Spark 比Map Reduce 快3 倍! 在没有官方PB 排序对比的情况下,首次将S park 推到了IPB 数据(十万亿条记录) 的排序,在使用190 个节点的情况下,工作负载在4 小时内完成, 同样远超雅虎之前使用3800 台主机耗时16 个小时的记录。

  2015年6月, Spark 最大的集群来自腾讯–8000 个节点, 单个Job 最大分别是阿里巴巴和Databricks–1PB ,震撼人心!同时,Spark的Contributor 比2014 年涨了3 倍,达到730 人:总代码行数也比2014 年涨了2 倍多,达到40 万行。

  IBM 于2015 年6 月承诺大力推进Apache Spark 项目, 并称该项目为:以数据为主导的,未来十年最重要的新的开源项目。这-承诺的核心是将Spark 嵌入IBM 业内领先的分析和商务平台,并将Spark 作为一项服务,在IBMB平台上提供给客户。IBM 还将投入超过3500 名研究和开发人员在全球10余个实验室开展与Spark 相关的项目,并将为Spark 开源生态系统无偿提供突破性的机器学习技术–IBM SystemML。同时,IBM 还将培养超过100 万名Spark 数据科学家和数据工程师。

  2016 年,在有“计算界奥运会”之称的国际著名Sort Benchmark全球数据排序大赛中,由南京大学计算机科学与技术系PASA 大数据实验室、阿里巴巴和Databricks 公司组成的参赛因队NADSort,以144美元的成本完成lOOTB 标准数据集的排序处理,创下了每TB 数据排序1.44美元成本的最新世界纪录,比2014 年夺得冠军的加州大学圣地亚哥分校TritonSort团队每TB 数据4.51美元的成本降低了近70%,而这次比赛依旧使用Apache Spark 大数据计算平台,在大规模并行排序算法以及Spark 系统底层进行了大量的优化,以尽可能提高排序计算性能并降低存储资源开销,确保最终赢得比赛。

  在FullStack 理想的指引下,Spark 中的Spark SQL 、SparkStreaming 、MLLib 、GraphX 、R 五大子框架和库之间可以无缝地共享数据和操作, 这不仅打造了Spark 在当今大数据计算领域其他计算框架都无可匹敌的优势, 而且使得Spark 正在加速成为大数据处理中心首选通用计算平台。

Spark快速入门系列(1) | 深入浅出,一文让你了解什么是Spark_第1张图片

2. Spark VS Hadoop

Spark快速入门系列(1) | 深入浅出,一文让你了解什么是Spark_第2张图片
  尽管Spark相对于Hadoop而言具有较大优势,但Spark并不能完全替代Hadoop,Spark主要用于替代Hadoop中的MapReduce计算模型。存储依然可以使用HDFS,但是中间结果可以存放在内存中;调度可以使用Spark内置的,也可以使用更成熟的调度系统YARN等。
  实际上,Spark已经很好地融入了Hadoop生态圈,并成为其中的重要一员,它可以借助于YARN实现资源调度管理,借助于HDFS实现分布式存储。
  此外,Hadoop可以使用廉价的、异构的机器来做分布式存储与计算,但是,Spark对硬件的要求稍高一些,对内存与CPU有一定的要求。

3. spark的特点

1. 快速

  与 Hadoop 的 MapReduce 相比, Spark 基于内存的运算是 MapReduce 的 100 倍.基于硬盘的运算也要快 10 倍以上.

  Spark 实现了高效的 DAG 执行引擎, 可以通过基于内存来高效处理数据流

Spark快速入门系列(1) | 深入浅出,一文让你了解什么是Spark_第3张图片

2. 易用

  Spark 支持 Scala, Java, Python, R 和 SQL 脚本, 并提供了超过 80 种高性能的算法, 非常容易创建并行 App
  而且 Spark 支持交互式的 Python 和 Scala 的 shell, 这意味着可以非常方便地在这些 shell 中使用 Spark 集群来验证解决问题的方法, 而不是像以前一样 需要打包, 上传集群, 验证等. 这对于原型开发非常重要.

Spark快速入门系列(1) | 深入浅出,一文让你了解什么是Spark_第4张图片

3. 通用

  Spark 结合了SQL, Streaming和复杂分析.
  Spark 提供了大量的类库, 包括 SQL 和 DataFrames, 机器学习(MLlib), 图计算(GraphicX), 实时流处理(Spark Streaming) .
  可以把这些类库无缝的柔和在一个 App 中.
  减少了开发和维护的人力成本以及部署平台的物力成本.

Spark快速入门系列(1) | 深入浅出,一文让你了解什么是Spark_第5张图片

4. 可融合性

  Spark 可以非常方便的与其他开源产品进行融合.
  比如, Spark 可以使用 Hadoop 的 YARN 和 Appache Mesos 作为它的资源管理和调度器, 并且可以处理所有 Hadoop 支持的数据, 包括 HDFS, HBase等.

Spark快速入门系列(1) | 深入浅出,一文让你了解什么是Spark_第6张图片

4. Spark 内置模块介绍

Spark快速入门系列(1) | 深入浅出,一文让你了解什么是Spark_第7张图片

4.1 集群管理器(Cluster Manager)

  Spark 设计为可以高效地在一个计算节点到数千个计算节点之间伸缩计算。
  为了实现这样的要求,同时获得最大灵活性,Spark 支持在各种集群管理器(Cluster Manager)上运行,目前 Spark 支持 3 种集群管理器:

  1. Hadoop YARN(在国内使用最广泛)
  2. Apache Mesos(国内使用较少, 国外使用较多)
  3. Standalone(Spark 自带的资源调度器, 需要在集群中的每台节点上配置 Spark)

4.2 SparkCore

  实现了 Spark 的基本功能,包含任务调度、内存管理、错误恢复、与存储系统交互等模块。SparkCore 中还包含了对弹性分布式数据集(Resilient Distributed DataSet,简称RDD)的API定义。

4.3 Spark SQL

  是 Spark 用来操作结构化数据的程序包。通过SparkSql,我们可以使用 SQL或者Apache Hive 版本的 SQL 方言(HQL)来查询数据。Spark SQL 支持多种数据源,比如 Hive 表、Parquet 以及 JSON 等。

4.4 Spark Streaming

  是 Spark 提供的对实时数据进行流式计算的组件。提供了用来操作数据流的 API,并且与 Spark Core 中的 RDD API 高度对应。

4.5 Spark MLlib

  提供常见的机器学习 (ML) 功能的程序库。包括分类、回归、聚类、协同过滤等,还提供了模型评估、数据导入等额外的支持功能。
Spark快速入门系列(1) | 深入浅出,一文让你了解什么是Spark_第8张图片
  Spark 得到了众多大数据公司的支持,这些公司包括 Hortonworks、IBM、Intel、Cloudera、MapR、Pivotal、百度、阿里、腾讯、京东、携程、优酷土豆。
  当前百度的 Spark 已应用于大搜索、直达号、百度大数据等业务;
  阿里利用 GraphX 构建了大规模的图计算和图挖掘系统,实现了很多生产系统的推荐算法;
  腾讯Spark集群达到 8000 台的规模,是当前已知的世界上最大的 Spark 集群。

  本次的分享就到这里了,


11

  好书不厌读百回,熟读课思子自知。而我想要成为全场最靓的仔,就必须坚持通过学习来获取更多知识,用知识改变命运,用博客见证成长,用行动证明我在努力。
  如果我的博客对你有帮助、如果你喜欢我的博客内容,请“点赞” “评论”“收藏”一键三连哦!听说点赞的人运气不会太差,每一天都会元气满满呦!如果实在要白嫖的话,那祝你开心每一天,欢迎常来我博客看看。
  码字不易,大家的支持就是我坚持下去的动力。点赞后不要忘了关注我哦!

Spark快速入门系列(1) | 深入浅出,一文让你了解什么是Spark_第9张图片
12

你可能感兴趣的:(Spark)