一、Spark的介绍

发展前景:

1、目前许多领域的应用数据爆炸式增长,与前所未有的数据收集规模;例如:电子商务、社交网络、计算机生物、自媒体、公安交通、运营商等等。
2、大规模数据处理和分析系统越来越流行和重要。具备良好特性如通用性、容错性、高性能的大数据处理引擎是当前最受欢迎的。
3、较成熟的大数据计算框架MapReduce、Storm、Flink等都已近存在,与之相比Spark是更加通用的、快速的、性能较优秀的大数据处理系统。

官网介绍:

http://spark.apache.org
1、Spark 是一种用于处理大量级别的数据的统一的分析引擎

2、Spark使用了DGA调度程序、查询优化程序和物理执行引擎,为批处理和流处理数据实现了高性能;官方图中 spark的计算速度是mr的100倍。
3、Spark 优于 mapreduce 的计算速度,官方对比:

4、Spark提供了80多个高级运算符,并且支持 java、scala、Python,R,SQl 等的API ,能简单快速的使用spark构建并发程序。

5、Spark可以运行在任何地方,(Hadoop, Apache Mesos, Kubernetes, standalone, or in the cloud.);并且Spark支持很多的数据源。

6、Spark运行在Hadoop yarn 上,或者单节点模式运行;Spark支持HDFS、Hive、HBase,等几百种数据源。

补充介绍:
  1、Spark 是有scala语言编写的,scala是一种多范式编程语言,主要是为了兼容java的面向对象思想和面向函数编程的思想。这为Spark提供了交互式编程与相比于java代码更加简介的编程方式;
  2、Spark 对比于MapReduce,spark是包含流处理的批处理计算框架,mr 是批处理计算框架;
  3、Spark 优先使用内存,做个作业之间,Spark使用内存进行数据存储与过度,而MapReduce是需要shuffer数据到磁盘的。
  4、Spark 具备了包括Map 和Reduce之外的其他多个算子,Spark可以更加方便的处理数据。

  复杂的多个作业对比:
    Hadoop : 磁盘 -> mapper -> reduce -> 磁盘 -> mapper -> reduce -> 磁盘
    spark :磁盘 -> spark算子 -> 内存 -> spark算子 -> 磁盘

  Spark是可以替代mr的一种计算引擎
  但是spark使用中会产生内存过多而导致内存不够用而导致job执行失败。所以spark优于mr的计算速度,但是spark不能取代mr

二、Spark的组成

Spark的内容构成:
  Spark 拥有一系列的依赖,支持包括SQL,DataFrames,机器学习的MLib,图计算的GraphX,流处理的Spark Streaming

  构成spark的是spark core, spark SQL, spark streaming, MLlib, GraphX
  spark core提供了spark的基础和核心功能
  其他的功能都是在spark core 的基础上进行扩展的
  spark SQL 是spark用来操作结构化数据的组件。通过spark SQL, 可以使用SQL 或者 HQL (Hive 方言版 SQL)进行数据查询。
  spark streaming 是spark平台针对实时数据进行流式计算的组件,提供了丰富的流式处理API
  spark MLlib 提供了丰富的机器学习算法库,不仅提供了模型评估、数据导入等额外的功能,还提供了一些更底层的机器学习原语。
  spark GraphX 是spark面向图计算提供的框架与算法库

Spark的计算架构:
  大数据应用场景:
    1、复杂的批量数据处理:通常时间跨度在数十分钟到数小时之间
    2、基于历史数据的交互式查询:通常时间跨度在数十秒到数分钟之间
    3、基于实时数据流的数据处理:通常时间跨度在数百毫秒到数秒之间
  Spark的架构和Hadoop生态的架构类似,为主从架构

  driver 运行spark程序的main函数,向Cluster Manager申请资源 和提交要运行的程序。
  Cluster Manage 控制整个集群,监控worker,在yarn的模式下做资源管理器。
  Executor 是在节点上执行任务的执行器。并执行由driver创建的SparkContext分发的任务。

三、Spark优缺点

spark对比MapReduce:
  优点:
  1、spark更加易于使用:spark提供包含map、reduce的80多个高级简单操作符,提供除java外Python、R、scala等语言的API。
  2、spark比MapReduce更快:spark基于内存的计算,将计算时的中间结果缓存在内存中,减少shuffer构成的磁盘io与任务启动时间。
  3、spark更加通用的计算支持:spark是支持批处理、交互式、迭代、批处理的集成系统;复杂的DAG执行引擎与高级API与工具。
  4、spark具有灵活的运行支持:可以独立运行于单节点,运行在yarn或其他共享集群,可以部署和运行在云上;且支持各种数据源的访问。
  缺点:
  1、spark大量的资源消耗:spark在运行任务时需要大量的内存资源消耗,在多个RDD需要缓存时,需要更多的内存资源,经常内存溢出。
  2、spark的学习难度更大:spark比MapReduce的编程模型更加复杂,需要花费更多的时间和精力去学习和熟悉API。
  3、spark难以控制每个细粒度任务资源,而MapReduce允许用户为单独的map task和reduce task设置不同的资源,这样将利于大作业平稳运行

PS:Spark脱胎于MapReduce,且具备可以代替MapReduce的能力,并比MapReduce速度更快,通用性更强,功能更完善等等。但是Spark不能完全的代替MapReduce,在具体实际业务计算中需要考虑具体使用的场景。

文章仅为个人观点,欢迎评论与指正;
部分观点引用下文,侵权联系QQ:1445319214;
https://blog.csdn.net/weixin_39910711/article/details/89404218
https://blog.csdn.net/wyz0516071128/article/details/81219342
https://zhuanlan.zhihu.com/p/339540459
https://zhuanlan.zhihu.com/p/107690575
https://blog.csdn.net/qq_45710900/article/details/102448887
https://blog.csdn.net/kxiaozhuk/article/details/82699175

Spark(一)Spark介绍相关推荐

  1. Spark 架构原理介绍 以及 job、task、stag 概念

    Spark运行模式 一:Spark 运行架构介绍 相关术语概念详解: Application:指的是用户编写的Spark应用程序,包含了一个Driver功能的代码和分布在集群中多节点上运行的Execu ...

  2. Spark之Spark角色介绍及运行模式

    Spark之Spark角色介绍及运行模式 集群角色 运行模式 1. 集群模式 从物理部署层面上来看,Spark主要分为两种类型的节点,Master节点和Worker节点: Master节点主要运行集群 ...

  3. Spark RDD算子介绍

    Spark学习笔记总结 01. Spark基础 1. 介绍 Spark可以用于批处理.交互式查询(Spark SQL).实时流处理(Spark Streaming).机器学习(Spark MLlib) ...

  4. spark on yarn 完全分布式_「大数据」(七十一)Spark之架构介绍

    [导读:数据是二十一世纪的石油,蕴含巨大价值,这是·情报通·大数据技术系列第[71]篇文章,欢迎阅读和收藏] 1 基本概念 Spark 架构采用了分布式计算中的 Master-Slave 模型. Ma ...

  5. spark算子详细介绍(v、k-v、vv类型)

    spark算子详细介绍 算子分区数.分区器如何确定? Value 类型 1. map() 改变结构就用map 2. mapPartitions() 以分区为单位执行Map 思考一个问题:map和map ...

  6. Spark基础【介绍、入门WordCount案例】

    文章目录 一 概述 0 Spark和Hadoop的关系 (1)从时间节点上来看 (2)从功能上来看 1 Hadoop 0.x 1.x的问题 2 Hadoop 2.x 3 Spark 4 Spark 和 ...

  7. Spark 基本知识介绍

    文章目录 1. Spark是什么 2. Spark与Hadoop区别 3. Spark四大特点 3.1 速度快 3.2 易于使用 3.3 通用性强 3.4 运行方式 4. Spark整体框架 5. S ...

  8. Spark之 spark简介、生态圈详解

    来源:http://www.cnblogs.com/shishanyuan/p/4700615.html 1.简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorith ...

  9. Spark之Spark概述

    Spark之Spark概述 什么是Spark Spark内置项目介绍 Spark特点 Spark的用户和用途 1. 什么是Spark Spark是一种快速.通用.可扩展的大数据分析引擎,2009年诞生 ...

  10. 【Spark】Spark基础教程知识点

    第 1 部分 Spark 基础 Spark 概述 本章介绍 Spark 的一些基本认识. Spark官方地址 一:什么是 Spark Spark 是一个快速(基于内存), 通用, 可扩展的集群计算引擎 ...

最新文章

  1. 清华学霸直博简历火了!CPU、操作系统、编译器全自主写,刘知远点赞
  2. 内网渗透测试:隐藏通讯隧道技术(上)
  3. camx模型_【推荐】基于CAMx的空气质量模拟及污染来源解析技术
  4. flashcache mysql_flashcache的实现与分析
  5. 读取配置文件工程src目录下配置文件封装,如sms_format.properties
  6. 关于汇编程序编译的一些详细步骤和要点
  7. OpenShift 4 - Knative教程 (4) 自动扩展和收缩
  8. C#检测驱动是否安装的问题
  9. linux中的输出格式化,Linux column使用(格式化输出)
  10. Java 之父 James Gosling 最新访谈:JIT 很好,但不适合所有语言
  11. 搭建属于自己的家庭私有云盘
  12. 即席查询(Ad Hoc)入门(Kylin)
  13. foxmail超大附件服务器文件怎么删,电脑中使用Foxmail发送超大附件的方法
  14. c语言薛定谔方程,量子力学的核心:薛定谔方程,究竟神奇在哪里?
  15. 架构师说低代码:走出半生,归来仍是“毒瘤”!
  16. 独立站谷歌付费广告关键词选词技巧实操
  17. 如何标题编号自动生成_标题编号的自动生成+自动修改的方法步骤
  18. 期刊、会议、SCI、EI、IEEE、CCF、ACM的区别与联系
  19. crop图片后,同时修改物体相应的坐标
  20. Flink窗口+触发器 ,实现定时、定量批量写入Hbase不同的表

热门文章

  1. 如何准备pmp考试?(含备考资料)
  2. Python爬虫:短视频平台无水印下载(上)
  3. 照这样下去,“千年虫”还得再来十遍
  4. 阿里云Mysql5.7 数据库恢复 qp.xb文件恢复数据
  5. DeepKE发布新版本:支持低资源、长篇章、多任务的图谱抽取开源框架,开源开放
  6. PM必备:简单、好用、免费的项目管理软件推荐
  7. mysql关系图查看
  8. Java时间戳是什么
  9. FDM打印机使用总结(一)
  10. 儿童学计算机编程好处,儿童编程课学了有好处吗?4大优势家长要知道