- 博客(17)
- 收藏
- 关注
原创 spark-RDD缓存
Spark中RDD的缓存机制与优化策略 摘要:Spark的cache()和persist()操作是提高性能的关键特性,需在RDD创建后立即连续调用才有效。cache()本质是调用persist(MEMORY_ONLY)的简化方法。Spark提供多种存储级别,包括内存、磁盘及序列化选项,默认MEMORY_ONLY性能最优但可能引发OOM,此时可考虑MEMORY_ONLY_SER。不建议使用纯磁盘(DISK_ONLY)或带副本(_2)的级别,除非需要高可用。堆外存储(OFF_HEAP)可减少GC但无数据备份。
2025-08-08 17:06:32
124
原创 spark-Shuffle
Spark的Shuffle过程分为ShuffleWrite和ShuffleRead两个阶段。ShuffleWrite阶段有基于Hash和基于Sort两种实现方式:Hash方式会产生大量小文件,占用较多内存,但实现简单;Sort方式通过索引文件和数据文件减少文件数量,提高IO性能,但增加排序开销。ShuffleRead阶段通过本地或远程方式获取数据,支持内存聚合和排序,并可通过spill机制避免OOM。两种ShuffleWrite方式在ShuffleRead阶段采用相同处理流程,最终对数据进行归并排序。建议在
2025-08-08 16:58:49
55
原创 我的创作纪念日
提示:你过去写得最好的一段代码是什么?提示:当前创作和你的工作、学习是什么样的关系。提示:可以和大家分享最初成为创作者的初心。提示:在创作的过程中都有哪些收获。提示:职业规划、创作规划等。
2025-08-07 09:12:44
460
原创 spark-RDD的依赖关系(宽依赖/窄依赖)
Spark中的RDD依赖分为窄依赖(narrow dependency)和宽依赖(wide dependency)。窄依赖指父RDD的每个分区最多被子RDD的一个分区使用,可分为一对一依赖(如map、filter)和范围依赖(如union)。这种依赖支持高效流水线执行和局部故障恢复。宽依赖则指父RDD分区被多个子RDD分区共享,需要shuffle操作,且故障恢复代价较高。区分两种依赖主要基于执行效率(窄依赖支持本地流水线)和容错性(窄依赖恢复更简单)的考虑。
2025-08-07 09:10:33
60
原创 spark-RDD弹性特性7个方面
摘要:Spark具备多项弹性计算特性:1)自动内存/磁盘存储切换,保障大数据处理效率;2)基于RDD血统(Lineage)的容错机制,通过记录数据更新实现高效恢复;3)Task/Stage自动重试机制,默认4次重试;4)支持检查点(Checkpoint)和持久化(Persist),支持Lazy级缓存;5)采用DAG调度模型,使任务执行与资源管理解耦;6)灵活的数据分片机制(coalesce),支持内存不足时自动落盘。这些特性共同构成了Spark的弹性分布式计算框架,有效处理大规模数据并保障容错能力。
2025-08-06 17:46:09
62
原创 Spark-RDD函数详解
Spark RDD操作摘要 本文详细介绍了Spark RDD的各种转换(Transformation)和行动(Action)操作,主要分为以下几类: 基础转换操作 map:对每个元素执行指定函数 filter:过滤符合条件的元素 flatMap:映射为0或多个元素 mapPartitions:按分区处理数据 sample:随机采样 union/distinct/intersection/subtract:集合操作 键值对转换操作 partitionBy:按分区器重新分区 mapValues/flatMapV
2025-08-06 17:07:46
6393
原创 spark-RDD编程API
摘要: 本文详细介绍了Spark RDD的算子分类及基本操作。RDD算子分为转换(Transformation)和行动(Action)两类:转换操作延迟执行并返回新RDD,如map、filter等;行动操作立即执行并返回结果到驱动程序,如collect、count等。文章还通过示例代码演示了常见的RDD操作,包括map、filter、flatMap、union、join、reduceByKey等转换操作,以及collect、reduce等行动操作。同时介绍了RDD的串联操作、集合转换、聚合排序等实用技巧,为
2025-08-06 16:33:17
301
原创 spark-sparkRDD(RDD原理,RDD编程接口)
摘要: SparkCore的核心思想是通过内存缓存数据集和Lineage机制实现高效容错。RDD(弹性分布式数据集)是Spark的基本抽象,具有不可变、分区、并行计算等特性。RDD的五大属性包括分区列表、计算函数、依赖关系、分区函数(可选)和优先位置(可选)。RDD解决了传统MapReduce迭代计算效率低的问题,支持内存计算和交互式查询。创建RDD的方式包括从Scala集合、外部存储系统(如HDFS)、已有RDD转换等。Spark支持哈希分区和范围分区,优化数据分布以减少网络传输。
2025-08-06 16:15:25
68
原创 spark-spark运行模式&&spark UI界面
Spark运行模式与监控摘要 Spark支持多种运行模式: 本地模式:Local和Local-cluster,用于开发测试 集群模式:Standalone(主从架构)、YARN(生产常用)、Mesos(细粒度资源管理) 云模式:如AWS EC2,支持多种分布式存储系统 任务提交通过spark-submit指定参数(如--master、--deploy-mode等),支持普通模式和高可用模式。YARN模式下分为client和cluster两种部署方式。 监控工具: Spark UI(4040端口):提供job
2025-08-06 16:00:56
112
原创 spark-基础概述
Spark概述摘要: Spark是一个快速、通用的大数据分析引擎,基于内存计算,显著提升了数据处理效率(比Hadoop快100倍)。作为伯克利数据分析栈(BDAS)的核心,它包含Spark SQL、Spark Streaming等子项目,支持批处理、流计算、机器学习等多种场景。Spark通过弹性分布式数据集(RDD)实现高效数据存储与处理,采用DAG执行引擎优化任务调度,避免了MapReduce的磁盘I/O瓶颈。其架构包含Driver(任务调度)、Worker(计算节点)、Executor(任务执行)等角色
2025-08-05 11:34:26
297
原创 Linux-定时crontab/at
Linux定时任务管理工具:crontab与at crontab是Linux系统中用于周期性执行任务的守护进程,通过配置文件实现定时任务管理。主要特点包括: 分为系统任务(/etc/crontab)和用户任务 支持分钟/小时/日/月/周的时间组合 常用命令:crontab -e(编辑)、-l(查看)、-r(删除) 需启动crond服务,可通过service命令管理 at是用于一次性任务执行的工具: 执行格式:at [-f 脚本] 时间 支持多种时间表示法(now+、具体时间等) 通过atd服务管理,使用at
2025-08-05 10:58:36
689
原创 Linux-防火墙
本文总结了CentOS6和7系统中防火墙的常用操作命令。CentOS6使用iptables服务,包含启动/关闭防火墙、查看状态及开放端口等操作。CentOS7改用firewalld服务,提供了systemctl管理命令,包括状态检查、服务启停、开机自启配置等。文章详细介绍了两种系统下开放端口的方法:CentOS6通过iptables规则添加并保存,CentOS7使用firewall-cmd命令永久添加端口。还涵盖了批量开放端口区间、移除端口等进阶操作,以及SELinux的关闭方法。这些命令为系统管理员提供了
2025-08-05 09:10:06
1461
原创 Linux-用户和组
本文介绍了Linux系统中用户和用户组管理的基本操作,包括查看、创建、修改和删除用户及用户组。详细说明了如何通过/etc/passwd和/etc/group文件管理用户信息,使用useradd、groupadd等命令添加用户和组,以及passwd命令设置密码。同时讲解了权限管理,包括chmod修改文件权限和chown修改文件属主。还涉及root用户权限设置、用户切换、环境变量配置等实用技巧。文章提供了从基础到进阶的Linux用户管理完整指南,适合系统管理员参考使用。
2025-08-04 17:57:25
695
原创 Linux-简介
Linux是一套免费的类Unix操作系统Linux是一套免费使用和自由传播的类Unix操作系统,可以任意修改其源代码。Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux操作系统诞生于1991年10月5日.芬兰大学生林纳斯-托瓦兹(Linux Torvalds)和后来陆续加入的众多爱好者共同开发完成。Linux的特点:它是多用户,多任务,丰富的网络功能,可靠的系统安全,良好的可移植性,具有标准兼容性,良好的用户界面,出色的速度性能.
2025-08-04 17:28:06
1704
原创 AI IDE+AI 辅助编程,真能让程序员 “告别 996” 吗?
定义AI IDE和AI辅助编程,列举主流工具如GitHub Copilot、Amazon CodeWhisperer、Tabnine等。核心功能:代码自动补全、错误检测与修复、代码优化建议、自然语言生成代码等。
2025-08-04 16:24:38
193
原创 Linux-常用命令
这篇文章总结了Linux常用命令和vi编辑器的使用方法。主要内容包括: 基础命令:如ls、cd、cp、mv、rm、cat等文件操作命令,以及ps、kill、jobs等进程管理命令。 vi编辑器:详细介绍了vi的三种模式(命令模式、插入模式、底行模式)及其切换方式,常用编辑命令如移动光标、删除、复制粘贴、查找替换等。 文件查看命令:head、tail、more、less等不同场景下的文件查看方式。 系统管理命令:包括磁盘管理(df、du)、文件查找(find)、文本处理(grep、sed)、排序统计(sort
2025-08-04 16:20:35
941
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅