- 博客(77)
- 收藏
- 关注
原创 如何避免map算子导致的OOM异常?
OOM 异常通常由数据倾斜、内存管理不当或闭包捕获大对象引起。通过合理分区、分批处理、广播变量和内存调优等方法,可以有效避免 Map 算子导致的 OOM。Map 算子处理的数据会按照分区(Partition)并行执行。如果单个分区数据量过大,可能导致内存溢出。Map 算子中的闭包可能捕获外部大对象,导致每个 Task 都复制一份大对象到内存中。Map 算子处理的数据可能全部加载到内存中。如果数据量超过内存限制,会导致 OOM。
2025-05-13 14:35:43
460
原创 列举一些map算子的实际应用案例
减少资源开销)和数据倾斜问题。对于结构化数据,优先使用 DataFrame 的内置函数替代。在实际应用中,需注意性能优化(如使用。以获得更好的优化效果。
2025-05-13 14:34:29
287
原创 在使用map算子时,有哪些需要注意的点?
算子需要结合具体场景,权衡性能和代码简洁性。在处理结构化数据时,优先选择 DataFrame API 以获得更好的优化效果。
2025-05-13 14:33:17
671
原创 详细介绍一下Spark的map算子
等算子优化性能,是编写高效 Spark 应用的关键。在处理结构化数据时,优先使用 DataFrame API 以获得更好的优化效果。是 Spark 中最基础的转换算子,适用于对数据集的每个元素进行简单转换。理解其惰性执行和分布式特性,结合。DataFrame 是结构化数据,直接使用。
2025-05-13 14:30:51
478
原创 详细介绍一下Spark的转换算子和行动算子
行动算子用于触发实际计算,并返回结果或将数据输出到外部系统。调用行动算子时,Spark 会将之前的转换算子组成 DAG(有向无环图),并提交到集群执行。(Lazy Evaluation),即调用转换算子时不会立即执行计算,而是记录计算逻辑(Lineage),直到遇到行动算子才触发实际计算。理解转换算子和行动算子的区别,是编写高效 Spark 应用的关键。转换算子用于创建新的 RDD 或 DataFrame,其特点是。
2025-05-13 14:29:36
597
原创 如何调优Apache Spark的性能?
Spark 性能调优是一个系统性工程,需要结合具体业务场景和数据特征进行针对性优化。通过以上策略,通常可以将 Spark 应用的性能提升数倍甚至数十倍。
2025-05-13 14:27:42
742
原创 Apache Spark的常用算子和函数
将 RDD 的所有元素收集到 Driver 端,慎用(可能导致 OOM)。去重,返回元素唯一的 RDD(可能触发 Shuffle)。对 DStream 的每个 RDD 应用转换函数。对两个 KV 格式的 RDD 进行内连接。对 RDD 中的每个元素应用函数。对 RDD 的每个元素执行函数。条件的元素,返回新的 RDD。将 RDD 保存为文本文件。,再将结果展平,常用于分词。合并两个 RDD,不去重。返回 RDD 的元素个数。聚合 RDD 中的元素。(常用于输出到外部系统)。窗口内按 key 聚合。
2025-05-13 14:26:07
826
原创 Apache Spark的架构和工作原理
Spark 通过内存计算、DAG 调度、RDD 抽象和弹性资源管理,实现了高效、通用的大数据处理。其架构设计使它能够轻松处理批处理、流处理、机器学习等多种场景,成为大数据领域的核心技术之一。,存储和执行内存可动态共享,提高内存利用率。Spark 1.6 后引入。
2025-05-13 13:47:25
527
原创 Spark集群搭建-Standalone
9.启动SPARK集群。进入到hadoop100机器,切换目录到/opt/module/spark-standalone/sbin下,运行命令 ./start-all.sh。进入/opt/module/把解压的内容重命名一下,mv spark-3.1.1-bin-hadoop3.2/ spark-standalone。注意,这里不要省略./,它表示的是当前目录下的start-all命令,如果省略了./,它就会先去环境变量PATH中指定的目录来找这个命令。
2025-05-12 11:19:37
231
原创 finalshell的配置
我们在从本机开始去连接虚拟机时,都是通过ip地址来连接的,不方便。我们可以通过hostname的方式来访问。5. 找到刚才建立的连接,点击连接。弹层出现SSH安全警告,选择接受并保存。主机:192.168.10.100,或者是配置hosts之后的主机名。1. 点击开始安装,安装到D盘。安装目录没有中文,没有空格。输入对应主机的用户名密码。2. 启动finalshell,新建。这个文件是一个没有后缀名的文本文件。2. 使用ping 命令来检查。1. 修改hosts文件。来,我们一起操作一下。
2025-05-12 11:19:00
346
原创 RDD算子的基本介绍
行动操作(Actions):这类操作会触发 RDD 的计算,并返回结果或把结果保存到外部存储中,例如count、collect、take、saveAsTextFile等。通过 RDD,用户可以方便地进行数据处理和分析,充分利用集群的计算资源,提高数据处理的效率和质量。分区管理:RDD 被划分为多个分区,每个分区可以存储在不同的节点上,分区的数量决定了 RDD 的并行度。分布式:RDD 可以分布在多个节点上进行处理,能够处理大规模的数据,这些数据可以存储在不同的服务器上,通过并行计算来提高处理效率。
2025-05-12 11:18:19
138
原创 hadoop的运行模式
在一台机器上模拟出 Hadoop 分布式系统的各个组件,各个组件在逻辑上是分离的,但是都运行在同一台物理机器上,以此来模拟分布式环境。我们在前面的课中把hadoop100上安装了java,hadoop这个两个软件,那我们要如何才能把对于的文件拷贝到hadoop101上去?其中,第1项我们在之前克隆虚拟机的环节中已经完成了。我们上一节课使用的就是本地运行模式hadoop100。如果要拷贝的是文件夹,就把文件夹下的内容都拷贝。(2)$pdir/$fname: 要拷贝的文件路径/名称。
2025-05-12 11:17:14
309
原创 配置Hadoop 集群—免密登陆
所以,对于hadoop100来说,它要生成公钥,并拷贝到hadoop100, hadoop101, hadoop102上去。我们希望达成的目标是:希望用户在hadoop100登录到hadoop101时,hadoop101不需要输入密码。hosts文件中的主机名和ip地址是否与finalshell中的连接的主机名以及对应的虚拟机上的ip地址一致。(4)在hadoop100上,输入ssh hadoop101命令,看看是否可以免密登录?例如: 在hadoop100上,也需要去设置针对它自己的免密登录。
2025-05-12 11:16:34
437
原创 配置Hadoop 集群—配置历史和日志服务
由于任务是在具体的节点上运行的,所以运行日志也是产生在具体的节点上,但是我们希望应用完成以后,将程序运行日志信息上传到HDFS系统上,这样就可以方便的查看到程序运行详情,方便开发调试。但是,请注意,在哪一台上配置了,就应该在哪一台上去启动。和之前的配置一样,我们需要把这个更新之后的yarn-site.xml文件同步到其他的机器。在hadoop的安装目录下,打开mapred-site.xml,并在该文件里面增加如下两条配置。请注意,你在配置的时候指定哪个节点是历史服务器,就在哪里启动,请不要搞错了。
2025-05-12 11:15:42
344
原创 HDFS概述
其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色。随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统。HDFS中的文件在物理上是分块存储(Block),块的大小可以通过配置参数(dfs.blocksize)来规定,默认大小是128M。(1)文件上传 HDFS 的时候,Client 将文件切分成一个一个的 Block,然后进行上传;
2025-05-12 11:14:59
282
原创 ETL介绍
它是指对采集到的原始数据进行预处理,以去除错误、重复、不完整或不一致的数据,使数据符合分析要求的过程。对于reduce函数来说,它的输入参数是:<刷选后的每一行的内容,[null,null,...]>,对于我们的需求来说,并不需要这个阶段: 没有汇总的需求,直接使用Map的结果。map阶段:按行读入内容,对内容进行检查,如果字段的个数少于等于11,就删除这条日志(不保留)去除日志中字段个数小于等于11的日志内容。<偏移量,每一行的内容> → <刷选后的没一行的内容,null>// 5 设置输入和输出路径。
2025-05-12 11:14:16
357
原创 序列化与反序列化
序列化的时候,它会自动被调用,将一个内存中的对象,序列化成为一个字节序列。如果序列化的属性不是Hadoop的序列化类型,就要调用相应的方法把它进行序列化。Java的序列化是一个重量级序列化框架(Serializable),一个对象被序列化后,会附带很多额外的信息(各种校验信息,Header,继承体系等),不便于在网络中高效传输。下面我们来看一个例子:通过代码来定义一个类,并创建它的一个对象,把这个对象保存到文件中(序列化),然后再写代码读取这个文件并还原回来。// 反序列化:将字节序列转换为内存中的对象。
2025-05-12 11:13:08
392
原创 2. 如何在idea中写spark程序。
3. 编写Spark代码:创建Java/Scala类,导入Spark相关包,编写逻辑(如创建 SparkSession 、处理数据)。1. 创建Maven/Java项目:打开IDEA,新建项目,选择Maven或Java项目,配置项目信息。5. 运行/调试:直接在IDEA中运行主类,或通过 spark-submit 命令提交JAR包。注意:依赖版本需与集群Spark版本一致,Scala项目需配置Scala SDK。- 集群运行:打包项目为JAR,提交到集群(需配置集群环境)。
2025-05-07 15:56:21
179
原创 1. 如何搭建spark yarn 模式的集群集群。
其中,JAVA_HOME 是 Java 安装路径,HADOOP_CONF_DIR 是 Hadoop 的配置目录,SPARK_MASTER_HOST 为主节点的主机名或 IP 地址,SPARK_MASTER_PORT 是主节点的端口号。按照以上步骤操作,你就可以成功搭建基于 YARN 模式的 Spark 集群。在主节点和从节点上下载所需版本的 Spark 并解压。上述命令会在 YARN 模式下运行一个计算圆周率的 Spark 作业。此命令会启动主节点和从节点的 Spark 服务。
2025-05-07 15:53:41
323
原创 hadoop 集群的常用命
启动 Hadoop 集群:通常需要依次启动 HDFS 和 YARN。停止 Hadoop 集群:同样依次停止 HDFS 和 YARN。查看 HDFS 文件系统根目录下的文件和目录。查看 YARN 上正在运行的应用程序。1. Hadoop 集群常用命令。杀死 YARN 上的某个应用程序。从 HDFS 下载文件到本地。将本地文件上传到 HDFS。在 HDFS 上创建目录。
2025-03-31 19:48:37
165
原创 2. mapreduce的工作原理
洗牌:将 Map 任务输出的中间键值对按照键的哈希值分发到不同的 Reduce 任务。例如,在单词计数任务中,Reduce 函数会将相同单词的所有值相加,得到该单词的总出现次数。输入数据 --> 输入分片 --> Map任务 --> 中间键值对 --> 洗牌和排序 --> Reduce任务 --> 输出结果。分区:Map 任务会根据键对中间键值对进行分区,以便将相同键的数据发送到同一个 Reduce 任务进行处理。排序:在每个 Reduce 任务接收到数据后,会对数据按照键进行排序,以便后续的聚合操作。
2025-03-31 19:45:27
308
原创 虚拟机IP配置
这里要注意一下:VMware net work Adpater VMnet8是安装了Vm这个软件之后会自动产生的。重启的命令是reboot,检查是否能Ping通外网。注意:这里的第三个部分的10并不是固定的,我们自己可以约定,但是约定之后就要固定下来。(1) 修改主机名称。让所有的VM配置的虚拟机使用NAT时,它们的网段都是一致的。修改完成之后,esc退出编辑模式, :wq 保存退出。(3) 最后,关闭服务器的防火墙。三、设置虚拟机hadoop100的IP。具体设置为:进入虚拟机,修改对应的IP。
2025-03-03 19:46:17
137
原创 3.vi的基本使用
%s/old/new/g:替换全文中的所。:s/old/new/g:替换当前行的所。是Linux系统中常用的文本编辑器,以。:s/old/new:替换当前行的第一。filename:打开或创建文件。命令模式:刚进入vi时的模式,可以。行模式,可以执行保存、退出等操作。插入模式:按1进入插入模式,可以。末行模式:在命令模式下按:进入未。/pattern:查找指定模式。在当前行下方插入新行并进入。键退出插入模式,返回命令模。删除从光标位置到下一个单。:wq:保存并退出。
2025-02-25 13:24:53
248
原创 2.Linux基本命令
yum install <package>:安。ifconfig:查看网络接口信息。touch:创建空文件或更新文件时。yum:CentOS的包管理工具。yum update:更新所有软件。free-h:显示内存使用情况。chmod:修改文件或目录权限。chown:修改文件或目录的所有。chgrp:修改文件或目录的所属。mv:移动或重命名文件或目录。df -h:显示磁盘使用情况。top:实时显示系统进程信息。tail:查看文件结尾部分。ping:测试网络连接。2.Linux基本命令。1s:列出目录内容。
2025-02-25 13:23:37
115
原创 1.如何安装vm
选择“Install CentOS”并按照提示进。(ISO)”,并选择下载的CentOsISO。打开VMware Workstation。访问CentOS官网下载CentOS的。选择操作系统类型为“Linux”,版本。Player,点击“创建新虚拟机”。o启动虚拟机,进入CentOS安装界。访问VMware官网下载适合你操作。运行下载的安装程序,按照提示完。设置虚拟机的名称和存储位置。设置语言、时区、磁盘分区等。设置root密码和创建用户。完成安装后重启虚拟机。设置磁盘大小(建议至少。为“CentOS”。
2025-02-25 13:22:12
191
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人