Spark+Hadoop学习
文章平均质量分 90
程序Demo日记
攀登者,分享在公司中用到的技术,学到的技术,复习温习以前的知识点,学习前沿技术,深扒技术底层原理,多看计算机网络和操作系统,了解计算机,并且在实战中合理使用技术,明白技术原理和技术的实现过程。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
皮尔逊算法,一文弄清个性化推荐的大腿
本文用生动形象的方式解释了皮尔逊相关系数的核心思想。通过"宽容哥"和"犀利姐"的电影评分案例,说明皮尔逊系数能有效去除用户间的评分尺度差异,专注于捕捉品味的相对趋势。文章详细拆解了公式的分子(偏好度协方差)和分母(归一化处理),并指出该系数的局限性(如对数据稀疏性敏感、仅反映线性关系等)。最后强调理解算法背后的直觉思想比单纯记忆公式更重要,皮尔逊系数的本质是"在比较前先去除个体偏见",这一思想在机器学习中具有广泛适用性。原创 2025-07-16 15:07:37 · 1022 阅读 · 0 评论 -
基于 Spark MLlib 的推荐系统实现
基于 Spark MLlib 的推荐系统实现 本文解析了使用Spark MLlib构建推荐系统的关键技术与优化方法。首先介绍了Spark MLlib的核心框架演进,重点对比了RDD和DataFrame两种API的特性及其在2025年的最新发展(如深度学习集成、AutoML支持)。其次深入剖析了协同过滤算法原理及前沿趋势(如神经网络协同过滤、图神经网络)。最后提供了优化的Java代码实现,通过分布式操作避免性能瓶颈。全文从框架、算法到实践三个维度,为构建高效推荐系统提供了全面指导。原创 2025-07-09 17:43:31 · 955 阅读 · 0 评论 -
Spark简介脑图
Apache Spark是一个快速、通用的大规模数据处理框架。它以RDD为核心数据结构,支持内存计算,比Hadoop MapReduce快100倍。Spark生态系统包含Spark SQL、Spark Streaming、MLlib和GraphX四大组件,支持批处理、流处理、机器学习和图计算。其架构包括Driver、Cluster Manager和Executor,通过DAG调度实现高效计算。Spark提供RDD、DataFrame和Dataset三级数据抽象,并采用智能内存管理机制。优化要点包括数据序列化原创 2025-06-15 15:34:47 · 762 阅读 · 0 评论 -
Spark核心概念与DAG执行原理笔记
本文系统梳理了Spark的核心概念与技术原理,重点解析了RDD特性、DAG执行机制和Stage划分规则。主要内容包括:1) RDD的五大核心特性及操作分类;2) DAG构建流程与窄/宽依赖判断标准;3) 基于Shuffle的Stage边界划分原理;4) Spark作业执行架构及各组件交互;5) 任务并行度与分区关系;6) 广播变量和累加器的应用场景。通过Mermaid图表直观展示了Spark的底层运行机制,为性能优化提供了理论基础,并简要概述了Spark 4.0的新特性发展方向。原创 2025-06-15 15:30:07 · 1276 阅读 · 0 评论 -
Spark DAG、Stage 划分与 Task 调度底层原理深度剖析
本文深入剖析了Spark的DAG构建与Stage划分机制,以及Task调度的底层原理。主要内容包括:1) DAG构建过程基于RDD的转换操作形成逻辑执行计划,通过行动操作触发计算;2) Stage划分依据RDD依赖类型,窄依赖可管道化执行,宽依赖成为Stage边界;3) Task数量主要由RDD分区数决定,受Shuffle配置、数据源特性等影响。文章详细解析了窄/宽依赖的特点及Stage划分逻辑,并分析了Task并行度的关键影响因素,为Spark性能优化提供理论基础。原创 2025-06-14 19:27:42 · 1914 阅读 · 0 评论 -
SparkUI依赖问题解决方法
摘要:用户遇到Spark UI运行时错误NoClassDefFoundError,提示缺少org.glassfish.jersey.servlet.ServletContainer类。分析表明未包含Jersey Servlet集成模块,需要添加jersey-container-servlet依赖。解决方案:在pom.xml中添加Jersey 3.1.10版本的Servlet容器依赖,并确保jakarta.servlet-api保持5.0.0版本。建议后续检查依赖树解决潜在冲突,并处理SLF4J日志绑定问题。原创 2025-06-14 18:14:18 · 1401 阅读 · 0 评论 -
解决Spark4.0.0依赖问题
本文针对Apache Spark 4.0.0运行中的常见问题提供了解决方案。主要问题包括POM依赖冲突、JDK版本不兼容(需JDK 17)以及Servlet API兼容性问题(如SingleThreadModel类缺失)。解决方案包括:在pom.xml中明确指定Java 17版本,设置Spark核心和SQL模块为provided范围,排除冲突的Servlet API依赖并手动引入5.0.0版本,配置Maven编译和执行插件,以及添加必要的测试依赖和--add-opens参数解决模块访问限制。这些调整确保了S原创 2025-06-14 18:08:04 · 1748 阅读 · 0 评论 -
JuniversalCharde-Java实现自动编码转换全解
以下是代码中涉及的所有知识点,附上详细说明。这个代码展示了如何用 Juniversalchardet 检测文件编码,用 Apache POI 读取 Excel 文件。注释里详细解释了每一步的目的和逻辑,用大白话把技术要点讲得明明白白。希望这能帮您彻底搞懂代码的原理!如果还有啥疑问,随时告诉我哦!s。原创 2025-03-14 16:49:49 · 1167 阅读 · 0 评论 -
距离算法-----如何在Java中使用,使用场景有什么
Levenshtein 距离(也叫编辑距离)是一种衡量两个字符串之间相似度的算法。它计算的是将一个字符串转换为另一个字符串所需的最少编辑操作次数。插入:在字符串中插入一个字符。删除:从字符串中删除一个字符。替换:将字符串中的一个字符替换为另一个字符。每种操作计为一步,Levenshtein 距离就是完成转换所需的最小步数。距离越小,两个字符串越相似。将方法放入你的 Java 项目中,可以作为工具函数使用。Levenshtein 距离是一个简单却强大的算法,通过动态规划高效计算两个字符串之间的编辑距离。原创 2025-03-07 10:30:00 · 864 阅读 · 0 评论 -
Java中,spark提供的Dataset详解
Java和scala的Dataset的创建方式有所不同,因为Java的API和类型系统与Scala不同。比如,Scala中的隐式转换和case类在Java中并不适用,需要用Java Bean或Encoders来明确指定类型。基本操作部分,比如show()和printSchema(),这些方法在Java中应该是一样的,因为Spark的DataFrame/Dataset API在Scala和Java中是统一的。我们可能需要知道如何在Java中调用这些方法,尤其是链式调用时是否需要分号。原创 2025-02-28 09:48:28 · 1808 阅读 · 0 评论 -
Java实现文件解压上传和自动分类的全流程,看完不明白直接喷——小妹和天狗的爱情故事
看不懂吗,no,看得懂吗,no,其实这就是一个基于SpringMVC的一个大体架构图,我直接甩出来看不懂是很正常的,看懂了说明你跟我是同步在线的,那么开始吧,我在给个图大家就应该看得懂了。那么昨晚和主管聊了之后,我的大脑就浮现大量的思维架构图,脑图,还有实现方法,但是奈何太困了,就告了段落,那么接下来,我将会吧我的思维架构脑图通过一个架构图,让各位能够先直观的看到。这也就是一整个文件上传分类和解压的过程了,大家有需要源码的callme,我会发给大家哦,今天就到这了,溜了溜了。然后把和男生的照片全删了。原创 2025-02-27 21:05:54 · 1146 阅读 · 0 评论 -
那些年,业务经理提出的需求——通过配置文件实现模板的清洗
配置驱动的处理是指通过外部配置文件(而不是代码)来描述程序的行为。(什么意思呢,比如我们在打王者,我们可以通过外部的手柄来操控手机的操作,那么当我们想要更换键位的时候,我们可以直接通过更换手柄的操作顺序就可以实现这个功能了)。数据结构的定义:比如列名映射规则。(我们王者的手柄键位对应的王者键位)业务规则:比如如何识别文件类型和处理模板扩展性支持:当有新的文件类型或逻辑时,只需要更新配置文件,而不需要修改代码。通过上述方法,我们可以用一个配置文件实现自动配置的Java程序。原创 2025-02-26 10:09:50 · 1214 阅读 · 0 评论 -
Spark清洗操作常见命令
通过以上方法和示例,您可以高效地在 Spark Java 中实现数据清洗。根据具体业务需求组合使用这些操作,并合理应用性能优化策略。原创 2025-02-22 17:33:50 · 586 阅读 · 0 评论 -
DataExecutor的架构原理
重新调度相关Task到其他Executor。标记该Executor上所有Task失败。:通过集群管理器重启Driver。划分Stage(宽依赖边界)Driver检测到心跳丢失。申请Executor资源。Executor失效。原创 2025-02-21 23:04:16 · 999 阅读 · 0 评论 -
从零开始,如何设计一个完美的数据中台
我们先来看下网易严选的数据体系(上图),就更清楚数据中台的定位了。 数据中台的主要作用在于将企业内部所有数据统一处理形成标准化数据,挖掘出对企业最有价值的数据,构建企业数据资产库,对内对外提供一致的、高可用大数据服务。原创 2025-02-21 10:45:10 · 2512 阅读 · 0 评论 -
大数据Spark传输的方法
上传时,传统的直接 HTTP 上传方式会存在等问题。原创 2025-02-19 11:55:28 · 532 阅读 · 0 评论 -
Spark中Dataset方法详解
通过以上方法和示例,您可以高效地在 Spark Java 中实现数据清洗。根据具体业务需求组合使用这些操作,并合理应用性能优化策略。原创 2025-02-19 09:35:47 · 754 阅读 · 0 评论 -
Java体系开发准则,成为优秀程序员必备的代码素养
将系统的不同功能模块分开,让每个处理器专注于其业务逻辑。原创 2025-02-18 13:58:16 · 1009 阅读 · 0 评论 -
Spark中的Schema是什么
那么在Java中的Schema有什么作用呢,比如在Spark中,Schema定义了数据的结构,包括字段名,类型和是否为空。首先在数据库中,Schema通常指数据库的结构,包括表,字段,类型等。在Java中,更多是在处理数据框架(Apache Spark)时遇到,特别是StructType这样的类。在读取数据(如 CSV、JSON)时,Schema 会校验数据是否符合预期结构,防止脏数据导致的错误。什么是Schema,Java中Schema的作用,以及StructType的用途。原创 2025-02-17 21:13:16 · 710 阅读 · 0 评论 -
Spark中Dataset和DataFrame的区别
ds.filter(_.age > 30).select(_.name) // 类型信息辅助物理优化。ds.map(_.age * 2) // 比df.select($"age" * 2)更高效。df.filter("age > 30") // 字符串表达式,编译时不检查列是否存在。ds.filter(_.age > 30) // 编译时检查age字段是否存在。// Dataset创建(需定义case class)// DataFrame转Dataset。// Dataset转DataFrame。原创 2025-02-17 18:32:55 · 986 阅读 · 0 评论 -
Spark中RDD模式下Driver和Excutor架构原理
spark.executor.instances = num_executors - 1 # 保留1核心给Driver。spark.sparkContext.setCheckpointDir("hdfs://dir") // RDD检查点。executor_memory = 16 # 每个Executor内存(GB)executor_cores = 4 # 每个Executor核心数。# 典型配置(每个Executor)原创 2025-02-17 00:39:02 · 1361 阅读 · 0 评论 -
什么是DAG,为何Spark依靠DAG实现了大数据霸主地位
边(Edge)具有方向(如A→B)原创 2025-02-16 22:24:42 · 2472 阅读 · 0 评论 -
HadoopMapReduce和Spark究竟存在什么差异
注:HDFS全程Hadoop Distributed File System,它是专门为大数据存储设计的分布式文件系统,它设计的目标是有三个,1是超大规模存储,它的单个集群可扩展到PB级 2.具有高容错性,硬件的故障视为常态而非异常,3.流式数据访问:优化数据吞吐量而非低延迟(适合批量处理而非实时访问)1.在Map阶段中,它执行的操作是:读取HDFS数据 ----->本地计算------>写本地磁盘。3.在Reduce阶段:拉取数据 ---->聚合计算------>写HDFS。原创 2025-02-16 21:41:21 · 1280 阅读 · 0 评论
分享