当前位置: 首页 > news >正文

Spark基础介绍

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

  1. 起源阶段
    1. Spark 最初是在 2009 年由加州大学伯克利分校的 AMP 实验室开发。当时,Hadoop 在大数据处理领域占据主导地位,但 MapReduce 在某些复杂计算场景下,如迭代计算和交互式数据挖掘,效率较低。Spark 的设计目标就是为了解决这些问题,提供一个更高效、灵活的大数据处理框架。
  2. 早期版本发布
    1. 2010 年,Spark 发布了第一个版本。这个阶段,Spark 主要聚焦于内存计算的优化。与 Hadoop 的 MapReduce 相比,Spark 的核心创新在于其弹性分布式数据集(RDD - Resilient Distributed Dataset)的概念。RDD 允许数据在内存中进行缓存和重用,大大提高了数据处理的速度,尤其是在迭代计算任务中,例如机器学习中的梯度下降算法等。
  3. 生态系统扩展阶段
    1. 从 2013 年开始,Spark 不断扩展其生态系统。Spark SQL 发布,它为处理结构化数据提供了类似于 SQL 的接口,使得熟悉 SQL 的用户可以方便地使用 Spark 进行数据分析。Spark SQL 能够将 SQL 查询转换为 Spark 的执行计划,并且可以与多种数据源进行交互,如 Hive 表、JSON 文件等。
    2. 同时,Spark Streaming 也应运而生,它支持对实时数据流进行处理。Spark Streaming 将实时数据切分成小的时间批次,然后利用 Spark 的计算引擎进行处理,能够在保证低延迟的情况下处理大量的实时数据,例如实时日志分析、实时监控数据处理等场景。
  4. 机器学习和图计算集成阶段
    1. 2014 - 2015 年,Spark MLlib(机器学习库)和 GraphX(图计算库)得到了进一步发展。MLlib 提供了大量的机器学习算法,包括分类、回归、聚类等算法,方便数据科学家在大数据集上进行模型训练和预测。GraphX 则提供了图数据结构和图计算算法,用于处理社交网络、知识图谱等图数据相关的应用场景。
  5. 成熟与广泛应用阶段
    1. 随着时间的推移,Spark 逐渐成熟并被广泛应用于各个行业。许多企业将 Spark 用于数据仓库构建、数据挖掘、用户行为分析等众多大数据应用场景。它能够与各种大数据存储系统集成,如 Hadoop 分布式文件系统(HDFS)、亚马逊 S3 等,并且可以在不同的集群管理系统上运行,如 YARN 和 Mesos 等。其社区也在不断壮大,有大量的开发者为其贡献代码、优化性能和修复漏洞。

Spark 诞生主要是为了解决 Hadoop MapReduce 在迭代计算以及交互式数据处理时面临的性能瓶颈问题。

在 Hadoop MapReduce 时代,数据处理主要基于磁盘,每次计算都需要频繁读写磁盘,这在面对需要多次迭代的算法,如机器学习中的梯度下降算法时,效率极其低下,导致大规模数据的迭代分析可能耗费数小时之久。而 Spark 创新性地采用基于内存计算的模式,使得数据在内存中能够被快速访问与处理,极大地缩短了计算时间,让大规模数据的迭代分析能够在秒级或分钟级完成,从而大幅提升了数据处理的效率,满足了诸如实时性要求较高的交互式数据处理等场景需求。 例如,在进行实时数据分析以支持即时决策的业务场景中,Spark 能够快速给出结果,而 Hadoop MapReduce 则因性能问题难以胜任。

(二)spark框架
(二)Spark内置模块

spark Core:实现了Spark的基本功能,包含任务调度,内存管理,错误恢复,存储系统交互等模块。

spark SQL: 是Spark用来操作结构化数据的程序包。通过Spark SQL,我们可以使用SQL或者Apache Hive 版本的HQL来查询数据。

实时计算:spark是基于MR的,而MR是离线的。(实时的延迟是以ms为单位的)。

机器学习和图计算:需要有比较强的数学功底。

(三)Spark的特点
(四) Spark的运行模式

部署:将软件安装到什么位置,就称之为部署。

把spark计算逻辑在谁提供的资源中执行。

如果资源是当前单节点提供的,那么称之为单机模式。

如果资源是当前多节点提供的,那么称之为分布式模式。

hadoop: MR计算和资源管理耦合在一起的。

hadoop:2.x => Yarn版本(也叫资源调度),将资源和计算进行解耦合。

Yarn(管理资源)+MR(计算),(Spark,Flink)。

Spark 自己也有资源调度 + 计算。

如果资源是Spark提供的,那么就称之为Spark部署环境:Standzone

在工资生产环境中,主要采用Yarn+Spark的方式,也称之为Spark on Yarn。

HelloWorld.spark

object HelloWorld extends App{
  println("hello world!")
}

相关文章:

Spark基础介绍

Spark是一种基于内存的快速、通用、可拓展的大数据分析计算引擎。 起源阶段 Spark 最初是在 2009 年由加州大学伯克利分校的 AMP 实验室开发。当时,Hadoop 在大数据处理领域占据主导地位,但 MapReduce 在某些复杂计算场景下,如迭代计算和交互…...

Oracles数据库通过存储过程调用飞书接口推送群组消息

在Oracle数据库中,可以通过存储过程调用外部接口来实现推送消息的功能。以下是一个示例,展示如何通过存储过程调用飞书接口推送群组消息。 创建存储过程 首先,创建一个存储过程,用于调用飞书接口。该存储过程使用UTL_HTTP包来发送HTTP请求。 CREATE OR REPLACE PROCEDUR…...

ubuntu22.04编译PX4无人机仿真实践

克隆PX4源码,并且更新子模块 git clone https://github.com/PX4/PX4-Autopilot.git --recursive git submodule update --init --recursive # 强制同步所有子模块 接着安装相关依赖: bash ./PX4-Autopilot/Tools/setup/ubuntu.sh 运行以下命令进行编译: cd ~/PX4-Autop…...

MySQL基础入门:MySQL简介与环境搭建

引言 在数字化转型浪潮中,MySQL作为数据存储的"基石引擎",支撑着从电商交易到金融风控的各类核心业务。其高并发处理能力、灵活的架构设计及跨平台兼容性,使其成为开发者技术栈中的"常青树"。本章节将通过历史溯源、技术…...

无人机避障——(运动规划部分)深蓝学院动力学kinodynamic A* 3D算法理论解读(附C++代码)

开源代码链接:GitHub - Perishell/motion-planning 效果展示: ROS 节点展示全局规划和轨迹生成部分: Kinodynamic A*代码主体: int KinoAstar::search(Eigen::Vector3d start_pt, Eigen::Vector3d start_vel,Eigen::Vector3d en…...

电脑声音小怎么调大 查看声音调整方法

电脑是我们工作学习经常需要用到的工具,同时电脑也可以播放音乐、视频、游戏等,享受声音的效果。但是,有些电脑的声音很小,即使把音量调到最大,也听不清楚,这让我们很苦恼。那么,电脑声音小怎么…...

无人机信号监测系统技术解析

一、模块技术要点 1. 天线阵列与信号接收模块 多频段自适应切换:采用天线阵列模块,根据复杂地形和不同频段自动切换合适的天线,提升信号接收灵敏度。 双天线测向技术:通过双天线的RSSI(信号接收强度)差值…...

Excel的详细使用指南

### **一、Excel基础操作** #### **1. 界面与基本概念** - **工作簿(Workbook)**:一个Excel文件(扩展名.xlsx)。 - **工作表(Worksheet)**:工作簿中的单个表格(默认名…...

基于SSM实现的健身房系统功能实现十六

一、前言介绍: 1.1 项目摘要 随着社会的快速发展和人们健康意识的不断提升,健身行业也在迅速扩展。越来越多的人加入到健身行列,健身房的数量也在不断增加。这种趋势使得健身房的管理变得越来越复杂,传统的手工或部分自动化的管…...

序列化和反序列化(hadoop)

1.先将上一个博客的Student复制粘贴后面加上H 在StudentH中敲下面代码 package com.example.sei; import org.apache.hadoop.io.Writable; import java.io.DataInput; import java.io.DataOutput; import java.io.IOException; //学生类,姓名,年龄 //支…...

大模型MCP_MCP从流式SSE到流式HTTP_1.8.0支持流式HTTP交互_介绍_从应用到最优--人工智能工作笔记0245

从最开始的大模型时代,到现在MCP,大模型技术,人工智能技术迭代真的非常快 之前的大模型更像一个大脑,能帮大家出点子,然后告诉你思路,你去解决问题,但是 一直不能自己解决问题,后来出来了通用的manus智能体,声称可以解决很多问题.直接操作 一个自带的电脑,但是也有局限性,还…...

docker大镜像优化实战

在 Docker 镜像优化方面,有许多实战技巧可以显著减小镜像体积、提高构建效率和运行时性能。以下是一些实用的优化策略和具体操作方法: 1. 选择合适的基础镜像 策略 使用 Alpine 版本:Alpine 镜像通常只有 5-10MB,比 Ubuntu/Deb…...

【25软考网工】第六章(5)应用层安全协议

博客主页:christine-rr-CSDN博客 ​​专栏主页:软考中级网络工程师笔记 ​​​ 大家好,我是christine-rr !目前《软考中级网络工程师》专栏已经更新三十篇文章了,每篇笔记都包含详细的知识点,希望能帮助到你&#xff…...

RevIN(Reversible Instance Normalization)及其在时间序列中的应用

详细介绍 RevIN(Reversible Instance Normalization)及其在时间序列中的应用 1. RevIN 的定义与背景 RevIN(可逆实例归一化)是一种专门为时间序列预测设计的归一化方法,旨在处理非平稳数据(non-stationar…...

JSON 和 cJSON 库入门教程

第一部分:了解 JSON (JavaScript Object Notation) 什么是 JSON? JSON 是一种轻量级的数据交换格式。它易于人阅读和编写,同时也易于机器解析和生成。 JSON 基于 JavaScript 编程语言的一个子集,但它是一种独立于语言的文本格式…...

Unity 2D 行走动画示例工程手动构建教程-AI变成配额前端UI-完美游戏开发流程

🎮 Unity 2D 行走动画示例工程手动构建教程 ✅ 1. 新建 Unity 项目 打开 Unity Hub: 创建一个新项目,模板选择:2D Core项目名:WalkAnimationDemo ✅ 2. 创建文件夹结构 在 Assets/ 目录下新建以下文件夹&#xff1a…...

[Java][Leetcode middle] 45. 跳跃游戏 II

这题没做出来,看的答案解析 可以理解为希望采用最少得跳槽次数跳到最高级别的公司。 下标i为公司本身的职级,每个公司可以提供本身等级nums[i]的职级提升。 每次从这些选择中选择自己能够达到最大职级的公司跳槽。 public int jump(int[] nums) {if(nu…...

leetcode 3335. 字符串转换后的长度 I

给你一个字符串 s 和一个整数 t,表示要执行的 转换 次数。每次 转换 需要根据以下规则替换字符串 s 中的每个字符: 如果字符是 z,则将其替换为字符串 "ab"。否则,将其替换为字母表中的下一个字符。例如,a 替…...

Leetcode 3542. Minimum Operations to Convert All Elements to Zero

Leetcode 3542. Minimum Operations to Convert All Elements to Zero 1. 解题思路2. 代码实现 题目链接:3542. Minimum Operations to Convert All Elements to Zero 1. 解题思路 这一题的处理方法其实还是挺好想明白的,其实就是从小到大依次处理各个…...

如何使用C51的Timer0实现定时功能

在C51单片机中,使用定时器0(Timer0)实现定时功能需要以下步骤: 1. 定时器基础知识 时钟源:C51的定时器时钟来源于晶振(如12MHz)。机器周期:1个机器周期 12个时钟周期(1…...

Day1 时间复杂度

一 概念 在 C 中,时间复杂度是衡量算法运行时间随输入规模增长的趋势的关键指标,用于评估算法的效率。它通过 大 O 表示法(Big O Notation) 描述,关注的是输入规模 n 趋近于无穷大时,算法时间增长的主导因…...

PostgreSQL 配置设置函数

PostgreSQL 配置设置函数 PostgreSQL 提供了一组配置设置函数(Configuration Settings Functions),用于查询和修改数据库服务器的运行时配置参数。这些函数为数据库管理员提供了动态管理数据库配置的能力,无需重启数据库服务。 …...

美学心得(第二百七十六集) 罗国正

美学心得(第二百七十六集) 罗国正 (2025年4月) 3275、人类将迎来真、善、美快速发展的时期,人‐机合一的天人合一(可简称为“天人机合一”)的境界已渐露头角,在优秀的人群中迅猛地…...

描述性统计工具 - AxureMost 落葵网

描述性统计工具是用于汇总和分析数据,以更好地了解数据特征的工具1。以下是一些常见的描述性统计工具简介: 描述性统计工具 Excel 基本统计函数:提供了丰富的函数用于计算描述性统计量。例如,AVERAGE 函数用于计算平均值&#xf…...

mybatis中${}和#{}的区别

先测试&#xff0c;再说结论 userService.selectStudentByClssIds(10000, "wzh or 11");List<StudentEntity> selectStudentByClssIds(Param("stuId") int stuId, Param("field") String field);<select id"selectStudentByClssI…...

【OpenCV】网络模型推理的简单流程分析(readNetFromONNX、setInput和forward等)

目录 1.模型读取&#xff08;readNetFromONNX()&#xff09;1.1 初始化解析函数&#xff08;parseOperatorSet()&#xff09;1.2 提取张量&#xff08;getGraphTensors()&#xff09;1.3 节点处理&#xff08;handleNode()&#xff09; 2.数据准备&#xff08;blobFromImage() …...

代码随想录算法训练营第三十九天

LeetCode题目: 115. 不同的子序列583. 两个字符串的删除操作72. 编辑距离 其他: 今日总结 往期打卡 115. 不同的子序列 跳转: 115. 不同的子序列 学习: 代码随想录公开讲解 问题: 给你两个字符串 s 和 t &#xff0c;统计并返回在 s 的 子序列 中 t 出现的个数。 测试用例保…...

InternVL3: 利用AI处理文本、图像、视频、OCR和数据分析

InternVL3推动了视觉-语言理解、推理和感知的边界。 在其前身InternVL 2.5的基础上,这个新版本引入了工具使用、GUI代理操作、3D视觉和工业图像分析方面的突破性能力。 让我们来分析一下是什么让InternVL3成为游戏规则的改变者 — 以及今天你如何开始尝试使用它。 InternVL…...

力扣刷题Day 48:盛最多水的容器(283)

1.题目描述 2.思路 学习了Krahets佬的双指针思路&#xff0c;初始化两个边界作为容器边界&#xff0c;然后逐个向数组内遍历&#xff0c;直到左右两指针相遇。 3.代码&#xff08;Python3&#xff09; class Solution:def maxArea(self, height: List[int]) -> int:left,…...

基于单应性矩阵变换的图像拼接融合

单应性矩阵变换 单应性矩阵是一个 3x3 的可逆矩阵&#xff0c;它描述了两个平面之间的投影变换关系。在图像领域&#xff0c;单应性矩阵可以将一幅图像中的点映射到另一幅图像中的对应点&#xff0c;前提是这两幅图像是从不同视角拍摄的同一平面场景。 常见的应用场景&#x…...

《驱动开发硬核特训 · 专题篇》:深入理解 I2C 子系统

关键词&#xff1a;i2c_adapter、i2c_client、i2c_driver、i2c-core、platform_driver、设备树匹配、驱动模型 本文目标&#xff1a;通过实际代码一步步讲清楚 I2C 子系统的结构与运行机制&#xff0c;让你不再混淆 platform_driver 与 i2c_driver 的职责。 &#x1f9e9; 一、…...

Spark缓存-cache

一、RDD持久化 1.什么时候该使用持久化&#xff08;缓存&#xff09; 2. RDD cache & persist 缓存 3. RDD CheckPoint 检查点 4. cache & persist & checkpoint 的特点和区别 特点 区别 二、cache & persist 的持久化级别及策略选择 Spark的几种持久化…...

tails os系统详解

一、起源与发展背景 1. 项目初衷与历史 创立时间&#xff1a;Tails 项目始于 2004 年&#xff0c;最初名为 “Anonymous Live CD”&#xff0c;2009 年正式更名为 “Tails”&#xff08;The Amnesic Incognito Live System&#xff0c;“健忘的匿名实时系统”&#xff09;。核…...

[洛谷刷题9]

P2376 [USACO09OCT] Allowance G&#xff08;贪心&#xff09; https://www.luogu.com.cn/problem/P2376 题目描述 作为创造产奶纪录的回报&#xff0c;Farmer John 决定开始每个星期给Bessie 一点零花钱。 FJ 有一些硬币&#xff0c;一共有 N ( 1 ≤ N ≤ 20 ) N (1 \le …...

数据挖掘入门-二手车交易价格预测

一、二手车交易价格预测 1-1 项目背景 随着二手车市场的快速发展&#xff0c;二手车交易价格的预测成为了一个热门研究领域。精准的价格预测不仅能帮助买卖双方做出更明智的决策&#xff0c;还能促进市场的透明度和公平性。对于买家来说&#xff0c;了解合理的市场价格可以避免…...

【PostgreSQL数据分析实战:从数据清洗到可视化全流程】金融风控分析案例-10.4 模型部署与定期评估

&#x1f449; 点击关注不迷路 &#x1f449; 点击关注不迷路 &#x1f449; 点击关注不迷路 文章大纲 10.4 模型部署与定期评估10.4.1 模型部署架构设计1.1 模型存储方案1.2 实时预测接口 10.4.2 定期评估体系构建2.1 评估指标体系2.2 自动化评估流程2.3 模型衰退预警 10.4.3 …...

构建可信数据空间需要突破技术、规则和生态三大关键

构建可信数据空间需要突破技术、规则和生态三大关键&#xff1a;技术上要解决"可用不可见"的隐私计算难题&#xff0c;规则上要建立动态确权和跨境流动的治理框架&#xff0c;生态上要形成多方协同的标准体系。他强调&#xff0c;只有实现技术可控、规则可信、生态协…...

阳光学院【2020下】计算机网络原理-A卷-试卷-期末考试试卷

一、单选题&#xff08;共25分&#xff0c;每空1分&#xff09; 1.ICMP协议工作在TCP/IP参考模型的 ( ) A.主机-网络 B.网络互联层 C.传输层 D.应用层 2.下列关于交换技术的说法中&#xff0c;错误的是 ( ) A.电路交换适用于突发式通信 B.报文交换不能满足实时通信 C.报文…...

python: union()函数用法

在 Python 中&#xff0c;union() 是集合&#xff08;set&#xff09;类型的内置方法&#xff0c;用于返回两个或多个集合的并集&#xff08;即所有元素的合集&#xff0c;自动去重&#xff09;。以下是它的用法详解&#xff1a; 1. 基本语法 python 复制 下载 set.union(*…...

docker部署WeDataSphere开源大数据平台

GitHub&#xff1a;https://github.com/WeBankFinTech/WeDataSphere **WDS容器化版本是由Docker构建的一个能够让用户在半小时内完成所有组件安装部署并使用的镜像包。**无需再去部署Hadoop等基础组件&#xff0c;也不需要部署WDS的各功能组件&#xff0c;即可让您快速体验 WD…...

【计算机视觉】OpenCV项目实战:基于face_recognition库的实时人脸识别系统深度解析

基于face_recognition库的实时人脸识别系统深度解析 1. 项目概述2. 技术原理与算法设计2.1 人脸检测模块2.2 特征编码2.3 相似度计算 3. 实战部署指南3.1 环境配置3.2 数据准备3.3 实时识别流程 4. 常见问题与解决方案4.1 dlib安装失败4.2 人脸检测性能差4.3 误识别率高 5. 关键…...

uni-app学习笔记五-vue3响应式基础

一.使用ref定义响应式变量 在组合式 API 中&#xff0c;推荐使用 ref() 函数来声明响应式状态&#xff0c;ref() 接收参数&#xff0c;并将其包裹在一个带有 .value 属性的 ref 对象中返回 示例代码&#xff1a; <template> <view>{{ num1 }}</view><vi…...

阿克曼-幻宇机器人系列教程2- 机器人交互实践(Topic)

在上一篇文章中&#xff0c;我们介绍了两种登录机器人的方式&#xff0c;接下来我们介绍登录机器人之后&#xff0c;我们如何通过topic操作命令实现与机器人的交互。 1. 启动 & 获取topic 在一个终端登录树莓派后&#xff0c;执行下列命令运行机器人 roslaunch huanyu_r…...

Windows系统事件查看器管理单元不可用

报错&#xff1a;Windows系统事件查看器管理单元不可用 现象原因&#xff1a;为误触关闭管理单元或者该模块卡死 解决办法&#xff1a;重启Windows server服务&#xff0c;若不行&#xff0c;则重启服务器即可...

milvus+flask山寨《从零构建向量数据库》第7章case2

继续流水账完这本书&#xff0c;这个案例是打造文字形式的个人知识库雏形。 create_context_db: # Milvus Setup Arguments COLLECTION_NAME text_content_search DIMENSION 2048 MILVUS_HOST "localhost" MILVUS_PORT "19530"# Inference Arguments…...

前端如何应对精确数字运算?用BigNumber.js解决JavaScript原生Number类型在处理大数或高精度计算时的局限性

目录 前端如何应对精确数字运算&#xff1f;用BigNumber.js解决JavaScript原生Number类型在处理大数或高精度计算时的局限性 一、BigNumber.js介绍 1、什么是 BigNumber.js&#xff1f; 2、作用领域 3、核心特性 二、安装配置与基础用法 1、引入 BigNumber.js 2、配置 …...

多目应用:三目相机在汽车智能驾驶领域的应用与技术创新

随着汽车智能驾驶技术不断完善&#xff0c;智能汽车也不断加速向全民普惠迈进&#xff0c;其中智驾“眼睛”三目视觉方案凭借低成本、高精度、强适配性成为众多汽车品牌关注的焦点。三目相机在汽车智能驾驶领域的创新应用&#xff0c;主要依托其多视角覆盖、高动态范围&#xf…...

webpack重构优化

好的&#xff0c;以下是一个关于如何通过重构 Webpack 构建策略来优化性能的示例。这个过程包括分析现有构建策略的问题、优化策略的制定以及具体的代码实现。 --- ### 项目背景 在参与公司的性能专项优化过程中&#xff0c;我发现现有的 Webpack 构建策略存在一些问题&#…...

MySQL 8.0 OCP(1Z0-908)英文题库(31-40)

目录 第31题题目分析正确答案 第32题题目分析正确答案 第33题题目分析正确答案&#xff1a; 第34题题目解析正确答案 第35题题目分析正确答案 第36题题目分析正确答案 第37题题目分析正确答案 第38题题目分析正确答案 第39题题目分析正确答案 第40题题目分析正确答案 第31题 Y…...

aardio - 虚表 —— vlistEx.listbar2 多层菜单演示

在 近我者赤 修改版的基础上&#xff0c;做了些许优化。 请升级到最新版本。 import win.ui; import godking.vlistEx.listbar2; import fonts.fontAwesome; /*DSG{{*/ mainForm win.form(text"多层折叠菜单";right1233;bottom713) mainForm.add({ custom{cls"…...