Spark大数据开发与应用案例(视频教学版)(一)

作者:余辉

  • 简介:余辉,硕士毕业于中科院,从事IT行业12年。专注于大数据和机器学习。在数据团队担任过的角色:研发、架构师、负责人、讲师。数据知识产权:出版大数据书籍【1】本,论文【2】篇,软著【6】篇,专利【65】篇。

内容简介

        本书是一本Spark的入门书籍,以通俗易懂的方式介绍了Spark原生态组件的基础、实战操作以及集群搭建方面的知识。本书配套示例源码、PPT课件、教学视频与作者答疑服务。
本书共分15章,内容包括Spark 简介、Spark集群环境部署、Spark 编程体验、RDD深度解读、RDD的Shuffle详解、Spark 共享变量、Spark 序列化和线程安全、Spark内存管理机制、SparkSQL简介、SparkSQL 抽象编程详解、SparkSQL自定义函数、SparkSQL 源码解读、Spark性能调优、Spark 实战案例、Spark面试题。
       本书适合Spark初学者、大数据分析人员、大数据应用开发人员或一定经验的大数据架构师,本书也适合高等院校或高职高专院校学习Spark大数据技术课程的学生。

前 言

       数据是国家基础性战略资源,是21世纪的“钻石矿”。党中央、国务院高度重视大数据在经济社会发展中的作用,党的十八届五中全会提出“实施国家大数据战略”,国务院印发《促进大数据发展行动纲要》,全面推进大数据发展,加快建设数据强国。大数据产业指以数据生产、采集、存储、加工、分析、服务为主的相关经济活动,包括数据资源建设、大数据软硬件产品的开发、销售和租赁活动,以及相关信息技术服务。“十二五”期间,我国信息产业迅速壮大,信息技术快速发展,互联网经济日益繁荣,积累了丰富的数据资源,技术创新取得了明显突破,应用势头良好,为“十三五”时期我国大数据产业加快发展奠定了坚实基础。

内容速浏

       本书用于Spark3.x快速上手和参考手册,由于在大数据开发工作中,SparkCore和SparkSQL使用频率最高,所以本书只讲述SparkCore和SparkSQL。全书一共分为十五章,主要的章节内容如下:

       第1章Spark 简介:本章全面介绍了Spark,包括其定义、特点、技术生态系统、运行模式、执行流程和专有名词。读者可以初步了解Spark作为大数据处理框架的优势和应用场景,为后续深入学习打下基础。

       第2章Spark集群环境部署:本章详细指导了如何在集群环境中部署Spark,包括虚拟机安装、网络配置和Spark集群安装等步骤。读者可以掌握Spark集群的搭建方法,为后续的实验和项目开发做好准备。

       第3章Spark 编程体验:本章通过Scala、Java和Python三种语言编写了WordCount程序,并介绍了本地运行和Debug方法。读者可以体验Spark编程的便捷性和灵活性,为后续深入学习Spark编程打下基础。

       第4章RDD深度解读:本章深入解读了RDD的概念、血缘、依赖和各类算子,以及Spark任务执行原理。读者可以深入理解RDD作为Spark核心数据结构的特性和作用。

       第5章RDD的Shuffle详解:本章详细讲解了Shuffle的概念、演进历史、触发条件和实现方式。读者可以了解Shuffle在Spark中的重要作用和性能优化方法。

       第6章Spark 共享变量:本章介绍了广播变量和累加器两种Spark共享变量,以及它们的使用方法和应用场景。读者可以掌握如何在Spark任务中共享数据,提高任务执行效率。

       第7章 Spark 序列化和线程安全:本章讲解了Spark序列化和Task线程安全的概念和重要性,以及如何在Spark编程中避免序列化问题和线程安全问题。读者可以了解Spark编程中的常见陷阱和解决方法。

       第8章 Spark内存管理机制:本章介绍了Spark内存管理机制,包括堆内内存和堆外内存的区别、分配和使用方法。读者可以了解如何优化Spark内存使用,提高任务执行性能。

       第9章 SparkSQL简介:本章介绍了SparkSQL的定义、特性和编程抽象,以及快速体验方法。读者可以初步了解SparkSQL作为Spark数据查询和处理工具的优势和应用场景。

       第10章 SparkSQL 抽象编程详解:本章详细讲解了DataFrame的创建、输出和运算方法,以及RDD、DS和DF之间的互转方法。读者可以掌握SparkSQL抽象编程的常用方法和技巧。

       第11章 SparkSQL自定义函数:本章介绍了用户自定义函数UDF和UDAF的定义和使用方法。读者可以了解如何在SparkSQL中扩展自定义函数,实现更复杂的查询和处理逻辑。

       第12章 SparkSQL 源码解读:本章深入解读了SparkSQL的源码,包括元数据管理、SQL解析、逻辑计划绑定、优化和物理计划生成等过程。读者可以了解SparkSQL的内部实现原理和优化方法。

       第13章 Spark性能调优:本章介绍了Spark性能调优的常规方法、开发原则优化、调优方法和数据倾斜调优方法。读者可以掌握如何优化Spark任务性能,提高任务执行效率。

       第14章 Spark 实战案例:本章通过多个实战案例展示了Spark在统计、电商、日志分析和数据分析等领域的应用。读者可以了解Spark在实际项目中的应用场景和解决方法,为未来的项目开发提供参考。

       第15章Spark面试题:本章汇总了Spark的50道常见面试题,涵盖了Spark的核心概念、架构原理、编程实战、性能调优、实战应用5个方面。这些面试题有助于读者检验自己的学习成果,并为求职面试做好准备。

本书特色

       本书是一本Spark的入门书籍,以通俗易懂的方式介绍了Spark原生态组件的基础、实战操作以及集群搭建方面的知识。本书的特点是:注重“实战”训练,强调知识系统性,关注内容实用性。
       (1)本书从培训角度对读者简述 Spark中常用组件的原理和实战操作,让读者快速了解组件原理和功能使用。
       (2)每一个操作都配有实例代码或者是图片来帮助理解,每一章的最后还有小节,来归纳总结本章的内容,帮助读者对Spark有一个大的全局观。
       (3)目前市面上关于Spark的书也很多,但是都没有对 Spark 进行实战案例以及图文并茂结合进行讲解,本书在讲解完Spark原理之后,又加入了 Spark的案例实战,最后加入了Spark的面试资料,使得读者能够应对Spark工作做的常见使用方法以及能够让读者得知互联网如何面试Spark的基础知识。

本书适合读者

       本书适合Spark初学者、大数据分析人员、大数据应用开发人员或一定经验的大数据架构师,本书也适合高等院校或高职高专院校学习Spark大数据技术课程的学生。

目录

第1章Spark简介…7
1.1. Spark是什么… 7
1.2. Spark特点… 8
1.3. Spark技术生态系统…10
1.4. Spark运行模式…11
1.5. Spark执行流程…14
1.6. Spark专有名词…18
1.7.本章小结…21
第2章Spark集群环境部署…21
1.1. VM虚拟机安装…21
1.2. Ubuntu 22.04系统安装…26
1.3. Ubuntu 22.04网络配置…33
1.4. Ubuntu 22.04环境配置…35
1.5. zookeeper安装…39
1.6. Hadoop安装…41
1.7. Spark安装…49
1.8.集群下载…53
1.9.本章小结…54
第3章Spark编程体验…55
1.1. Scala基础编程…55
1.2. Spark创建项目…68
1.3. Spark程序编写…75
1.4.本章小结… 78
第4章RDD深度解读…78
1.1. RDD是什么…78
1.2. RDD的血缘和依赖…81
1.3. RDD的Transformation算子…87
1.4. RDD的Action算子…106
1.5. RDD的特殊算子…112
1.6. RDD转换算子的惰性…113
1.7.模拟spark自定义RDD…115
1.8. Spark任务执行原理图解分析…118
1.9. Spark算子练习…121
1.10.本章小结…125
第5章RDD的Shuffle详解…125
1.1. Shuffle的概念…125
1.2. Shuffle演进的历史…126
1.3. reduceByKey一定会Shuffle吗…126
1.4. join一定会Shuffle吗…127
1.5. Shuffle数据的复用实验…129
1.6. HashShuffleManager… 132
1.7. SortShuffleManager… 134
1.8. SortShuffleWriter…137
1.11.本章小结… 139
第6章Spark共享变量…139
1.1.广播变量…139
1.2.累加器…142
1.12.本章小结…148
第7章Spark序列化和线程安全…149
1.1. Spark序列化… 149
1.2. Task线程安全…163
1.3.本章小结…165
第8章Spark内存管理机制…166
1.1.概述… 166
1.2.堆内内存和堆外内存区别… 166
1.3.堆内内存(On-heap Memory)…168
1.4.堆外内存(Off-heap Memory)… 171
1.4.本章小结… 174
第9章SparkSQL简介… 175
1.1. Spark SQL定义…175
1.2. Spark SQL特性…175
1.3. SparkSQL编程抽象…178
1.4. SparkSQL快速体验…179
1.5.本章小结… 183
第10章SparkSQL抽象编程详解…184
1.1. DataFrame创建…184
1.2. DataFrame输出…202
1.3. DataFrame运算…205
1.4. RDD代码和SQL代码混合编程…212
1.5. RDD/DS/DF互转…235
1.6.本章小结…236
第11章SparkSQL自定义函数…237
1.1.用户自定义函数UDF … 237
1.2.用户自定义聚合函数UDAF …245
1.3.本章小结…253
第12章SparkSQL源码解读…253
1.1.元数据管理SessionCatalog …254
1.2. SQL解析成逻辑执行计划…254
1.3. Analyzer绑定逻辑计划… 257
1.4. Optimizer优化逻辑计划…259
1.5.使用SparkPlanner生成物理计划… 266
1.6.从物理执行计划获取inputRdd执行…269
1.7.本章小结… 269
第13章Spark性能调优… 270
1.1. Spark常规性能调优… 270
1.2. Spark开发原则优化… 277
1.3. Spark调优方法… 284
1.4. Spark数据倾斜调优… 293
1.5.本章小结… 302
第14章Spark实战案例… 302
1.1. Spark Core日志统计实战…302
1.2. Spark Core日志分析可视化案例…311
1.3. Spark SQL电商实战…324
1.4. Spark SQL数据分析…333
1.5.本章小结…341
第15章Spark的50道面试题…342
1.1.核心概念…342
1.2.架构原理…353
1.3.编程实践…362
1.4.性能调优…373
1.5.实战应用…395
1.6.本书小结…405

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

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

相关文章

跨域请求问题

跨域请求简介 跨域请求:通过一个域的JavaScript脚本和另外一个域的内容进行交互 域的信息:协议、域名、端口号 同域:当两个域的协议、域名、端口号均相同 如下所示: 同源【域】策略:在浏览器中存在一种安全策略就是…

探索开源项目 kernel:技术的基石与无限可能

在开源的广袤世界中,有一颗璀璨的明星——kernel(https://gitee.com/openeuler/kernel),它宛如一座技术的宝藏,蕴含着无数的智慧与创新,为众多开发者所瞩目和敬仰。 一、初窥 kernel 项目 当我第一次接触…

Spring Boot Actuator、Spring Boot Actuator使用、Spring Boot Actuator 监控、Spring程序监控

SpringBoot四大核心之actuator——程序监控器 1. 添加 Spring Boot Actuator 依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> 2. 配置 …

C++“STL之String”

​ &#x1f339;个人主页&#x1f339;&#xff1a;喜欢草莓熊的bear &#x1f339;专栏&#x1f339;&#xff1a;C入门 目录 ​编辑 前言 一、STL简介 1.1 STL是什么&#xff1f; 1.2 STL的版本&#xff08;这个不是很重要了解即可&#xff09; 1.3 STL的六大组件 二…

语言模型评价指标

1. BLEU&#xff08;Bilingual Evaluation Understudy&#xff09; 目标&#xff1a;衡量生成文本和参考文本之间的词汇相似性。 计算步骤&#xff1a; N-gram 匹配&#xff1a; 将生成文本和参考文本分解成 1-gram、2-gram、…、N-gram&#xff08;通常取到 4-gram&#xff…

2-199基于Matlab-GUI的混合粒子群算法求解TSP问题

基于Matlab-GUI的混合粒子群算法求解TSP问题&#xff0c;多种路径可选&#xff0c;可设置微粒数目、迭代次数&#xff0c;动态展示路径规划过程及迭代曲线&#xff0c;得到叫佳的路径&#xff0c;输出最优路径序列及最终距离。程序已调通&#xff0c;可直接运行。 2-199基于Ma…

【ArcGIS Pro】完整的nc文件整理表格模型构建流程及工具练习数据分享

学术科研啥的要用到很多数据&#xff0c;nc文件融合了时间空间数据是科研重要文件。之前分享过怎样将nc文件处理成栅格后整理成表格。小编的读者还是有跑不通整个流程的&#xff0c;再来做一篇总结篇&#xff0c;也分享下练习数据跟工具&#xff0c;如果还是弄不了的&#xff0…

2412d,d语言中写汇编

原文 嗨,我只是想共享该要点,它展示了如何在ASM中用D编写你好. D中写汇编非常方便!这是我写的: extern(C) int main() {auto hip "hello D\n".ptr;size_t len 8;//write(1,消息,长度)asm {mov RDX, len;//缓冲长度mov RSI, hip;//消息缓冲mov EDI, 1;//Stdout文描…

VM虚拟机配置ubuntu网络

目录 桥接模式 NAT模式 桥接模式 特点&#xff1a;ubuntu的IP地址与主机IP的ip地址不同 第一部分&#xff1a;VM虚拟机给ubuntu的网络适配器&#xff0c;调为桥接模式 第二部分&#xff1a;保证所桥接的网络可以上网 第三部分&#xff1a;ubuntu使用DHCP&#xff08;默认&…

C++软件设计模式之观察者模式

观察者模式的动机意图 观察者模式&#xff08;Observer Pattern&#xff09;是一种行为型设计模式&#xff0c;它定义了对象之间的一种一对多的依赖关系&#xff0c;使得当一个对象的状态发生改变时&#xff0c;所有依赖于它的对象都能够自动收到通知并进行相应的更新。 动机…

评分模型在路网通勤习惯分析中的应用——启发式搜索(2)

接上文《评分模型在路网通勤习惯分析中的应用——提出问题&#xff08;1&#xff09;》&#xff0c;本文内容主要针对上文提出的问题解决思路&#xff0c;详细讨论每一步骤中的具体处理措施。 4、问题的详细解决过程 4.1、对地图数据进行结构化 地图的本质是一种有向加权图结…

Mysql(MGR)和ProxySQL搭建部署-Kubernetes版本

一、Mysql(MGR) 1.1 statefulSet.yaml apiVersion: apps/v1 kind: StatefulSet metadata:labels:app: mysqlname: mysqlnamespace: yihuazt spec:replicas: 3serviceName: mysql-headlessselector:matchLabels:app: mysqltemplate:metadata:labels:app: mysqlspec:affinity:p…

【C语言】库函数常见的陷阱与缺陷(三):内存分配函数[3]--realloc

C语言中的realloc函数用于重新分配先前分配的内存块的大小,并可能更改其位置。然而,realloc函数的使用也存在一些陷阱与缺陷。 一、功能与常见用法 realloc 函数用于调整之前通过 malloc 或 calloc 分配的内存块的大小。它既可以增加也可以减少内存的大小,具体取决于请求的…

Lecture 17

10’s Complement Representation 主要内容&#xff1a; 1. 10’s 补码表示: • 10’s 补码表示法需要指定表示的数字位数&#xff08;用 n 表示&#xff09;。 • 表示的数字取决于 n 的位数&#xff0c;这会影响具体数值的解释。 2. 举例: • 如果采用 3 位补码&…

【Hackthebox 中英 Write-Up】Web Request | 分析 HTTP 请求和响应

欢迎来到我的writeup分享&#xff01;我希望大家不要只关注结果或答案&#xff0c;而是通过耐心阅读&#xff0c;尝试逆向工程理解背后的运作原理。在这里&#xff0c;你不仅能找到解题的思路&#xff0c;还能学到更多与Hack The Box等平台相关的技术和技巧&#xff0c;期待与你…

linux 点对点语音通话及直播推流实践一: linux USB声卡或耳机 基本配置

inux USB声卡或耳机 基本配置 工具安装查看设备录放音操作录音放音声音配置获取控制信息音量配置本文介绍 linux下alsa声音原件 工具使用方法,包括设备查询、声卡基本配置、录音放音等。 保证 alsa套件可正常操作和配置声卡,是实现SIP语音通话、音视频 采集及推拉流功能的基础…

《优势谈判》——阅读笔记

投入 思想准备&#xff1a;一个谈判是要双赢的&#xff0c;至少需要让对手这么认为&#xff1b;进行一场谈判&#xff0c;需要看到对面是否真的愿意和你谈判 谈判技巧 永远不要接受首次报份&#xff1b;如果对方临时变更了要求&#xff0c;则可以通过立刻要求对方做补偿等方…

PPT画图——如何设置导致图片为600dpi

winr&#xff0c;输入regedit打开注册表 按路径找&#xff0c;HKEY_CURRENT_USER\Software\Microsoft\Office\XX.0\PowerPoint\Options&#xff08;xx为版本号&#xff0c;16.0 or 15.0或则其他&#xff09;。名称命名&#xff1a;ExportBitmapResolution 保存即可&#xff0c;…

高性能网络框架--fstack

【欢迎关注编码小哥&#xff0c;学习更多实用的编程方法和技巧】 Fstack 是一个高性能的网络框架&#xff0c;主要用于构建高性能的网络应用程序&#xff0c;特别是在处理大量并发连接时。它基于 Linux 的 epoll 机制&#xff0c;使用了多线程和事件驱动的编程模型。以下是对 …