Java 开发者如何绕过 Hadoop 瓶颈,掌握 Spark 高效计算

大数据场景下,Hadoop MapReduce 的串行处理模式已难以应对实时计算需求。本套教程针对 Java 开发者,专门解决从传统 MR 向内存计算框架迁移的痛点。课程不堆砌理论,而是直击 Spark 核心架构与 RDD 编程模型,帮助你理解为何它能通过内存计算和延迟容错机制,将数倍百倍地提升数据处理效率。如果你日常面临日志清洗、离线数仓构建或实时指标计算性能不足的难题,这门课能帮你建立起基于内存的计算思维,摆脱“等待任务跑完”的焦虑。

从本地调试到集群部署,零配置上手企业级环境

很多教程只讲 API 却忽略环境搭建,导致你学完代码却跑不起来。本资料包详细梳理了 Spark 在本地(Local)、Yarn 和 Standalone 三种模式下的部署差异。通过具体的演示环节,你会清晰看到 Client 与 Cluster 两种执行模式的适用场景:本地模式适合代码调试与学习验证,而 Yarn 模式则是企业生产环境的主流选择。课程重点讲解了如何在 Yarn 上提交应用、查看历史服务以及排查资源不足等常见问题,确保你能顺利将本地编写的代码迁移到真实的集群环境中运行,避免“有代码无环境”的尴尬。

深度掌握 RDD 核心机制,构建可落地的数据处理流

Spark 的灵魂在于 RDD,但单纯理解概念无法写出好代码。本部分内容通过内存与磁盘两种数据源的对接,手把手带你实现 RDD 对象的构建。你将深入理解 RDD 的分区原理、分区数量设定策略以及数据在节点间的分配逻辑,这是后续优化算子性能的关键。课程通过具体的代码实操,演示了从原始文件读取到构建分布式数据集的全过程,并介绍了 RDD 的转换与行动算子体系。学完这部分,结合提供的练习代码,你可以独立编写出处理大规模数据流(如日志分析、ETL 转换)的完整脚本,不再依赖现成的模板,具备独立开发 Spark 应用的能力。

课程目录

课程目录155 集
  • 001.Spark-教程简介.mp4
  • 002.Spark-文件结构-介绍.mp4
  • 003.Spark-基础概念-介绍-分布式.mp4
  • 004.Spark-基础概念-介绍-计算.mp4
  • 005.Spark-基础概念-介绍-分布式基础架构.mp4
  • 006.Spark-基础概念-介绍-框架.mp4
  • 007.Spark-基础概念-介绍-Spark和MR的关系.mp4
  • 008.Spark-介绍.mp4
  • 009.Spark-部署方式-介绍.mp4
  • 010.Spark-解压后的文件结构.mp4
  • 011.Spark-部署环境-Local.mp4
  • 012.Spark-部署环境-Local-演示.mp4
  • 013.Spark-部署环境-Yarn-演示.mp4
  • 014.Spark-部署环境-Yarn-历史服务.mp4
  • 015.Spark-部署环境-Yarn-两种执行方式Cluster和Client.mp4
  • 016.Spark-部署环境-几种模式的对比.mp4
  • 017.Spark-数据结构-说明.mp4
  • 018.Spark-RDD-介绍.mp4
  • 019.Spark-RDD-数据处理流程简介.mp4
  • 020.Spark-RDD-计算原理.mp4
  • 021.Spark-RDD-计算原理-补充.mp4
  • 022.Spark-RDD-代码-环境的准备.mp4
  • 023.Spark-RDD-代码-对接内存数据源构建RDD对象.mp4
  • 024.Spark-RDD-代码-对接磁盘数据源构建RDD对象.mp4
  • 025.Spark-RDD-代码-RDD的理解.mp4
  • 026.Spark-RDD-代码-RDD的分区.mp4
  • 027.Spark-RDD-代码-内存数据源-分区数量的设定.mp4
  • 028.Spark-RDD-代码-磁盘文件数据源-分区数量的设定.mp4
  • 029.Spark-RDD-代码-内存数据源-分区数据的分配.mp4
  • 030.Spark-RDD-代码-磁盘文件数据源-分区数据的分配.mp4
  • 031.Spark-RDD-代码-磁盘文件数据源-分区数据的分配-演示.mp4
  • 033.Spark-RDD-方法-介绍.mp4
  • 034.Spark-RDD-方法-方法的两大类-转换和行动.mp4
  • 035.Spark-RDD-方法-数据处理的两大类-单值和键值.mp4
  • 036.Spark-RDD-方法-转换-map.mp4
  • 037.Spark-RDD-方法-转换-map-1.mp4
  • 038.Spark-RDD-方法-转换-map-2.mp4
  • 039.Spark-RDD-方法-转换-map-3.mp4
  • 040.Spark-RDD-方法-转换-map-4.mp4
  • 041.Spark-RDD-方法-转换-filter.mp4
  • 042.Spark-RDD-方法-转换-flatMap.mp4
  • 043.Spark-RDD-方法-转换-flatMap-1.mp4
  • 044.Spark-RDD-方法-转换-groupBy.mp4
  • 045.Spark-RDD-回顾-原理.mp4
  • 046.Spark-RDD-回顾-方法.mp4
  • 047.Spark-RDD-Shuffle.mp4
  • 048.Spark-RDD-Shuffle-原理.mp4
  • 049.Spark-RDD-Shuffle-原理-补充.mp4
  • 050.Spark-RDD-Shuffle-演示.mp4
  • 051.Spark-RDD-方法-distinct.mp4
  • 052.Spark-RDD-方法-sortBy.mp4
  • 053.Spark-RDD-方法-KV类型数据介绍.mp4
  • 054.Spark-RDD-方法-KV类型数据补充.mp4
  • 055.Spark-RDD-方法-KV-mapValues.mp4
  • 056.Spark-RDD-方法-KV-wordCount.mp4
  • 057.Spark-RDD-方法-KV-groupByKey.mp4
  • 058.Spark-RDD-方法-KV-reduceByKey.mp4
  • 059.Spark-RDD-方法-KV-sortByKey.mp4
  • 060.Spark-RDD-方法-KV-reduceByKey和groupByKey的区别.mp4
  • 061.Spark-RDD-WordCount程序在环境中运行.mp4
  • 062.Spark-RDD-转换方法的回顾.mp4
  • 063.Spark-RDD-行动算子-介绍.mp4
  • 064.Spark-RDD-行动算子-collect.mp4
  • 065.Spark-RDD-行动算子-collect-补充.mp4
  • 066.Spark-RDD-行动算子-其他方法-1.mp4
  • 067.Spark-RDD-行动算子-其他方法-2.mp4
  • 068.Spark-RDD-行动算子-其他方法-3.mp4
  • 069.Spark-RDD-行动算子-Driver端和Executor端数据传输.mp4
  • 070.Spark-RDD-序列化-1.mp4
  • 071.Spark-RDD-序列化-2.mp4
  • 072.Spark-案例-数据格式说明.mp4
  • 073.Spark-案例-需求介绍.mp4
  • 074.Spark-案例-需求分析.mp4
  • 075.Spark-案例-需求设计.mp4
  • 076.Spark-案例-开发原则.mp4
  • 077.Spark-案例-代码实现-1.mp4
  • 078.Spark-案例-代码实现-2.mp4
  • 079.Spark-案例-代码实现-3.mp4
  • 080.Spark-案例-代码实现-4.mp4
  • 081.Spark-RDD-KRYO序列化框架.mp4
  • 082.Spark-RDD-依赖关系-介绍.mp4
  • 083.Spark-RDD-依赖关系-原理.mp4
  • 084.Spark-RDD-依赖关系-血缘关系.mp4
  • 085.Spark-RDD-依赖关系-依赖关系.mp4
  • 086.Spark-RDD-依赖关系-宽窄依赖关系.mp4
  • 087.Spark-RDD-依赖关系-作业,阶段和任务的关系.mp4
  • 088.Spark-RDD-依赖关系-任务的数量.mp4
  • 089.Spark-RDD-依赖关系-分区的数量.mp4
  • 091.Spark-RDD-持久化-cache.mp4
  • 092.Spark-RDD-持久化-persist.mp4
  • 093.Spark-RDD-持久化-checkpoint.mp4
  • 094.Spark-RDD-持久化-shuffle算子的持久化.mp4
  • 095.Spark-RDD-分区器.mp4
  • 096.Spark-RDD-自定义分区器.mp4
  • 097.Spark-两个案例.mp4
  • 098.Spark-第一个案例问题原因.mp4
  • 099.Spark-广播变量.mp4
  • 100.Spark-RDD的局限性.mp4
  • 101.SparkSQL-介绍.mp4
  • 102.SparkSQL-环境对象的封装.mp4
  • 103.SparkSQL-模型对象的封装.mp4
  • 104.SparkSQL-SQL的操作.mp4
  • 105.SparkSQL-不同场景下环境对象的转换.mp4
  • 106.SparkSQL-不同场景下模型数据对象的转换.mp4
  • 107.SparkSQL-使用SQL的方式来访问数据模型.mp4
  • 108.SparkSQL-使用DSL的方式来访问数据模型.mp4
  • 109.SparkSQL-自定义udf函数对象.mp4
  • 110.SparkSQL-自定义udf函数的底层实现原理.mp4
  • 111.SparkSQL-自定义udaf函数的底层实现原理.mp4
  • 112.SparkSQL-自定义udaf函数的实现步骤-1.mp4
  • 113.SparkSQL-自定义udaf函数的实现步骤-2.mp4
  • 114.SparkSQL-自定义udaf函数的实现步骤-回顾.mp4
  • 115.SparkSQL-数据源-CSV.mp4
  • 116.SparkSQL-数据源-JSON.mp4
  • 117.SparkSQL-数据源-Parquet.mp4
  • 118.SparkSQL-数据源-JDBC.mp4
  • 119.SparkSQL-数据源-Hive.mp4
  • 120.SparkSQL-案例-数据准备.mp4
  • 121.SparkSQL-案例-数据准备-补充.mp4
  • 122.SparkSQL-案例-需求分析.mp4
  • 123.SparkSQL-案例-需求设计.mp4
  • 124.SparkSQL-案例-SQL实现-1.mp4
  • 125.SparkSQL-案例-SQL实现-2.mp4
  • 126.SparkSQL-案例-SQL实现-3.mp4
  • 127.SparkSQL-案例-SQL实现-4.mp4
  • 128.SparkSQL-案例-SQL实现-5.mp4
  • 129.SparkSQL-案例-SQL实现-6.mp4
  • 130.SparkSQL-案例-SQL实现-7.mp4
  • 131.SparkSQL-案例-SQL实现-8.mp4
  • 132.SparkSQL-案例-SQL实现-9.mp4
  • 133.SparkStreaming-介绍.mp4
  • 134.SparkStreaming-原理.mp4
  • 135.SparkStreaming-原理-补充.mp4
  • 136.SparkStreaming-课件梳理.mp4
  • 137.SparkStreaming-环境准备.mp4
  • 138.SparkStreaming-网络(Socket)数据流处理演示.mp4
  • 139.SparkStreaming-Kafka数据流处理演示.mp4
  • 140.SparkStreaming-DStream方法介绍.mp4
  • 141.SparkStreaming-DStream输出方法介绍.mp4
  • 142.SparkStreaming-窗口操作.mp4
  • 143.SparkStreaming-回顾-1.mp4
  • 144.SparkStreaming-回顾-2.mp4
  • 145.SparkStreaming-关闭-1.mp4
  • 146.SparkStreaming-关闭-2.mp4
  • 147.SparkStreaming-关闭-3.mp4
  • 148.Spark-内核-运行流程-1.mp4
  • 149.Spark-内核-运行流程-2.mp4
  • 150.Spark-内核-运行流程-3.mp4
  • 151.Spark-内核-核心对象.mp4
  • 152.Spark-内核-核心对象通信流程-Netty.mp4
  • 153.Spark-内核-Task任务的调度执行.mp4
  • 154.Spark-内核-Shuffle底层的实现原理-1.mp4
  • 155.Spark-内核-Shuffle底层的实现原理-2.mp4
  • 156.Spark-内核-内存管理.mp4
  • 157.Spark-内核-内存管理-补充.mp4