栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Spark简介

Spark简介

文章目录
      • Spark简介
        • spark发展
        • Spark生态
          • Spark Core
          • Spark SQL
          • Spark Streaming
          • MLlib
          • GraphX
        • Spark优势
          • 支持计算场景多
          • 容易上手,支持多种语言
          • 社区活跃度高
          • 支持多种文件系统的计算
          • 可融合性强
          • 相对于mapreduce的优势
            • 速度快
            • 中间输出结果优势
            • 执行方式策略
            • 开发效率

Spark简介

Spark是基于内存计算的大数据并行计算框架。Spark于2009年诞生于加州大学伯克利分校AMPLab。目前,已经成为Apache软件基金
会旗下的顶级开源项目。Spark是相对于MapReduce上的批量计算、迭代型计算以及基于Hive的SQL查询的上百倍。

spark发展

·2009年:在加州大学伯克利分校AMPLab诞生。
·2010年:开始开源。
·2013年6月:成为Apache孵化器项目。
·2014年2月:Apache顶级项目。
·2014年2月:大数据公司Cloudera宣称加大Spark框架的投入来取代MapReduce。
·2014年4月:大数据公司MapR投入Spark阵营,Apache Mahout放弃MapReduce,将使用Spark作为计算引擎。
·2014年5月:Pivotal Hadoop集成Spark全栈。
·2014年5月30日:Spark 1.0.0发布。
·2014年6月:Spark 2014峰会在旧金山召开。
·2014年7月:Hive on Spark项目启动。

Spark生态

Spark Core

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

Spark SQL

Spark SQL 是Spark 用来操作结构化数据的程序包。Spark SQL 支持多种数据源:Hive 表、Parquet 以及JSON 等。Spark SQL 还支
持开发者将SQL 和传统的RDD 编程的数据操作方式相结合。

Spark Streaming

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

MLlib

MLlib是spark中一个提供常见的机器学习(ML)功能的程序库,MLlib 提供了很多种机器学习算法。

GraphX

GraphX 是用来操作图(比如社交网络的朋友关系图)的程序库,可以进行并行的图计算。

Spark优势 支持计算场景多

Spark支持复杂的计算,除了‘map’和reduce简单算子之外还有其他多种复杂的算子,更是支持sql查询,机器学习,流计算,以及图计算。

容易上手,支持多种语言

可发人员可以通过java,scala,python语言环境下来开发,Spark支持这些语言的开发,同时可以在shall中进行交互计算,查看自己想要的结果。

社区活跃度高

因其优秀的性能,已经被各个大公司所广泛应用,Yahoo、Twitter、阿里巴巴、百度、网易、英特尔等公司的生产环境中均使用了Spark。

支持多种文件系统的计算

与hadoop框架高度结合,可以读取已有的任何Hadoop数据,可以运行在hadoop数据源上,比如Hive、Hbase、HDFS等等。还可以支持本地文本文件系统,以及内存中自定义的数据。Hadoop 并非Spark 的必要条件,Spark 支持任何实现了Hadoop 接口的存储系统。

可融合性强

spark可以非常方便的与其他大数据产品进行融合,可以使用hadoop的yarn或者apache mesos来进行任务调度。并且可以支持hadoop支持的所有的数据。

相对于mapreduce的优势 速度快

与Hadoop的MapReduce相比,spark基于内存上的速度要快100倍以上,基于磁盘上的速度也要快10倍以上。

中间输出结果优势

MapReduce的计算引擎通常会将中间结果的数据存入到磁盘中,Hive sql翻译成的MapReduce任务时候会有多个stage,而这些相互依赖的关联的stage之间的数据会存在所依赖的底层存储系统HDFS上。Spark会将对应的任务模型抽象为通用的有向无环图(DAG),对应的中间输出结果会直接存在内存中,而不是HDFS上,以此来加快运算的速度。 Map中间结果写磁盘,Reduce写HDFS,多个MR之间通过HDFS交换数据; 任务调度和启动开销大;而Spark内存计算引擎,提供Cache机制来支持需要反复迭代计算或者多次数据共享,减少数据读取的IO开销

执行方式策略

MapReduce在数据Shuffle之前花费了大量的时间来排序,这个排序在许多场景下是不必要的,Spark可以避免这个排序带来的额外的开销。MapReduce不适合迭代计算(如机器学习、图计算等),交互式处理(数据挖掘) 和流式处理(点击日志分析),而Spark使用多线程池模型来减少task启动开稍,shuffle过程中避免 不必要的sort操作以及减少磁盘IO操作。

开发效率

MapReduce仅支持Map和Reduce两种操作而Spark有丰富的算子提供。而且MapReduce编程不够灵活,而Spark提供丰富的API,支持Java,Scala,Python和R四种语言且代码量比MapReduce少2~5倍。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/439278.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号