IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Spark简介 -> 正文阅读

[大数据]Spark简介

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倍。
在这里插入图片描述

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-09-08 10:48:29  更:2021-09-08 10:50:51 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 20:46:37-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码