Saprk基本架构原理简介

Spark工作原理及基础概念(超详细!) 目录一、Spark概述(1)概述(2)Spark整体架构(3)Spark特性(4)Spark与MR(5)Spark Streaming与Storm(6)Spark SQL与Hive二、Spark基本原理(1)Spark Core(2)Spark SQL(3)Spark Streaming(4)Spark基本工作原理(1)分布式数据集(2)弹性(3)迭代式处理(4)容错性三、Spark 运行模式及集群角色(1)Spark运行模式(2)Spark集群角色(1)Cluster Manager(2)worker(3 阅读详情

一,简介

        Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。Spark是UC Berkeley AMP lab (加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行框架,Spark,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是——Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。
        Spark 是一种与 Hadoop 相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些有用的不同之处使 Spark 在某些工作负载方面表现得更加优越,换句话说,Spark 启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。
        Spark 是在 Scala 语言中实现的,它将 Scala 用作其应用程序框架。与 Hadoop 不同,Spark 和 Scala 能够紧密集成,其中的 Scala 可以像操作本地集合对象一样轻松地操作分布式数据集。

        尽管创建 Spark 是为了支持分布式数据集上的迭代作业,但是实际上它是对 Hadoop 的补充,可以在 Hadoop 文件系统中并行运行。通过名为 Mesos 的第三方集群框架可以支持此行为。Spark 由加州大学伯克利分校 AMP 实验室 (Algorithms, Machines, and People Lab) 开发,可用来构建大型的、低延迟的数据分析应用程序。

二,spark生态系统

        Shark ( Hive on Spark): Shark基本上就是在Spark的框架基础上提供和Hive一样的H iveQL命令接口,为了最大程度的保持和Hive的兼容性,Shark使用了Hive的API来实现query Parsing和 Logic Plan generation,最后的PhysicalPlan execution阶段用Spark代替Hadoop MapReduce。通过配置Shark参数,Shark可以自动在内存中缓存特定的RDD,实现数据重用,进而加快特定数据集的检索。同时,Shark通过UDF用户自定义函数实现特定的数据分析学习算法,使得SQL数据查询和运算分析能结合在一起,最大化RDD的重复使用。

        Spark streaming: 构建在Spark上处理Stream数据的框架,基本的原理是将Stream数据分成小的时间片断(几秒),以类似batch批量处理的方式来处理这小部分数据。Spark Streaming构建在Spark上,一方面是因为Spark的低延迟执行引擎(100ms+)可以用于实时计算,另一方面相比基于Record的其它处理框架(如Storm),RDD数据集更容易做高效的容错处理。此外小批量处理的方式使得它可以同时兼容批量和实时数据处理的逻辑和算法。方便了一些需要历史数据和实时数据联合分析的特定应用场合。

        Spark Core:包含Spark的基本功能;尤其是定义RDD的API、操作以及这两者上的动作。其他Spark的库都是构建在RDD和Spark Core之上的

        Bagel: Pregel on Spark,可以用Spark进行图计算,这是个非常有用的小项目。Bagel自带了一个例子,实现了Google的PageRank算法。
        MLlib:机器学习 MLlib 是Spark 中提供机器学习函数的库。它是专为在集群上并行运行的情况而设计的。MLlib 中包含许多机器学习算法,可以在Spark 支持的所有编程语言中使用,由于Spark基于内存计算模型的优势,非常适合机器学习中出现的多次迭代,避免了操作磁盘和网络的性能损耗。Spark 官网展示的 MLlib 与Hadoop性能对比图就非常显著。所以Spark比Hadoop的MapReduce框架更易于支持机器学习。

       GraphX:图形操作 GraphX 是 Spark 中用于图形和图形并行计算的新组件。在高层次上, GraphX 通过引入一个新的图形抽象来扩展 Spark RDD :一种具有附加到每个顶点和边缘的属性的定向多重图形。为了支持图计算,GraphX 公开了一组基本运算符(例如: subgraph ,joinVertices 和 aggregateMessages )以及 Pregel API 的优化变体。此外,GraphX 还包括越来越多的图形算法 和 构建器,以简化图形分析任务。


三,spark核心概念

        RDD:Spark的核心概念是RDD (resilient distributed dataset),指的是一个只读的,可分区的分布式数据集,这个数据集的全部或部分可以缓存在内存中,在多次计算间重用。RDD--分布式弹性数据集可以把数据集保持在内存中,而不是在磁盘中,这样每次计算只需要从内存中读取数据,而不是通过IO读取磁盘,跨过了系统IO瓶颈,大大节省了数据传输时间.
        Scala语言的简洁的特点,所以,Spark非常合适做机器学习的工作中频繁的迭代计算.RDD可以从本地数据集中通过输入转换产生,也可以使用已保存的RDD,也可以从别的RDD转换而来,需要使用时,可以把RDD缓存在内存中(如果内存不够大,会自动保存到本地).

        RDD通过血统来实现容错机制,每一次转换,系统会保存转换日志,如果RDD出现故障,系统会根据转换日志重建RDD。利用内存加快数据加载在众多的其它的In-Memory类数据库或Cache类系统中也有实现,Spark的主要区别在于它处理分布式运算环境下的数据容错性(节点实效/数据丢失)问题时采用的方案。为了保证RDD中数据的鲁棒性,RDD数据集通过所谓的血统关系(Lineage)记住了它是如何从其它RDD中演变过来的。

四,spark架构组成与任务调度

架构组成图


    Cluster     Manager:在standalone模式中即为Master主节点,控制整个集群,监控worker。在YARN模式中为资源管理器

    Worker节点:从节点,负责控制计算节点,启动Executor或者Driver。
    Driver: 运行Application 的main()函数

    Executor:执行器,是为某个Application运行在worker node上的一个进程


资源管理与作业调度


      * 构建Spark Application的运行环境,启动SparkContext
  * SparkContext向资源管理器(可以是Standalone,Mesos,Yarn)申请运行Executor资源,并启动StandaloneExecutorbackend,
      * Executor向SparkContext申请Task
      *  SparkContext将应用程序分发给Executor
      *  SparkContext构建成DAG图,将DAG图分解成Stage、将Taskset发送给Task Scheduler,最后由Task Scheduler将Task发送给Executor运行   
      * Task在Executor上运行,运行完释放所有资源


五,spark与hadoop的对比

    1,Spark的中间数据放到内存中,对于迭代运算效率更高:

       spark旨在延长MapReduce的迭代算法,和互动低延迟数据挖掘的。 MapReduce和Spark的一个主要区别,MapReduce是非周期性。也就是说,数据流从一个稳定的来源,加工,流出到一个稳定的文件系统。“Spark允许相同的数据,这将形成一个周期,如果工作是可视化的迭代计算。

    2,Spark比Hadoop更通用:

        Spark提供的数据集操作类型有很多种,不像Hadoop只提供了Map和Reduce两种操作。比如map, filter, flatMap, sample, groupByKey, reduceByKey, union, join, cogroup, mapValues, sort,partionBy等多种操作类型,Spark把这些操作称为Transformations。同时还提供Count, collect, reduce, lookup, save等多种actions操作。
这些多种多样的数据集操作类型,给给开发上层应用的用户提供了方便。各个处理节点之间的通信模型不再像Hadoop那样就是唯一的Data Shuffle一种模式。用户可以命名,物化,控制中间结果的存储、分区等。可以说编程模型比Hadoop更灵活。Spark不适用那种异步细粒度更新状态的应用,例如web服务的存储或者是增量的web爬虫和索引。就是对于那种增量修改的应用模型,当然不适合把大量数据拿到内存中了。增量改动完了,也就不用了,不需要迭代了。

    3,容错性:

        在分布式数据集计算时通过checkpoint来实现容错,而checkpoint有两种方式,一个是checkpoint data,一个是logging the updates。用户可以控制采用哪种方式来实现容错。做checkpoint的两种方式,一个是checkpoint data,一个是logging the updates。貌似Spark采用了后者。但是文中后来又提到,虽然后者看似节省存储空间。但是由于数据处理模型是类似DAG的操作过程,由于图中的某个节点出错,由于lineage chains的依赖复杂性,可能会引起全部计算节点的重新计算,这样成本也不低。他们后来说,是存数据,还是存更新日志,做checkpoint还是由用户说了算吧。相当于什么都没说,又把这个皮球踢给了用户。所以我看就是由用户根据业务类型,衡量是存储数据IO和磁盘空间的代价和重新计算的代价,选择代价较小的一种策略。

    4,可用性:

    Spark通过提供丰富的Scala, Java,Python API及交互式Shell来提高可用性。

六,spark与hadoop的结合

    Spark可以直接对HDFS进行数据的读写,同样支持Spark on YARN。Spark可以与MapReduce运行于同集群中,共享存储资源与计算,数据仓库Shark实现上借用Hive,几乎与Hive完全兼容。

    从Hadoop 0.23把MapReduce做成了库,看出Hadoop的目标是要支持包括MapReduce在内的更多的并行计算模型,比如MPI,Spark等。毕竟现在Hadoop的单节点CPU利用率并不高,那么假如这种迭代密集型运算是和现有平台的互补。同时,这对资源调度系统就提出了更高的要求。有关资源调度方面,UC Berkeley貌似也在做一个Mesos的东西,还用了Linux container,统一调度Hadoop和其他应用模型。



Apache Spark的架构和工作原理 Spark 通过内存计算、DAG 调度、RDD 抽象和弹性资源管理,实现了高效、通用的大数据处理。其架构设计使它能够轻松处理批处理、流处理、机器学习等多种场景,成为大数据领域的核心技术之一。,存储和执行内存可动态共享,提高内存利用率。Spark 1.6 后引入。 阅读详情

相关推荐

双料架构师必备,Nginx+微服务+Redis+Mysql+HD+Saprk+Flink+k8s

IT圈子是一个需要不断学习不断进取的圈子,不学习不进步肯定是要被淘汰的,而且现在的IT圈子更加趋向于“多面手”全栈架构师这么一个大形势,小编这里为大家整理了架构+大数据双料架构师的进阶必备的PDF,希望你可以一直学习,一直进步!(java岗位) 实战NginX,取代Apache的高性 能Web服务器 第1章Nginx简介 第2章Nginx服务器的安装与配置 第3章Nginx的基本配置与优化 第4章Nginx与PHP(FastCGI)的安装、配置与优化 第5章Nginx与JSP. ASP....

ITjianshuzhai的博客 768

Saprk学习笔记之初识Spark

Spark简介 1.1 Spark的初步认识 Spark是一个用来实现快速而通用的集群计算的平台。 首先,我们学习Spark首先要知道Spark的应用场景有哪些。Spark适用于各种各样原先需要多种不同的分布式平台场景,包括批处理,迭代算法,交互式查询,流处理。 1.2 Spark软件栈 1.2.1 Spark Core Spark Core实现了Spark基本功能,包含任务调度、内存管理、错误...

风景旧曾谙 371

我的天!架构师面试怎么问这么多大数据的知识:Nginx+微服务+Redis+Mysql+HD+Saprk+Flink+k8s

IT圈子是一个需要不断学习不断进取的圈子,不学习不进步肯定是要被淘汰的,而且现在的IT圈子更加趋向于“多面手”全栈架构师这么一个大形势,小编这里为大家整理了架构+大数据双料架构师的进阶必备的PDF,希望你可以一直学习,一直进步!(java岗位) 实战NginX,取代Apache的高性 能Web服务器 第1章Nginx简介 第2章Nginx服务器的安装与配置 第3章Nginx的基本配置与优化 第4章Nginx与PHP(FastCGI)的安装、配置与优化 第5章Nginx与JSP. ASP.NET

互联网架构小马的博客 501

大数据技术之Spark

StandAlone的原理?Master和Worker角色以独立进程的形式存在,并组成Spark运行时环境(集群)Standalone如何提交Spark应用?4040\8080\18080分别是什么?4040是单个程序运行的时候绑定的端口可供查看本任务运行情况Job\State\Task的关系?一个Spark程序会被分成多个子任务(Job)运行, 每一个Job会分成多个State(阶段)来 运行, 每一个State内会分出来多个Task(线程)来执行具体任务。

2503_91105521的博客 5455

3.saprk集群hdfstest

基于spark的测试 对50g数据进行Hdfstest,task,executor划分 19/12/27 17:27:37 INFO spark.SparkContext: Created broadcast 10 from broadcast at DAGScheduler.scala:1164 19/12/27 17:27:37 INFO scheduler.DAGSched...

kk25114的博客 453

以图搜图引擎 With Saprk

最近搞了一个SX搜索图片相似度的系统,非常的简单。主要原理是这样的 1.用Phash算法计算出每二个图片的Phash值,存在CSV中 2.用Spark读入CSV,并且计算出要搜索的图片的Hash值 3.将这个值广播出去,然后求一个hamming距离的最大值 代码如下,在我的gayhub中也有limn2o4’s github import cv2 import numpy as np import ...

limn204的专栏 5066

spark大数据架构初学入门基础详解

Spark是什么   a) 是一种通用的大数据计算框架 b) Spark Core 离线计算         Spark SQL 交互式查询  Spark Streaming 实时流式计算  Spark MLlib 机器学习  Spark GraphX 图计算 c) 特点: i. 一站式:一个技术堆栈解决大数据领域的计算问题 ii. 基于内存 d) Spark2009年诞生于

星月情缘的博客 5488

智能音箱开发者必看:CEVA-BX vs Cadence HiFi音频DSP实战选型指南(附功耗对比表)

本文深入对比了CEVA-BX和Cadence HiFi两大音频DSP架构在智能音箱开发中的性能差异,涵盖语音唤醒、多麦克风阵列处理等核心场景。通过实测数据和功耗对比表,为开发者提供选型参考,帮助优化产品性能和能效表现。

weixin_29309213的博客 227

Spark基本架构及原理

Spark基本架构及原理 Spark(一): 基本架构及原理 Hadoop 和 Spark 的关系 Spark 运算比 Hadoop 的 MapReduce 框架快的原因是:   因为 Hadoop 在一次 MapReduce 运算之后,会将数据的运算结果从内存写入到磁盘中,第二次 Mapredue 运算时在从磁盘中读取数据,所以其瓶颈在2次运算间的多余 IO 消耗.   Spar...

weixin_30787531的博客 289

宇树智能人形机器人模块化腿部动力系统技术拆解

o电机防摔防护板(3.1.5.1)→端盖总成(3.1.5.2)→电机外壳(3.1.5.4)的冲击力传递路径;o散热风扇(3.1.3.1)推动冷风→大腿基座腔体→散热片组(3.1.5.7)→中空大腿杆排出;o防御专利:覆盖“关节热管理风道接口标准”、“抗冲击结构身份编码”;o大腿杆腔体(3.1.3.4)内置反平行四边形机构,避免连杆外露。:力传感器(3.1.8.4.2)仅部署于足端,缺失关节力矩反馈。:更换行星减速器(3.1.5.5)需拆解整个电机模块;o热量传导路径:电机定子→外壳→散热片组。

weixin_50955533的博客 1233

告别Qweb!用ReportBro在Odoo 13-19版本中5步搞定动态报表

本文介绍了如何在Odoo 13-19版本中使用ReportBro替代Qweb快速实现动态报表设计。通过5步集成指南,包括环境准备、前端集成、后端服务搭建等,展示了ReportBro在可视化设计、即时预览和多格式输出(PDF/XLSX)方面的优势,显著提升开发效率和报表灵活性。

mac99的博客 801

1.Saprk原理

此外,Spark还支持SQL查询,流式计算,图计算,机器学习等。Spark 引进了弹性分布式数据集 RDD (Resilient DistributedDataset) 的抽象,它是分布在一组节点中的只读对象集合,这些集合是弹性的,如果数据集一部分丢失,则可以根据“血统”(即允许基于数据衍生过程)对它们进行重建。MapReduce 中计算结果需要落地,保存到磁盘上,这样势必会影响整体速度,而 Spark 支持 DAG 图的分布式并行计算的编程框架,减少了迭代过程中数据的落地,提高了处理效率。

zl1582330223的专栏 208

用Matlab搞定Delta并联机器人运动学:从建模到正逆解完整流程(附代码)

本文详细介绍了如何使用Matlab实现Delta并联机器人的运动学分析,包括几何建模、正逆解求解及可视化验证。通过符号计算和数值迭代法,解决非线性方程组问题,并提供完整代码示例,帮助读者快速掌握Delta机器人的运动学计算与应用。

weixin_30955617的博客 177

Saprk总结

Saprk总结-大数据方向 前言 为什么要学习Spark? 1. Spark比MapReduce快 spark可以将数据缓存在内存中进行计算 (cache) spark是粗粒度资源调度,MR是细粒度资源调度 DAG有向无环图 (spark两个shuffle中间结果不需要落地,MR需要数据落地) 2. Spark简单 1. Spark core spark比MR快的三个原因 RDD五大特性: RDD由一组分区组成,默认一个block对应一个分区 算子实际上是作用在每一个分区上的,每一个分区都会由一个

糊里糊涂走进大数据的小菜鸡 714

uniapp - [全端兼容] 实现精美Editor富文本编辑器功能,uniApp全平台兼容的富文本插件组件用户可上传图片及对接服务器存储文件等,手机移动端H5网页富文本/小程序富文本/App富文本!

uni-app,h5移动端网页,微信小程序,支付宝小程序,Android安卓,苹果ios,app,nvue,uniapp富文本编辑器,uniapp中如何实现各平台都兼容的富文本编辑器,Editor富文本插件,uniApp微信小程序富文本,UNI-APP安卓苹果ios系统App端富文本组件,editor富文本编辑器如何实现上传图片,图片上传后不显示怎么办,如何配置图像上传功能,富文本图片上传怎么传到服务器中,获取图片路径,editor插入图片,富文本编辑器上传图片,报错怎么办,跨域CORS处理,配置不行无效

🏆 前端领域优质创作者 1万+

【WLAN】【调试】再谈如何使用Wireshark解密WiFi数据包——使用TK信息

- 本文介绍了一种wireshark使用TK信息解密空口报文的方式,该方式对是否有关联过程的报文没有要求。

一介草民,只为生活。 1190

saprk笔记

spark 是一种基于内存的快速,通用,可扩展的大数据分析引擎 一般分为sparkcore,sparksql,sparkstreaming,sparkmlib,sparkgraphx sparkcore模块是基础 调度器可以是:独立调度器,yarn,messos 与mr相比:快基于内存,高效的DAG执行引擎 local模式 local[线程数量],local[*] 按照cpu最多的cores来设置线程数 1client 向master注册 2 master向worker上申请资源后启动woker的execu

qq_27862975的博客 230

深入解析逆时偏移(RTM)算法及其在C++中的实现

逆时偏移(Reverse Time Migration, RTM)是一种高级地震成像技术,广泛应用于地震勘探中。RTM通过逆时传播波场来构建地震子波,能够提供更高分辨率和更精确的地下构造图像。本文将详细介绍RTM的基本原理,并通过C++代码示例,深入解析如何实现和优化RTM算法。希望这篇文章能够为地球物理学家和C++开发者提供有价值的参考。

qq_38334677的博客 1529

saprk streaming

saprk streaming 1、实时计算 spark是微批处理,每隔一段时间处理一次 flink 实时处理,每一条数据都会处理 2、将接收过来的数据,封装成一个rdd,执行rdd的计算 3、有状态算子 updatastatebykey 需要开启checkpoint,需要保存之前计算的结果 reducebykeyandwindow 统计最近一段时间的数据,每隔一段时间统计一次 优化版本,需要一个减的函数 4、sql on stream 通过sparksession创建DF,在流上面写sql 5、s

weixin_45118947的博客 283

整理 钢琴 约翰汤普森-简易钢琴(小汤)

文件名:(小汤1)约翰-汤普森钢琴1 超清PDF (原版引进)文件名:(小汤2)约翰-汤普森钢琴2 超清PDF (原版引进)文件名:(小汤3)约翰-汤普森钢琴3 超清PDF (原版引进)文件名:(小汤4)约翰-汤普森钢琴4 超清PDF (原版引进)文件名:(小汤5)约翰-汤普森钢琴5 超清PDF (原版引进)文件大小:20.1 MB。文件大小:23.7 MB。文件大小:45.7 MB。文件大小:51.7 MB。文件大小:72.0 MB。

TS的博客 5万+

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

saprk原理与简单上手

https://endymecy.gitbooks.io/spark-programming-guide-zh-cn/content/programming-guide/rdds/external-datasets.html http://dataunion.org/20001.html

myProgrames的博客 793

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

深度理解篇之Spark架构原理-个人拙见

继上篇https://blog.youkuaiyun.com/Mirror_w/article/details/95783445 那么相应的实现是怎么实现的呢? 先说它的框架,在框架当中,mapreduce也好,Spark也好,资源层和计算才能是隔开的,是解耦的,在MapReduce当中,Yarn是资源层,然后自己的计算支持着计算层,比如说有客户端、有appMaster、有maptask reduce t...

Mirror_w的博客 509

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

saprk 核心组件总结

DAGScheduler的stage划分算法 执行action时,会通过sparkContext的runJob()触发job(DAGScheduler),从触发action的那个rdd开始,首先为最后一个rdd创建一个stage,然后向前推,如果发现某个RDD是款依赖,那么将宽依赖的那个RDD穿件一个新的stage,那个rdd就是新的stage的最后一个rdd。以此类推。 DAGScheduler

u012110804的专栏 407

Saprk的另一核心=>《SparkSQL》

教会你spark-sql

hxhxhzjz的博客 443

SparkStreming是什么以及它的基本工作原理

SparkStreaming的原理,其中它一个batch的概念,允许接收到实时的数据之后,会将数据拆分成一个个的batch,比如每一秒流入额实时数据形成一个batch,然后将bantcht提交到spark RDD分布式数据集进行数据计算,数据的结果流也是一个个batch组成的,bath是spark rdd的最小计算单位了。SparkStreaming是Spark core API的一种拓展,它可以进行大规模的实时数据处理;另外它可以从多个数据源获取的数据并且处理换后可以写入的文件系统或者过个数据库库中;

Freddycsf的博客 179
上一篇: oracle触发器简介与使用方法
下一篇: Cloudera-Manager修改集群主机的IP
AA赵师傅
博客等级 码龄9年 89粉丝 124原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值