Spark详解

一.Spark 简介

  1. Spark 和Scala
    1.1 Spark 是基于内存计算的大数据并行计算框架,可用于构建大型的、低延迟的数据分析应用程序;

    1.2 Spark 的特点
    在这里插入图片描述

    1.3 Scala是一门现代的多范式编程语言,可扩展式语言;

    1.4 Scala 特性
    在这里插入图片描述

    1.5 Scala 是Spark的主要编程语言,但Spark 还支持Java 、Python ,R语言编程。提供了REPL(交互式解析器),提高程序开发效率。

  2. Spark 和Hadoop 的比较
    2.1 Hadoop 是基于磁盘的大数据计算框架;Spark 性能比Hadoop 优越;

    2.2 Spark 的优点
    Spark的计算模式也属于MapReduce ,但不局限与Map 和Reduce 操作,还提供了多种数据集操作类型,编程模型比Hadoop MapReduce 更灵活。
    Spark提供了内存计算,可将中间结果发放到内存中,对于迭代计算效率更高;
    Spark 基于DAG 的任务调度执行机制,要优于 Hadoop MapReduce 的迭代执行机制;

二.Spark 生态系统

  1. 大数据处理主要的三个类型:
    复杂的批量数据处理;基于历史数据的交互式查询;基于实时数据流的数据处理;

  2. 同时部署三种不同的软件,以满足三种不同的业务需求。
    MapReduce ; Cloudera Impala; Storm;

  3. 框架
    在这里插入图片描述
    3.1 Spark 可以部署在资源管理器YARN 之上,提供一站式的大数据解决方案;

    3.2 Spark 所提供的生态系统足以满足上述三种场景即同时支持批处理、交互式查询和流数据处理.

    3.3 Spark 生态系统已经成为伯克利数据分析软件栈BDAS的重要组成部分;

    3.4 BDAS架构
    在这里插入图片描述
    Spark Core 实现了 Spark 基于内存的计算
    Spark Streaming 来实现流计算
    Saprk SQL和BlinkDB完成交互式的SQL 查询;
    GraphX:完成图计算;
    ML Base和MLlib:完成机器学习和数据挖掘;
    在这里插入图片描述
    3.5 Spark 组件应用场景
    在这里插入图片描述

三. Spar 运行架构

  1. 基本概念
    在这里插入图片描述

  2. 架构设计
    在这里插入图片描述
    2.1 与Hadoop MapReduce 计算框架相比,Spark 采用Excutor 的两个有点;
    –>利用多线程来执行具体的任务,减少任务的启动开销;
    –>Excutor 中有一个BlockManager 存储模块,会将内存和磁盘共同作为 存储设备,有效减少IO 开销.
    在这里插入图片描述
    在这里插入图片描述

  3. Spark 运行基本流程
    在这里插入图片描述
    3.1 为应用程序构建其基本的运行环境,即由Driver 创建一个SparkContex进行资源的申请,任务的分配和监控;

    3.2 资源管理器为Excutor 分配资源,并启动Excutor 进程;

    3.3 SparkContext根据RDD 的依赖关系构建DAG图,DAG 图提交给DAG Schufule解析成Starge,然后把一个个TaseSet提交给底层调度器Task Schudule 处理.Excutor 向SparkContext 申请Task ,Task Schudule 将Task 发放给Excutor 运行并提供应用程序代码;

    3.4 Task 在Excutor 上运行把执行结果反馈给Task Schudule ,然后反馈给DAG Schudule ,运算完毕后写入数据并释放所有资源.

    3.5 运行架构特点
    在这里插入图片描述

  4. RDD 组件
    许多迭代式算法和交互式数据挖掘,不同计算阶段之间会重用中间结果.MapReduce 都是把结果写入磁盘,带来大量数据复制,磁盘IO和序列化开销大;

    4.1 RDD概念
    RDD就是为满足这种需求而设计的,提供了一个抽象的数据结构;

    不必担心底层数据的分布式特性,只需将具体的应用逻辑表达为一系列转换处理.

    不同RDD 之间的转换操作形成依赖关系,可以实现管道化,避免中间数据存储;

    一个RDD(弹性分布式数据集)就是一个分布式对象集合,本质上是一个只读的分区记录集合,每个RDD可以分为多个分区,每个分区就是一个数据集片段,并且一个RDD的不同分区可以被保存到集群中不同的节点上,从而可以在集群中的不同节点上进行并行计算.

    4.2 RDD提供了一种高度受限的共享内存模型,即RDD是只读的记录分区集合,不能直接修改,只能基于稳定的物理存储中的数据集创建RDD,或者通过其他RDD 上执行确定的转换操作(如map,jion,group by)而创建得到新的RDD.
    在这里插入图片描述
    4.3 RDD的执行过程
    在这里插入图片描述
    上述图示中的处理过程,即 DAG 拓扑排序结果,反应了不同RDD的相互依赖关系
    优点:惰性调用,管道化.避免同步等待,不需要保存中间结果,每次操作变得简单;

    4.4 RDD特性
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述
    4.5 RDD 的依赖关系和运行过程

    RDD 之间的依赖关系(宽依赖,窄依赖)是划分Stage的依据.

    窄依赖:表现为一个父RDD的分区对应一个自RDD 的分区或多个父RDD 的分区对应与一个子RDD的分区;
    在这里插入图片描述

    宽依赖:表现为存在一个父RDD的分区对应一个子RDD的多个分区;
    在这里插入图片描述

    4.6 Stage 的划分

    Spark通过分析各个RDD 的依赖关系生成DAG 再通过分析各个RDD中分区之间的依赖关系来决定如何划分Stage;
    在这里插入图片描述
    如下划分情况:
    在这里插入图片描述

    4.7 Stage 类型

    –>ShuffleMapStage
    在这里插入图片描述

    –>ResultStage
    在这里插入图片描述

    4.8 RDD 运行过程
    在这里插入图片描述

  5. Spark SQL组件

    5.1 Spark SQL 架构
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    5.2 Spark SQL 与Hive关系
    在这里插入图片描述
    5.3 Spark 的部署和应用方式
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    5.4 Spark 编程

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/484149.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

应用层协议与网络应用

网络应用的体系结构 1、客户机/服务器(Client-Server, C/S) 服务器: 7*24小时提供服务永久访问地址/域名利用大量服务器实现可拓展性 客户机: 与服务器通信,使用服务器提供的服务间歇性接入网络可能使…

oc之脚本

进入Build Phases页面,点击加号选择“New Run Script Phases”创建Run Script 在这里添加Run Script, 1.每次编译运行版本号(bundleVersion)自增1 buildNumber$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" &q…

案例分享|突破卡脖子技术,研制协作机器人核心零部件的方向与思考

来源: 机器人大讲堂协作机器人,作为一种新型的智能机器人,扫除了人机协作的障碍,让机器人彻底摆脱护栏或围笼的束缚,让机器人与人可以在生产、制造与服务上协同作战,充分发挥机器人的效率及人类的智能&…

Spark安装及其sbt和maven 打包工具安装

一.安装准备 需要先安装hadoop,Java JDK,采用 Hadoop(伪分布式)+Spark(Local模式) 的组合.spark和sbt,maven的版本:spark-2.4.5-bin-without-hadoop.tgz 和sbt-1.3.8.tgz,maven-3.6.3; https://pan.baidu.…

SpringBoot集成Spring Security(一)登录注销

同个人网站 https://www.serendipper-x.cn/,欢迎访问 ! SpringBoot集成Spring Security(二)注册 、密码加密、修改密码 写在前面 Spring Security是一种基于 Spring AOP 和 Servlet 过滤器的安全框架。它提供全面的安全性解决方案…

什么是1+N模式的新一代城市大脑建设方案

来源:城市大脑全球标准研究组前言:2021年上半年,我们在城市大脑的最新探索和研究中,提出了1N模式的新一代城市大脑建设方案。其中“1”是世界统一标准的城市神经元网络,“N”是N条城市云反射弧,这是基于互联…

图计算-Pregel-Hama

一.图计算简介 1.1 图计算是专门针对图结构数据的处理. 许多大数据都是以大规模图或网络的形式呈现;许多非图结构的大数据,也常常被转换为图模型后进行分析;图结构很好地表达了数据之间的关联性;关联性计算是大数据计…

英伟达推出全球首个元宇宙平台,豪砸数亿是为什么?

来源:AI科技大本营(ID:rgznai100)编译:禾木木翻译:AI科技大本营NVIDIA 在 SIGGRAPH 推出首个全球元宇宙平台,并赢得了最佳展示奖。目前处于公测阶段,它对 NVIDIA RTX 和 GeForce RTX GPU 用户免费开放。用户在安装完 N…

长链剖分题表

长链剖分,类似于重链剖分(dsu on tree)的一种替代算法。最广泛的用法是优化与深度有关的树上DP,以及处理一些与点分治类似的问题。有一部分长链剖分题也可以用dsu on tree做,单复杂度往往会多一个log。 每个点找到高度最大的儿子作为自己的重…

流计算

一.概述 实时获取来自不同数据源的海量数据经过实时分析处理,或的有价值的信息. 1.数据的处理流程 静态数据:数据不会发生变化,如数据仓库中的数据;流数据:数据以大量,快速.时变的流形式持续到达&#xf…

SpringBoot集成Spring Security(二)注册 、密码加密、修改密码

SpringBoot集成Spring Security(一)登录注销 写在前面 上一节创建了项目并且利用Spring Security完成了登录注销功能,这里继续说一下注册、密码加密和找回密码,代码注释较清晰。 一、web层 控制 StudentController.java package …

自动驾驶需要做哪些测试?

来源:广电计量,文:李梓熙、王闻彦参考资料来源:《有问必答 | 自动驾驶汽车之道路“测试”与“考试”》by公安部交通管理科研所微发布自动驾驶已然成为汽车行业热词。在大家殷切的期盼下,近几年上市的车型,多…

大数据的应用-UserCF和ItemCF推荐算法

一.推荐系统 1.1 推荐系统是大数据在互联网领域的典型应用,它可以通过分析用户的历史记录来了解用户的喜好,从而主动的为用户推荐其感兴趣的信息,满足用户的个性化推荐需求. 1.2 推荐系统是自动联系用户和物品的一种工具&#x…

计算机网络之Web应用

1、web与HTTP world Wide Web: 网页 网页互相链接 网页包含多个对象: 对象: HTML文件、JPEG图片、视频文件、动态脚本等 基本HTML文件: 包含对其他对象引用的链接 对象的寻址: URL(Uniform Resource Locato…

HBase错误解决(启动Hbase出现错误的替换,启动hbase shell出现ERROR KeeperErrorCode=NoNode for /hbase/master)

1.问题描述 我查阅资料发现,网上很多人和我出现相同的错误,却没有一个可以解决的教程,于是我在解决了我的一个错误后就立即写了这篇文章,需要能帮到一些人,文章不一定对每个人都有效&#xff0c…

如何使用jmeter进行并发登录测试

第一种方案直接从数据库中获取账号和密码 1、设置线程数为20 ,我们的并发用户量就是20个用户同时登录 2、添加定时器 3、设置集合点,当用户数量达到20个的时候再同时请求进行登录操作 4、添加配置元件:JDBC Connection Configuration 5、添加…

云计算与分布式系统课程学习笔记(一)——云计算简介

大数据对于系统架构的需求 显式的需求 海量计算和存储快速计算 隐式的需求 数据的快速传输灵活性低成本 如何实现这些需求? 并行化(并行化的理念存在于计算机方方面面) 并行请求(分配给多个计算机)并行线程&…

DeepMind用神经网络求解MIP后,攻破运筹学只是时间问题?你想多了

来源:杉数科技作者:皇甫琦、葛冬冬、杉数科技COPT开发组Google的DeepMind团队最近官宣了一篇神经网络(Neural Networks)求解MIP论文。一石激起千层浪,在国内外的运筹优化社群引起了讨论。部分围观吃瓜群众纷纷表示:"This is …

计算机视觉-SIFT

一.SIFT(Scale Invariant Feature Transform) 算法 1.图像尺度空间 要让计算机能够对物体在不同尺度下有一个统一的认知,就要需要考虑图像在不同尺度(远近,大小,颜色区别等)下存在的特点.尺度空间的获取通常使用高斯模糊来实现&…

世界上最好的光刻机为什么来自荷兰?【物联网智商精选】

来源: 大数据实验室“是说芯语”已陪伴您439天现在微电子集成电路技术对世界的各种科技电子产品越来越应用广泛了,一个国家的发展越来越离不开高端芯片了,一个国家越是发展得越快对高端芯片需求量越大,比如我国的芯片需求占世界的50&#xff…