大数据Spark框架

article/2025/9/15 10:04:49

Spark 是一种基于内存快速、通用、可扩展的大数据分析计算引擎。

Spark 优势:

  • Spark核心单元RDD适合并行计算和重复使用;
  • RDD模型丰富,使用灵活;
  • 多个任务之间基于内存相互通信(除了shuffle会把数据写入磁盘);
  • Spark 启动响应Task速度快;
  • Spark有高效的缓存机制。

SparkCore 架构及职责

Spark集群遵循标准的master-slave结构,主要架构包含Driver (master)、Executor(slave);
由于Spark具有资源调度分配能力,所有包含master和worker。
在这里插入图片描述
Driver:

  • 驱动任务执行,协调代码的实际执行工作;
  • 将上传的程序源码转化成作业(job);
  • 在Executor之间进行任务调度;
  • 监控跟踪Executor具体执行情况;
  • 为UI界面提供api反馈job执行情况。

Executor:
Executor 是一个jvm进程,由spark启动而启动,伴随着spark整个生命周期;当某个Executor放生故障时,Driver会把该节点的任务调度到其他节点执行,不影响整个集群运行。

  • 负责执行Driver调度的具体任务,并吧结果返回;
  • 为RDD提供数据存储。

Master 和Worker:
Master协调资源管理,当集群资源不足时,Driver会向Master申请资源;
Worker为资源节点,当Master发送命令为集群开辟资源时,Worker调度自身资源提供给Driver。

SparkSQL组件

SparkSQL组件发展史:

在这里插入图片描述
hive是早起运行于Hadoop上的SQL-on-Hadoop工具,由于Hived是依赖于MapReduce,运算过程中产生大量的IO操作,运行效率低。
为了提高运行效率,产生大量SQL-on-Hadoop工具,其中知名度高的有Drill、Impala、Shark等,直到现在还有很多公司正在使用这些工具。其中Shark是伯克利实验室Spark生态基于Hive开发的组件,它主要是在Hive的基础上优化内存管理、物理计划、执行三个模块进行改进,使其运行在Spark引擎上,性能在Hive-on-MapReduce上提高了近百倍。
由于Shark对Hive的依赖程度高,Shark依然采用Hive的语法解析器,查询优化器,使得Spark生态组件开发很受限制。所以提出了SparkSQL项目,在数据兼容性、性能优化、组件扩展方面空前明朗。
2014年6月1日,Shark项目和SparkSQL项目的主持人Reynold Xin宣布:停止对Shark的开发,团队将所有资源放SparkSQL项目。数据兼容方面,在Shark的基础上,增加了RDD、Parquet文件、JSON文件中获取数据;性能方面,引进Cost Model对查询进行动态评估、获取最佳物理计划等。
形成Spark生态组件之一。
SparkSQL特点:

  • 无缝整合SQL在Spark上编程;
  • 统一了不同数据源访问方式;
  • 兼容Hive,在已经存在的仓库中可直接运行HiveQL查询;
  • BI工具通过标准的JDBC或ODBC查询大数据。

DataFrame、DataSet、RDD直接关系:

DataFrame 是一种以RDD为基础的分布式数据集,相当于关系型数据库中的数据表,带有元数据,每一列都带有列名和类型。这是RDD所没有的。同时DataFrame还支持struct、array、map等数据类型。所以DataFrame 比RDD更易用,提供的API更加灵活,Spark更加清楚数据结构以便于优化。DataFrame 与RDD一样,也是懒执行。

DataSet 分布式数据集是Spark1.6增加的一个新抽象,是DataFrame的一个扩展。增强了RDD的优势,使用lambda函数的能力。DataSet可以功能转换使用map、flatMap、filter算子。

DataSet是DataFrame API的一个扩展,是SparkSQL数据抽象;
具有友好的API风格,具有类型安全检查又有DataFrame的查询优化特性;
样例类中每个属性名称可直接对应DataSet中字段名称,是强类型;
DataFrame是DataSet的特例,DataFrame = DataSet[Row];

三者之间关系及转化:

  • RDD、DataFrame、DataSet都是spark内部的分布式弹性数据集,为解决海量数据;
  • 它们都是懒执行,创建、转换算子不会立刻执行,只有遇到Action算子才执行;
  • 它们都有许多共同的函数;
  • 它们都会根据Spark内存情况自动缓存及运算;
  • 它们都有分区的概念;
  • DataFrame和DataSet需要引进import spark.implicits._,能通过模式匹配字段的值和类型。

在这里插入图片描述
RDD:

  • RDD一般与SparkMllib同时使用,不支持SparkSQL;
    DataFrame:

  • DataFrame 每一行的类型固定为Row,每一列的值没发直接访问,只能通过解析才能获取字段值;

  • DataFrame、DataSet一般不予SparkMllib同时使用;都支持SparkSQL函数、临时表、视图等;都支持csv等直观的保存方式。

    DataSet:

  • DataFrame是DataSet的一个特例等于DataSet[row],拥有相同的函数。


http://chatgpt.dhexx.cn/article/5yvHxN3h.shtml

相关文章

Windows下的Spark环境配置(含IDEA创建工程--《Spark大数据技术与应用》第九章-菜品推荐项目)

文章目录 前言一、下载资源二、本地配置步骤1.解压2.引入本地环境3.启动HADOOP文件4.进行Spark测试 三、IDEA引入Spark项目1.idea按照scala插件2.新建scala项目3.配置项目4.新建scala类 前言 本文适用于《Spark大数据技术与应用》第九章-菜品推荐项目环境配置: 跟…

Spark开发:Spark大数据开发编程示例

大数据开发人员,根据企业大数据处理的需求,进行大数据平台系统的搭建,比如说Hadoop,比如说Spark,而不同的大数据处理框架,采取不同的编程语言和编程模型,这就需要技术开发人员要掌握相关的技术。…

《Spark大数据技术与应用》肖芳 张良均著——课后习题

目录 教材知识汇总课后习题第一章 Spark概述Spark的特点Spark生态圈Spark应用场景 第二章 Scala基础匿名函数SetMapmapflatMapgroupBy课后习题 第三章 Spark编程教材52页任务3.2及之后的任务 重点复习sortBy排序collect查询distinct去重zip实训题实训1实训2选择题编程题 第四章…

Spark大数据技术与应用 第一章Spark简介与运行原理

Spark大数据技术与应用 第一章Spark简介与运行原理 1.Spark是2009年由马泰扎哈里亚在美国加州大学伯克利分校的AMPLab实验室开发的子项目,经过开源后捐赠给Aspache软件基金会,成为了Apache Spark。由Scala语言实现的专门为大规模数据处理而设计的快速通用…

大数据之Spark:Spark 基础

目录 1、Spark 发展史2、Spark 为什么会流行3、Spark 特点4、Spark 运行模式 1、Spark 发展史 2009 年诞生于美国加州大学伯克利分校 AMP 实验室; 2014 年 2 月,Spark 成为 Apache 的顶级项目; Spark 成功构建起了一体化、多元化的大数据处…

大数据之spark详解

目录 什么是spark: 功能历史上和hadoop的区别: spark的五大核心模块: ➢ Spark Core 什么是spark: 简单一点Spark 是一种基于内存的快速、通用、可扩展的大数据分析计算引擎。属于mapreduce的加强版本,结合了其优点…

09.大数据技术之Spark

文章目录 一、Spark概述1、概述2、Spark特点 二、Spark角色介绍及运行模式1、集群角色2、运行模式 三、Spark集群安装1.Local模式1.下载文件2.解压缩3、修改配置文件4.配置环境变量5.启动服务6.启动客户端 2.Standalone模式1.停止服务2.修改配置文件spark-env.sh3.修改配置文件…

大数据框架之Spark详解

目录 1 Spark概述1.1 Spark是什么?1.2 Spark内置模块1.3 Spark 特点 2 RDD概述2.1 什么是RDD?2.2 RDD的属性2.3 RDD特点2.4 弹性体现在哪?2.5 分区2.6 分区2.7 依赖2.8 缓存2.9 CheckPoint 1 Spark概述 1.1 Spark是什么? Spark是…

大数据学习 之 Spark 概述

文章目录 一、Spark简介Spark与Hadoop的区别部署模式 二、 Spark架构1.Driver2.Executor3.Master & Worker4.Cluster manager5.ApplicationMaster补充点:Stage执行过程 三、Shuffle机制shuffle介绍Shuffle的影响导致Shuffle的操作 四、RDD(弹性分布式…

大数据技术---Spark

一、Spark简介 1、Spark概述 Spark:由美国加州伯克利大学的AMP实验室于2009年开发,基于内存计算的大数据并行计算框架,可用于构建大型的、低延迟的数据分析应用程序。 三大分布式计算系统开源项目:Hadoop、Spark、Storm。 Spark的…

KB、MB、GB等和KiB、MiB、GiB等的区别

今天装系统RHEL7.7,在分区时发现单位变成MiB、GiB了,有点奇怪就查了查。 区别: KB、MB、GB等单位以10为底数的指数 KiB、MiB、GiB等单位是以2为底数的指数 如:1KB10^31000, 1MB10^610000001000KB,1GB10^910000000001000MB,而 …

asset size limit: The following asset(s) exceed the recommended size limit (244 KiB).

webpack打包提示文件体积过大导致: The following asset(s) exceed the recommended size limit (244 KiB). This can impact web performance. entrypoint size limit: The following entrypoint(s) combined asset size exceeds the recommended limit (244 Ki…

当git clone遇到client_loop:send disconnect: Connection reset by peer00 Kib/s

当git clone遇到client_loop:send disconnect: Connection reset by peer00 Kib/s 1. 问题描述2.问题解决3.原因分析 1. 问题描述 刚换了新电脑,重新配置了下git仓库的ssh后,迫不及待想 git clone 先项目。发现遇到个问题: 在执行 git clone…

Kibana

Kibana是一个开源的分析和可视化平台,设计用于和Elasticsearch一起工作。 你用Kibana来搜索,查看,并和存储在Elasticsearch索引中的数据进行交互。 你可以轻松地执行高级数据分析,并且以各种图标、表格和地图的形式可视化数据。…

WARNING in asset size limit: The following asset(s) exceed the recommended size limit (244 KiB)

Taro打包h5体积限制 警告: WARNING in asset size limit: The following asset(s) exceed the recommended size limit (244 KiB). 可以使用webpack-bundle-analyzer插件对打包体积进行分析,参考代码: webpackChain (chain) {chain.plug…

【名词解释】KiB和KB,MiB和MB,GiB和GB 等的区别以及1M带宽到底是多少?

目录 1. KiB和KB,MiB和MB,GiB和GB 2. 宽带速度 3. 单位换算 1. KiB和KB,MiB和MB,GiB和GB KiB和KB,MiB和MB,GiB和GB 等的区别: 1KB(kilobyte)10^31000byte, 1KiB(kibibyte)2^101024byte …

b、B、KB、Kib、MB、MiB、GB、GiB、TB、TiB的区别

1024这个数字,想必计算机行业从业人员应该不会陌生,甚至10月24日还被当做程序员日,如果你问一个程序员1GB等于多少MB,他大概率会不假思索回答:1024。 没错,对于稍微对计算机或者网络有了解的人,一般都认为1024是数据容…

KB和KiB的区别是什么?

KB和KiB的区别是什么? 文章目录 KB和KiB的区别是什么?前言MB与MiB的区别:KB和KiB的区别为什么买到的硬盘容量总是会少一些? 前言 今天整理资料时发现使用windows自带的资源管理器查看文件夹大小时计算很缓慢, 机智的我想到了使用dir命令来查看 哈哈~…

KiB是什么单位

kiB1024byte kb1000byte

linux必备软件合集

Ubuntu常用软件合集 我用的使Ubuntu-Kylin14.04,原因呢主要是觉得使本土化的,自带了日历、输入法、优客助手等易于上手的应用。也省的每次安装完原生的系统再麻烦的安装,但是这些软件并不仅仅局限于ubuntu14.04 美化篇 刚装上ubuntu,看起来很朴素&…