数据处理技术-Spark入门

Hello Spark! | Spark,从入门到精通 欢迎阅读美图数据技术团队的「Spark,从入门到精通」系列文章,本系列文章将由浅入深为大家介绍 Spark,从框架入门到底层架构的实现,相信总有一种姿势适合你,欢迎大家持续关注:) / 什么是 Spark? / Spark 是 UC Berkeley AMP lab 所开源的类 Hadoop MapReduce 的通用并行框架,是专为大规模数据处理而设计的快速通用的大数据处理引擎及轻量级... 阅读详情

对于前面已经学习过的MapReduce我们应该已经有了一个大致的了解。然而回顾MapReduce,会发现这是一个简单但是功能很单一的框架,因为它仅有Map和Reduce两个语义操作。为了进行更多更复杂的操作,出现了Spark.

Spark是什么?

与Hadoop相比,它多了更多的语义操作,而且不需要安装额外的组件(像Hive)就可以进行更多场景的处理。同时它也可以直接与内存进行交互,也就是说处理速度比与磁盘进行交互的Hadoop更快的。Spark是一个由UCB的AMP实验室提出的在一个统一框架下,实现批处理、流处理、交互式计算、机器学习为一体的计算框架。

Spark能做什么?(组成)

All in One框架,Spark提供多种计算场景。其底层是Spark Core(核心计算框架)做批处理运算.

  • Spark SQL: 将SQL转换成Spark Core
  • Spark Streaming: 将流处理转换成批处理,微批处理——批处理间隔时间短
  • Spark MLib: 机器学习
  • Spark GraphX: 图计算

Spark可以通过on Yarn模式提交到Hadoop当中运算。还有更多的运行模式,所以就显得扩展很强大。

Spark编程

Spark基于RDD进行计算。

RDD

弹性分布式数据集(Resilient Distributed Datesets).

  • 分布在集群中的只读对象集合,处理完需要新开一个RDD来保存结果。
  • 由多个Parition组成
  • 通过转换操作构建
  • 失效后自动重构,每一个RDD都存在内存当中,因此失效后不需要重头进行运算,只需要找到上一个RDD的内存重新执行处理
  • 存储在内存或磁盘中
例:词频统计
// sc对象 - SparkContext() - Spark上下文对象
val rdd1 = sc.textFile("hdfs://in") // textFile()读取文件
val rdd2 = rdd1.flatMap(_split("\t")) // 将每一行数据按照\t进行拆分,新的集合保存在rdd2当中
val rdd3 = rdd2.map((_, 1)) // 给每个单词标注1 存在rdd3当中
val rdd4 = rdd3.reduceByKey((_+_)) //按照key值进行reduce _+_为scala语法,表示进行累加求和 
rdd4.saveAsTextFile("hdfs://out") //保存到hdfs当中

RDD过程可以构成一个有向无环图(DAG)

RDD操作

Transformation 转换
  1. 将Scala集合或Hadoop输入数据构造成一个新RDD
  2. 通过已有的RDD产生新的RDD
  3. 惰性执行:只记录转换关系,不触发计算
  4. e.g. map, filter, flatmap, union, distinct, sortbykey
Action 动作
  1. 通过RDD计算得到一个或一组值
  2. 触发计算
  3. e.g. first, count, collect, foreach, saveAsTextFile

RDD依赖

partition一对一进行转换,被称为窄依赖;多对一进行转换,被称为宽依赖。
宽依赖中间一定走shuffle,恢复比较慢。因此需要尽量避免使用宽依赖。e.g. 按照key值进行排序的操作

Spark程序运行框架

在Driver当中执行代码解析,在Executor中进行任务执行。
Dirver包含:生成逻辑查询计划、生成物理查询计划、任务调度。
具体流程:

  1. 客户端向Master提交请求
  2. Master分配Worker运行资源,运行作业管理进程
  3. worker运行Driver,driver向master提交资源申请,master以executor形式分配资源
  4. 执行运算过程中,task(worker当中)向driver实时进行汇报
  5. task汇报作业完成,driver向master汇报,master释放所有资源。

Spark作业提交模式

  • Local模式
    单机运行,用于测试。Spark程序已多线程方式直接运行在本地。
  • Standalone模式
    Spark集群独立运行,不依赖与第三方资源。Driver在Worker中运行,Master只复杂集群管理。
  • OnYarn模式
大数据领域Spark入门指南:从零基础到实战应用 本文旨在为大数据领域的初学者提供一条清晰的学习路径,从Spark的基础概念到实际应用。我们将覆盖Spark的核心组件、编程模型、性能优化技巧以及与其他大数据技术的集成。本文首先介绍Spark的基本概念和架构,然后深入探讨其核心组件和编程模型。接着我们将通过实际案例展示Spark的应用,最后讨论性能优化和未来发展趋势。Spark: 一个快速、通用的集群计算系统: 弹性分布式数据集,Spark的核心数据结构DataFrame: 以列形式组织的分布式数据集合: 有向无环图,Spark任务执行的逻辑计划。 阅读详情

相关推荐

Spark入门指南:从零开始掌握大数据处理核心技术

在“数据爆炸”的今天,传统单机处理技术(如Excel、Python Pandas)已无法应对TB级甚至PB级数据。Spark作为Apache基金会的顶级项目,凭借“快如闪电”的计算速度(内存计算比Hadoop MapReduce快100倍)和“一站式”的生态(批处理、实时流、机器学习、图计算),成为大数据领域的“瑞士军刀”。本文将覆盖Spark的核心概念、架构原理、实战操作,带你从0到1掌握这门技术。用“快递分拣中心”故事引出Spark核心概念;拆解RDD、DataFrame等核心组件的原理与关系;

软件工程实践的博客 445

大数据手册(Spark)--Spark流数据处理

文章目录Spark Streaming Spark安装配置 Spark基本架构及运行流程 Spark基础知识(PySpark版) Spark机器学习(PySpark版) Spark流数据处理(PySpark版) Spark Streaming Hadoop的MapReduce及Spark SQL等只能进行离线计算,无法满足实时性要求较高的业务需求,例如实时推荐、实时网站性能分析等,流式计算可以...

WilenWu 7160

【大数据入门核心技术-Iceberg】(十二)Iceberg与Spark整合,并默认使用hive的catalog

【大数据入门核心技术-Iceberg】(十二)Iceberg与Spark整合,并默认使用hive的catalog。【大数据入门核心技术-Iceberg】(十二)Iceberg与Spark整合,并默认使用hive的catalog。【大数据入门核心技术-Iceberg】(十二)Iceberg与Spark整合,并默认使用hive的catalog。

218

Spark数据处理

Spark是用于大规模数据处理的统一分析引擎,是一款分布式的计算框架,用于调度成百上千的服务器集群,计算TB、PB乃至EB级别的大量数据PySpark是Spark在Python中的第三方库。

qq_40910093的博客 1355

Python实战:云计算与大数据处理入门

Python实战:云计算与大数据处理入门 关键词: Python、云计算、大数据处理、Hadoop、Spark、Boto3、Azure SDK、Google Cloud SDK 摘

AI天才研究院 1757

全面掌握Apache Spark:大数据处理技术入门指南

在大数据处理领域,Apache Spark作为一款开源分布式计算系统,已迅速成为处理大规模数据集的领先技术。它不仅拥有速度快捷的优势,还支持多种高级数据处理功能。本章将对Spark生态系统进行概述,为读者提供一个全面了解Spark的起点。])

weixin_42598278的博客 726

大数据基础平台——Spark大数据处理

了解与掌握数据框的创建、选择、运算和聚合、增加、删除和修改、连接、变形。

Hydrox_的博客 1748

Storm与Spark基础实践项目:大数据处理入门

Apache Storm是一个开源的实时计算系统,最初由Nathan Marz和团队在Twitter进行数据处理任务时设计。Storm能够有效处理大量实时数据流,支持分布式计算,具有低延迟和高可靠性。它适合用来构建实时分析、在线机器学习、连续计算、分布式RPC、ETL等实时数据处理场景。Apache Spark作为大数据领域内最火的处理引擎之一,它在批处理方面的表现尤为出色。Spark不仅提供了快速的数据处理能力,还支持广泛的高级数据分析,如SQL查询、流处理、机器学习和图形处理。

weixin_34640289的博客 1274

Spark

Apache Spark是一种包含流处理能力的下一代批处理框架。与Hadoop的MapReduce引擎基于各种相同原则开发而来的Spark主要侧重于通过完善的内存计算和处理优化机制加快批处理工作负载的运行速度。 Spark可作为独立集群部署(需要相应存储层的配合),或可与Hadoop集成并取代MapReduce引擎。 1.批处理模式 与MapReduce不同,Spark的数据处理工作全部在内存中进行,只在一开始将数据读入内存,以及将最终结果持久存储时需要与存储层交互。所有中间态的处理结果均存储在内存中。

weixin_42262463的博客 1046

用ST25DV芯片+KiCad快速设计NFC标签天线:参数计算/脚本生成/实测优化全流程

本文详细介绍了使用ST25DV芯片和KiCad工具设计NFC标签天线的全流程,包括参数计算、脚本生成和实测优化。通过解析芯片等效工作原理和设计思路,帮助开发者避开常见陷阱,实现高效、可量产的天线设计。文章还提供了Python计算工具和KiCad自动化脚本,大幅提升设计效率和成功率。

jj890的博客 758

Seedance 2.5本地部署指南:AI生图与视频生成的完整实践

最近在AI生成内容领域,本地部署方案越来越受到开发者关注。特别是Seedance 2.5的发布,让很多原本依赖云端服务的用户开始转向本地化解决方案。本文将从实际使用角度出发,完整介绍Seedance 2.5的本地部署流程、功能特性对比以及实际应用技巧。 1. Seedance 2.5核心特性解析 1.1 什么是Seedance 2.5 Seedance 2.5是一款开源的AI生图和视频生成工具,支持在本地环境运行,无需联网即可实现高质量的图像和视频生成。相比之前的2.0版本,2.5在生成质量、运行效率和功能

weixin_42566121的博客 1693

Spark大数据处理与分析

当子RDD的某一个分区的数据丢失时,若是窄依赖,只需重算和该分区对应的父RDD分区即可,而宽依赖则可能需要重算父RDD的所有分区。1.运行模式多样,可运行于独立的集群模式,Hadoop,Amazon EC2等云环境中,并且可以访问HDFS,Cassandra,HBase,HIve等多种数据源。宽依赖是指,父RDD的一个分区被子RDD的多个分区所用。现有容错机制:数据复制或者记录日志RDD具有天生的容错性:血缘关系,重新计算丢失分区,无需回滚系统,重算过程在不同节点之间并行,只记录粗粒度的操作。

Xiaozou_Q的博客 2366

手把手复现金蝶云星空V8.1文件上传漏洞(附完整POC与修复方案)

本文深度解析金蝶云星空V8.1文件上传漏洞,提供详细的漏洞复现步骤与完整POC,涵盖技术原理、测试环境搭建及验证流程。同时给出多维防护方案,包括官方补丁部署、临时缓解措施和长期安全加固建议,帮助企业有效防范任意文件上传风险。

weixin_30505225的博客 184

【spark大数据】spark大数据处理技术入门项目--购物信息分析

spark入门实战项目,加深对处理流程的理解。

qq_53690996的博客 8071

C++中为什么要引入引用变量?

C++引用机制的设计哲学在于平衡性能与安全性。它解决了指针的三个痛点:语法噪音、空指针风险和语义模糊,同时保持了指针的效率优势。引用必须绑定有效对象且不可重绑定的特性增强了安全性,其值语义语法更直观。尤其在运算符重载和const引用场景中,引用展现了不可替代的优势。本质上,引用是编译器优化的指针实现,体现了C++"零开销抽象"的核心思想——既保持底层性能,又提供高级抽象。这种设计允许开发者根据场景灵活选择指针或引用,反映了C++多范式共存的语言智慧。

教学 & 技术专栏 176

HSMS/SECS/GEM/GEM300半导体通讯协议介绍

HSMS/SECS/GEM/GEM300半导体通讯协议解决方案介绍 目录 SECS/GEM协议通讯 1 目录 2 1.介绍 3 1.1 产品概述 3 1.1.1 高扩展性 4 1.2 通讯实现 4 1.2.2多主机实现 4 1.3 当前的SEMI标准 5 1.3.1 功能跟友商对比 6 1.4 软件灵活性 7 1.5 无需学习SECS 7 1.6 自定义消息传递 8 1.7 记录收集 8 1.8 SECS Manual文档 8 1.9 产品清单 8 2 产品结构 9 2.1 控制面板 9 2.2 使用环境

semisecs 16万+

spark入门_Hello Spark! | Spark,从入门到精通

欢迎阅读美图数据技术团队的「Spark,从入门到精通」系列文章,本系列文章将由浅入深为大家介绍 Spark,从框架入门到底层架构的实现,相信总有一种姿势适合你,欢迎大家持续关注:) / 什么是 Spark? / Spark 是 UC Berkeley AMP lab 所开源的类 Hadoop MapReduce 的通用并行框架,是专为大规模数据处理而设计的快速通用的大数据处理引擎及轻量级的大数据处...

weixin_39984442的博客 370

Python 爬虫实战:爬取 B 站 UP 主的全部视频数据

本文详细介绍了基于Python开发B站UP主视频数据爬虫的技术方案。通过分析B站API接口,使用requests库发送HTTP请求并处理JSON数据,结合pandas进行结构化存储。文章重点解决了接口鉴权、分页爬取、反爬策略等核心难点,实现获取视频标题、播放量、点赞数等关键指标。同时强调数据爬取需遵守平台规范,仅限技术研究使用。该方案为B站视频内容分析提供了可靠的数据采集基础,具有实际应用价值。

2503_91057718的博客 2492

《Hadoop与Spark入门》教材出版

覃雄派陈跃国Hadoop与Spark入门清华大学出版社, 2023。

xiongpai1971的博客 309

Unreal5从入门到精通之如何实现移动端触屏滑动手势

随着移动设备的普及,越来越多的游戏和应用选择在移动平台上发布。Unreal Engine 5(UE5)作为一款强大的游戏引擎,提供了丰富的工具和功能,帮助开发者打造出色的移动体验。UE5不仅提升了图形质量,还大幅简化了开发流程,使得开发者能够更专注于游戏设计和用户体验。在移动游戏中,触屏滑动手势是用户与应用互动的主要方式之一。然而,许多开发者在实现这些功能时常常遇到困难。为了填补这一知识空白,本篇文章将详细介绍如何在UE5中实现移动端触屏滑动手势,帮助你从入门到精通,提升你的开发技能。

TxNet 1138

Android 中 app freezer 原理详解(二):S 版本

在之前的两篇博文《Android 中app内存回收优化(一)》和《Android 中app内存回收优化(二)》中详细剖析了 Android 中 app 内存优化的流程。这个机制的管理通过 CachedAppOptimizer 类管理,为什么叫这个名字,而不叫 AppCompact 等?freezer,一个针对应用进程长期处于 Cached 状态的优化。在之前博文《app freezer 原理 R 版本》

私房菜 3612

spark学习

大数据学习纲要,主要针对spark的相关知识的学习,后续会涉及其他大数据相关框架及语言。 1 spark入门: 2.spark 实战部分 3.spark源码解析 转载于:https://www.cnblogs.com/huane/p/6203272.html...

weixin_30546933的博客 65

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Spark目录

1. Spark1.0.0 应用程序部署工具spark-submit 2. Spark Streaming的编程模型 3. 使用java api操作HDFS文件 4. 用SBT编译Spark的WordCount程序 5. 在Spark上运行TopK程序 6. 在Spark上运行WordCount程序 7. Spark一个简单案例 8. Spark源码分析 9. Spark SQL ...

weixin_34400525的博客 451

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...

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

【亲测免费】 基于Spark的图书推荐系统

基于Spark的图书推荐系统 【下载地址】基于Spark的图书推荐系统 欢迎使用本开源项目,该项目致力于实现一个基于Apache Spark的大数据驱动的图书推荐系统。推荐系统作为现代技术和用户体验的核心组件,能显著提升用户的满意度和参与度。此项目特别聚焦于图书领域的个性化推荐,利用Spark的强大能力来处理和分析大规模...

gitblog_09789的博客 566

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

大数据Hadoop和Spark教程总结

http://dblab.xmu.edu.cn/blog/2460-2/ 这个是厦门大虚数据库实验室的网站,里面有如何配置hadoop以及spark的详细博客,很适合入门。 介绍了如何安装hadoop、如何启动hdfs等文档。 ...

NEFUZYJ的博客 510

快速掌握大数据处理:Spark权威指南完整学习路径

Apache Spark作为现代大数据处理的核心技术,已经成为数据工程师和分析师的必备技能。Spark权威指南项目是学习这一强大工具的终极资源库,提供从基础概念到高级应用的完整知识体系,帮助你快速掌握大数据处理的核心技术。 ## 🚀 为什么选择Spark权威指南项目? 这个开源项目汇集了Spark生态系统的完整学习材料,包含多种编程语言的实现示例,让你能够根据个人偏好选择最适合的学习路径。

gitblog_00013的博客 493
上一篇: LaTeX-希腊字母和数学符号的表示
下一篇: MongoDB当中的命名限制
Ayu阿予
博客等级 码龄5年 456粉丝 47原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ayu阿予

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值