- 博客(75)
- 收藏
- 关注
原创 自定义分区器-基础
这就类似于 Spark 中的分区,每个分区的数据可以在不同的计算节点上同时进行处理,从而加快整个数据处理的速度。MyPartitioner类继承自Partitioner,实现了numPartitions方法指定分区数量为 3 ,实现getPartition方法,根据球队名称判断分区索引,湖人对应分区 0,火箭对应分区 1,其他球队对应分区 2。在 Spark 中,RDD 是数据的集合,它会被划分成多个分区,这些分区可以分布在不同的计算节点上,就像图书馆的书架分布在不同的房间一样。
2025-05-13 09:23:32
458
原创 Spark缓存
通过对比两次计算的耗时,可以明显发现第二次计算耗时会远小于第一次(在数据量较大或计算复杂时效果更显著),这就体现了cache方法缓存计算结果、避免重复计算、提升后续操作速度的作用。当持久化某个RDD后,每一个节点都将把计算的分片结果保存在内存中,并在对此RDD或衍生出的RDD进行的其他动作中重用。MEMORY_ONLY_SER:将 RDD 以序列化的 Java 对象形式存储在内存中,相较于 MEMORY_ONLY,序列化后占用的内存空间更小,但读取时需要进行反序列化操作,会带来一定的性能开销。
2025-05-13 09:22:25
700
原创 30秒教你数据压缩
数据压缩可以分为有损压缩和无损压缩两类。即使你的MapReduce的输入输出文件都是未压缩的文件,你仍然可以对Map任务的中间结果输出做压缩,因为它要写在硬盘并且通过网络传输到Reduce节点,对其压缩可以提高很多性能,这些工作只要设置两个属性即可,我们来看下代码怎么设置。数据压缩是指在不丢失或尽可能少丢失数据信息的前提下,通过特定的算法和技术,对原始数据进行重新编码和处理,以减少数据存储空间或传输带宽的过程。,只需要在dirvier类的代码中,去设置在reduce端输出压缩开启,并设置压缩的方式即可。
2025-05-13 09:19:59
1007
原创 Yarn-tool接口
org.apache.hadoop.util.Tool 是 Apache Hadoop 框架里的一个接口,其用途是协助开发可通过命令行运行的 Hadoop 应用程序。// 它要做7件事 hadoop jar mc8.js com.example.mapreduce.WordCountDriver /要处理的文件夹 /结果路径。run(String[] args):此方法为应用程序的主要执行逻辑,接收命令行参数,返回一个整数代表执行结果(通常 0 表示成功,非 0 表示失败)。// 返回 0 表示执行成功。
2025-05-13 09:17:45
900
原创 30秒教你了解序列化
序列化的时候,它会自动被调用,将一个内存中的对象,序列化成为一个字节序列。如果序列化的属性不是Hadoop的序列化类型,就要调用相应的方法把它进行序列化。如果本身就是序列化的属性,就调用这个属性的write方法,写入输出流variable.write(out)反序列化时调用的方法,将一个字节序列,转成内存中的对象。下面我们来看一个例子:通过代码来定义一个类,并创建它的一个对象,把这个对象保存到文件中(序列化),然后再写代码读取这个文件并还原回来。常用的Java的数据类型与Hadoop的序列化的类型对比。
2025-05-13 09:15:25
672
原创 Mapreduce初使用
该阶段编程模型中有一个 reduce 函数需要开发人员重写,reduce 函数的输入也是一个 <key, value> 对,reduce 函数的输出也是一个 < key,List<value>> 对。该阶段的编程模型中会有一个 map 函数需要开发人员重写,map 函数的输入是一个 < key,value > 对,map 函数的输出也是一个 < key,value > 对,key和value的类型需要开发人员指定。reduce函数的返回值格式也是kv结构,k是每个单词,v是汇总之后的数字。
2025-05-13 09:00:33
913
原创 HDFS概述
这里设置的副本数只是记录在NameNode的元数据中,是否真的会有这么多副本,还得看DataNode的数量。HDFS的块设置太小,会增加寻址时间,程序一直在找块的开始位置;随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统。其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色。它有两种操作,一是移动,会把当前的文件删除,二是复制,保留当前的文件。
2025-05-13 08:43:45
631
原创 配置Hadoop集群-配置历史和日志服务
前面我们已经完成了任务日记的聚集,下面我们来看看是不是配置正确了。但是,请注意,在哪一台上配置了,就应该在哪一台上去启动。完成以后,将程序运行日志信息上传到HDFS系统上,这样就可以方便的查看到程序运行详情,方便开发调试。请注意,你在配置的时候指定哪个节点是历史服务器,就在哪里启动,请不要搞错了。是在具体的节点上运行的,所以运行日志也是产生在具体的节点上,但是我们希望应用。和之前的配置一样,我们需要把这个更新之后的yarn-site.xml文件。打开yarn-site.xml文件,我们添加如下的配置。
2025-05-13 08:41:10
857
原创 Spark处理过程-案例数据清洗
大家可以观察到,使用filter是数据清洗的代码相比mapreduce的代码就相对简单。过滤算子中,函数返回为false,就会被过滤掉,函数返回为true,就会被保留下来。创建input文件夹,在input下新建记事本文件,内容就是前面的实例数据。// ①如果它不是数字或者缺失,则忽略这条数据。在src下创建新的scala文件,开始写功能代码。// 停止 SparkContext。// 2.开始过滤,对每一行数据进行分析。// (1)字段拆分,拆分出年龄这个字段。// 读取文本文件,创建 RDD。
2025-05-13 08:27:27
603
原创 Spark集群搭建-Standalone
先把名称改成spark-default.conf,再补充两个设置。进入到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-13 08:25:54
951
原创 配置Spark变量
因为后续我们还会使用其他的配置方式,所以这里先重命名一次。这里的 \ 是换行输入的意思,整体的代码就只有一句,只不过太长了,我们把它拆开成几个部分来输入,其中\ 的意思就是这里写不下,写在下一行。请注意,一旦任务结束,则这个界面就不可访问了。1.打开etc/profile.d/my_env.sh文件中,补充设置spark的环境变量。2.通过finalshell连接虚拟机,并上传安装文件到 /opt/software下。的值,具体运行效果如下。请注意,它并不会产生新的文件,而是直接在控制台输出结果。
2025-05-13 08:21:04
251
原创 Spark处理过程-转换算子和行动算子
这个函数 f 接收一个输入类型为 T 的元素,返回一个类型为 U 的元素。f: T => Unit:这是一个函数,它接收一个类型为 T 的元素(T 为 RDD 中元素的类型),并对该元素执行相应的操作,但不返回任何值(返回类型为 Unit)。:筛选出 RDD 中满足函数 f 条件(即 f 函数返回 true)的元素,返回一个新的 RDD,新 RDD 中的元素类型与原 RDD 相同。:对 RDD 中的每个元素应用函数 f,函数 f 返回一个可遍历的集合,然后将这些集合中的元素扁平化合并成一个新的 RDD。
2025-05-07 15:49:54
1111
原创 如何在idea中写spark程序
当确认无误之后就可以考虑将其构建成为可分发形式即 jar 包的形式上传给 Hadoop YARN 集群或者其他调度平台上去运行更大规模的数据处理作业了。为了在 IntelliJ IDEA 中开发 Spark 应用程序,首先需要确保已安装支持 Scala 插件的 IntelliJ IDEA 版本以及 Apache Maven 工具。通过 Maven 构建工具来管理依赖项能够简化项目的设置过程。如果一切正常的话应该可以看到预期的结果输出到控制台窗口里去。),接着从列表中挑选 Maven 类型的新工程模板。
2025-04-28 19:48:34
504
原创 如何搭建spark yarn模式的集群
1.上传并解压spark-3.1.2-bin-hadoop3.2.tgz,重命名解压之后的目录为spark-yarn。--是否启动一个线程检查每个任务正使用的物理内存量,如果任务超出分配值,则直接将其杀掉,默认是true -->--是否启动一个线程检查每个任务正使用的虚拟内存量,如果任务超出分配值,则直接将其杀掉,默认是true -->spark-defaults.conf.template 改成 spark-defaults.conf。在spark-defaults.conf文件中添加。
2025-04-23 15:21:17
383
原创 spark和Hadoop之间的对比和关系
Spark是一种基于内存的快速、通用、可拓展的大数据分析计算引擎。Hadoop是一个分布式系统基础架构。Hadoop:Hadoop 主要用于批处理任务,难以满足实时性要求较高的数据处理场景,如实时监控、实时推荐等。Spark:Spark Streaming 提供了强大的实时数据处理能力,它可以将实时数据流分割成小的批次进行处理,实现准实时的数据分析。此外,Spark 还支持 Structured Streaming,提供了更高级的、基于 SQL 的实时流处理模型,使得实时数据处理更加容易和高效。
2025-04-22 08:28:25
410
原创 配置环境变量
hadoop集群我们配置好了,要与它进行交互,我们还需要准备hadoop的客户端。找到资料包路径下的Windows依赖文件夹,拷贝。复制到 C:\Windows\System32。adoop-3.1.0到非中文路径(比如d。资料包里面有对应的微软运行库安装包双击安装。验证Hadoop环境变量是否正常。,值就是保存hadoop的目录。如果报如下错误说明缺少微软运行库。要分成两步:下载hadoop包。
2025-04-15 09:01:12
196
原创 mapreduce的工作原理
MapReduce 是一种分布式编程模型,用于大规模数据集的并行运算。其设计灵感来源于函数式编程语言中的 map 和 reduce 操作1。
2025-03-31 19:51:56
309
原创 VM+centOS联网
linux中,ip地址是写在配置文件(/etc/sysconfig/network-scripts/ifcfg-ens33)中,这里使用 vi 编辑器去修改即可!如果不进行设置,每次启动机器时都可能是随机的IP,不方便我们后续操作。注意:这里的第三个部分的10并不是固定的,我们自己可以约定,但是约定之后就要固定下来。让所有的vm配置的虚拟机使用NAT时,它们的网段都是一致的。配置Windows本地虚拟网卡,让本机也可以访问虚拟机。具体设置为:进入虚拟机,修改对应的IP。(3)设置虚拟机的IP。
2025-02-26 15:51:53
309
原创 vi编译器
d(一个小d)加←删除左侧一个单词,d(一个小d)加→删除右侧一个单词。vi编辑器有三种工作模式,分别为:命令模式,输入模式,底线模式。提示:在命令模式下按shift + zz,可实现快速保存退出。底线命令模式:以:开始,通常用于文件的保存和退出。2.nyy(n+两个小y)复制当前行往下n行内容。2.ndd(n+两个小d)用来删除当前行往下n行。nyy(n+两个小y)复制当前行往下n行内容。dd(两个小d)用来删除光标所在当前行内容。1.p(小写p)在当前行的下一行粘贴。3.如何从命令模式切换到编辑模式?
2025-02-25 11:33:58
290
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人