- 博客(70)
- 收藏
- 关注
原创 Hadoop集群
伪分布式:也是在一台单机上运行,但用不同的 Java 进程模仿分布式运行中的各类节点,特点:Hadoop 启动的这些守护进程都在同一台机器上运行,是相互独立的 Java 进程。本地运行:在一台单机上运行,没有分布式文件系统,直接读写本地操作系统的文件系统。(3)$user@host:$pdir/$fname: 目的地用户@主机:目的地路径/名称。如果要拷贝的是文件夹,就把文件夹下的内容都拷贝。(2)$pdir/$fname: 要拷贝的文件路径/名称。1)准备3台客户机(关闭防火墙、静态IP、主机名称)
2025-05-13 14:31:58
194
原创 数据清洗简介
ETL,是英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过抽取(Extract)、转换(Transform)、加载(Load)至目的端的过程。对于reduce函数来说,它的输入参数是:<刷选后的每一行的内容,[null,null,...]>,对于我们的需求来说,并不需要这个阶段。map阶段:按行读入内容,对内容进行检查,如果字段的个数少于等于11,就删除这条日志(不保留)去除日志中字段个数小于等于11的日志内容。我们有去除日志中字段个数小于等于11的日志。
2025-05-13 14:30:34
184
原创 数据转换1
它的核心作用是对具有相同键的所有值进行聚合操作,通过用户提供的聚合函数将这些值合并成一个结果,从而实现数据的归约和统计。作用:对 RDD 中的每个元素应用给定的函数 f,将每个元素转换为另一个元素,最终返回一个新的 RDD。作用:筛选出 RDD 中满足函数 f 条件(即 f 函数返回 true)的元素,返回一个新的 RDD,新 RDD 中的元素类型与原 RDD 相同。作用:对 RDD 中的每个元素应用函数 f,函数 f 返回一个可遍历的集合,然后将这些集合中的元素扁平化合并成一个新的 RDD。
2025-05-13 14:28:50
347
原创 数据清洗6
以下是 10 条符合上述示例中数据格式(姓名,年龄,性别)的测试数据,包含了一些可能需要清洗掉的无效数据,你可以将其保存为一个文本文件,用于测试上面的数据清洗程序。原文链接:https://blog.youkuaiyun.com/2301_81748087/article/details/147916052。假设你有一个包含用户信息的文本文件,每行格式为 姓名,年龄,性别,需要清洗掉年龄为空或者非数字的行。过滤算子中,函数返回为false,就会被过滤掉,函数返回为true,就会被保留下来。//2 对于文件的每一行。
2025-05-13 14:28:04
327
原创 缓存RDD
通过对比两次计算的耗时,可以明显发现第二次计算耗时会远小于第一次(在数据量较大或计算复杂时效果更显著),这就体现了cache方法缓存计算结果、避免重复计算、提升后续操作速度的作用。当持久化某个RDD后,每一个节点都将把计算的分片结果保存在内存中,并在对此RDD或衍生出的RDD进行的其他动作中重用。RDD通过persist方法或cache方法可以将前面的计算结果缓存,但是并不是这两个方法被调用时立即缓存,而是触发后面的行动算子时,该RDD将会被缓存在计算节点的内存中,并供以后重用。这就是没有缓存的效果。
2025-05-13 14:27:12
270
原创 用户文件1
以下是 10 条符合上述示例中数据格式(姓名,年龄,性别)的测试数据,包含了一些可能需要清洗掉的无效数据,你可以将其保存为一个文本文件,用于测试上面的数据清洗程序。原文链接:https://blog.youkuaiyun.com/2301_81748087/article/details/147916052。假设你有一个包含用户信息的文本文件,每行格式为 姓名,年龄,性别,需要清洗掉年龄为空或者非数字的行。过滤算子中,函数返回为false,就会被过滤掉,函数返回为true,就会被保留下来。//2 对于文件的每一行。
2025-05-13 14:26:25
397
原创 自定义分区
为了方便管理和查找,你会把这些书籍按照不同的类别,比如文学、历史、科学等,划分到不同的书架上。在 Spark 中,分区是指将数据集按照一定的规则划分成多个较小的子集,每个子集可以独立地在不同的计算节点上进行处理,这样可以实现数据的并行处理,提高计算效率。在 Spark 中,RDD 是数据的集合,它会被划分成多个分区,这些分区可以分布在不同的计算节点上,就像图书馆的书架分布在不同的房间一样。在 Spark 里,弹性分布式数据集(RDD)是核心的数据抽象,它是不可变的、可分区的、里面的元素并行计算的集合。
2025-05-13 14:25:13
298
原创 分区和默认分区
为了方便管理和查找,你会把这些书籍按照不同的类别,比如文学、历史、科学等,划分到不同的书架上。在 Spark 中,分区是指将数据集按照一定的规则划分成多个较小的子集,每个子集可以独立地在不同的计算节点上进行处理,这样可以实现数据的并行处理,提高计算效率。在 Spark 中,RDD 是数据的集合,它会被划分成多个分区,这些分区可以分布在不同的计算节点上,就像图书馆的书架分布在不同的房间一样。在 Spark 里,弹性分布式数据集(RDD)是核心的数据抽象,它是不可变的、可分区的、里面的元素并行计算的集合。
2025-05-13 14:24:14
401
原创 分区器和默认分区器
MyPartitioner类继承自Partitioner,实现了numPartitions方法指定分区数量为 3 ,实现getPartition方法,根据球队名称判断分区索引,湖人对应分区 0,火箭对应分区 1,其他球队对应分区 2。假设分区数为 n,键为 key,则分区编号的计算公式为 hash(key) % n。2.在main方法中,创建包含球队信息的 RDD,然后调用partitionBy方法并传入自定义分区器MyPartitioner,对 RDD 进行分区,最后将分区后的数据保存到指定路径。
2025-05-13 14:23:11
308
原创 数据清洗5
分布式系统是一种由多个独立的计算机(节点)组成的系统,这些节点通过网络通信来协同完成任务,对外表现为一个整体的系统。一般是产品人员提需求 → 数据部门搭建数据平台,分析数据指标 → 数据可视化(报表展示,邮件发送,大屏幕展示等等)一共有四个组成部分:MapReduce计算,Yarn资源调度,HDFS数据存储,Common辅助工具。进入到我们安装yarn的主机,通过命令来关闭掉yarn和historyServer,然后再重启。大数据不止有数量大这个显著的特点,还有其他的特点,我们总结为4V。
2025-05-13 14:22:22
158
原创 数据清洗4
进入到hadoop100机器,切换目录到/opt/module/spark-standalone/sbin下,运行命令 ./start-all.sh。对应的命令是:tar -zxvf spark-3.3.1-bin-hadoop3.tgz -C /opt/module/进入/opt/module/把解压的内容重命名一下,mv spark-3.1.1-bin-hadoop3.2/ spark-standalone。--executor - cores 指定每个 executor 使用的 cpu 核数。
2025-05-13 14:19:17
396
原创 数据分析3
进入到hadoop100机器,切换目录到/opt/module/spark-standalone/sbin下,运行命令 ./start-all.sh。对应的命令是:tar -zxvf spark-3.3.1-bin-hadoop3.tgz -C /opt/module/进入/opt/module/把解压的内容重命名一下,mv spark-3.1.1-bin-hadoop3.2/ spark-standalone。--executor - cores 指定每个 executor 使用的 cpu 核数。
2025-05-13 14:18:46
402
原创 数据分析2
进入到hadoop100机器,切换目录到/opt/module/spark-standalone/sbin下,运行命令 ./start-all.sh。对应的命令是:tar -zxvf spark-3.3.1-bin-hadoop3.tgz -C /opt/module/进入/opt/module/把解压的内容重命名一下,mv spark-3.1.1-bin-hadoop3.2/ spark-standalone。--executor - cores 指定每个 executor 使用的 cpu 核数。
2025-05-13 14:18:09
284
原创 Standalone
进入到hadoop100机器,切换目录到/opt/module/spark-standalone/sbin下,运行命令 ./start-all.sh。对应的命令是:tar -zxvf spark-3.3.1-bin-hadoop3.tgz -C /opt/module/进入/opt/module/把解压的内容重命名一下,mv spark-3.1.1-bin-hadoop3.2/ spark-standalone。--executor - cores 指定每个 executor 使用的 cpu 核数。
2025-05-13 14:16:09
272
原创 集群上运行
复制之前的文件,重命名为WordCount_online,并修改两个地方:输入目录改成args(0), 输出的目录改成args(1)。原文链接:https://blog.youkuaiyun.com/2301_82251033/article/details/147739846。我们学习了如何在Idea中编写程序的基本流程,并写了一个wordcount程序,可以对比它和mapreduce的使用方式区别。// 写一个spark程序,统计input目录下所有文本文件中单词的词频。// 读取目录下的所有文本文件。
2025-05-13 14:15:03
270
原创 数据清洗1
hadoop自动检查文件拓展名,如果拓展名能够匹配,就会用恰当的编解码方式对文件进行压缩和解压。如果数据量小于块大小(128M),则不需要考虑切点问题,重点考虑压缩和解压缩速度比较快的LZO/Snappy。如果需要切片,重点考虑支持切片的Bzip2和LZO。为了减少MapTask和ReduceTask之间的网络IO,重点考虑压缩和解压缩快的LZO,Snappy。压缩方式选择时重点考虑:压缩/解压缩速度、压缩率(压缩后存储大小)、压缩后是否可以支持切片。优点:压缩/解压速度比较快;缺点:压缩/解压速度慢。
2025-05-12 11:11:51
168
原创 spark
2. --class org.apache.spark.examples.SparkPi:指定了应用程序的主类,也就是包含 main 方法的类。5. /opt/module/spark-standalone/examples/jars/spark-examples_2.12-3.1.1.jar:指定了包含应用程序代码的 JAR 文件的路径。进入/opt/module/spark-yarn/sbin,运行: ./start-all.sh 和 ./start-history-server.sh。
2025-05-12 11:10:58
251
原创 Hdfs命令
其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色。随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统。前面的课程我们搭建好了hadoop集群,并测试了它们的基本使用方式,下面几节课,我们来系统学习一下hadoop的三个组成之一:hdfs的相关内容。一个副本丢失之后,它可以自动恢复。它有两种操作,一是移动,会把当前的文件删除,二是复制,保留当前的文件。
2025-05-12 11:10:07
484
原创 linux
会把aaa、这三个字符写入a.txt文件,并把之前的内容全部覆盖掉(等价于先删除了a.txt的内容,再写入aaa)会把文件的最尾部的内容显示在屏幕上,并且不断刷新,只要文件有更新,就可以看到最新的文件内容。那么对应的命令就是:cp filel.txt file2.txt。命令是:tar -cvf test.tar 1.txt 2.txt 3.txt。示例1:把1.txt,2.txt,3.txt压缩到test.tar文件中。格式:tar -cvf 压缩包.tar 文件1 文件2 文件3。
2025-05-12 11:08:42
256
原创 ssh命令
eg:目标:hadoop100通过ssh访问hadoop101,hadoop102时不需要密码,其他两台设备也类似。2.在hadoop100中,把自己的公钥传递给hadoop101,hadoop102。1.在hadoop100中生成公钥和密码。hadoop101 无密登录 hadoop100,hadoop102 与(1)类似。hadoop102 无密登录 hadoop100,hadoop101 与(1)类似。eg:从hadoop100进入hadoop101的命令就是。退出命令就是:exit。
2025-05-12 11:07:33
183
原创 Hadoop
而Spark的编程模型更加灵活和简洁,它提供了丰富的API和高级的抽象(如RDD、DataFrame、Dataset等),使得开发者可以更方便地实现复杂的计算逻辑。例如,在进行大规模数据处理时,如果数据可以完全或部分存储在内存中,Spark的处理速度会比传统的基于磁盘存储的Hadoop MapReduce快很多。例如,在一个企业的大数据平台中,HDFS可以存储海量的业务数据,Spark可以作为计算引擎来对这些数据进行分析和处理。它的存储和计算是相对分离的,HDFS负责存储数据,MapReduce负责计算。
2025-05-12 11:06:28
232
原创 虚拟机vmw
在“新建虚拟机向导”中,选择“典型(推荐)”,然后点击“下一步”。- 选择“安装程序光盘映像文件(ISO)”,点击“浏览”找到下载好的 CentOS `.iso` 镜像文件,然后点击“下一步”。- 在安装信息摘要界面,设置“安装位置”、“软件选择”等选项: - 点击“安装位置”,选择自动分区或手动分区,然后点击“完成”。- 点击“软件选择”,根据你的需求选择安装的软件包组,例如选择“最小安装”。- 选择安装位置,你可以使用默认位置,也可以点击“更改”选择其他路径,之后点击“下一步”。
2025-05-12 11:03:36
335
原创 hadoop
如果要一次性创建多级目录,可以加上`-p`参数,如`hdfs dfs -mkdir -p /user/hadoop/level1/level2`,这样即使`level1`目录不存在,也会自动创建`level1`和`level2`目录。例如,`hdfs dfs -put /home/hadoop/localfile.txt /user/hadoop/hdfsdir`会把本地的`localfile.txt`文件上传到 HDFS 的`/user/hadoop/hdfsdir`目录下。
2025-05-12 11:01:46
885
原创 数据清洗1
复制之前的文件,重命名为WordCount_online,并修改两个地方:输入目录改成args(0), 输出的目录改成args(1)。原文链接:https://blog.youkuaiyun.com/2301_82251033/article/details/147739846。我们学习了如何在Idea中编写程序的基本流程,并写了一个wordcount程序,可以对比它和mapreduce的使用方式区别。// 写一个spark程序,统计input目录下所有文本文件中单词的词频。// 读取目录下的所有文本文件。
2025-05-12 11:00:44
388
原创 虚拟机IP配置
在虚拟机环境中,配置IP地址是实现虚拟机与外界通信的重要步骤。根据虚拟网络的不同模式,配置IP的方法也有所不同。以下是两种常见的虚拟网络模式下配置静态IP地址的方法。在桥接模式下,虚拟机通过虚拟网桥与物理网卡连接,使得虚拟机能够像物理机一样参与网络通信。如果无法ping通,可能需要关闭并禁用虚拟机的防火墙服务。进入编辑模式后,设置静态IP相关参数,如。编辑完成后保存并退出,然后重启网卡服务。命令测试虚拟机IP地址的连通性。命令检查IP配置是否成功。桥接模式下配置静态IP。为DNS服务器地址。
2025-03-03 19:41:50
199
原创 vi的使用
基本上vi可以分为三种状态,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下:控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode。只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号……等。
2025-02-25 14:22:41
1426
原创 linux命令
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。原文链接:https://blog.youkuaiyun.com/yzj231128/article/details/145845742。4. 添加、删除或修改用户。示例:连接到远程服务器。3. 列出目录中的文件。示例:查看文件详细信息。2. 连接远程服务器。示例:添加防火墙规则。7. 重启或关机系统。
2025-02-25 14:20:05
274
原创 安装vm和centos
选择 “安装程序光盘映像文件(ISO)”,点击 “浏览” 找到你下载好的 CentOS 镜像文件,然后点击 “下一步”。选择安装位置,默认安装在系统盘,你也可以点击 “更改” 选择其他路径,然后点击 “下一步”。软件选择:根据你的需求选择安装的软件包,如 “最小安装” 或 “带 GUI 的服务器”。在 “新建虚拟机向导” 中,选择 “典型(推荐)”,然后点击 “下一步”。选择系统安装语言,如 “中文(简体)”,然后点击 “继续”。输入虚拟机的名称和选择虚拟机的存储位置,点击 “下一步”。
2025-02-25 14:19:02
234
原创 Scala
package uiimport models.UserModelimport service.{BookService, UserService}import scala.io.StdInimport scala.io.StdIn.readLineclassLibrarayPresentation { private val BookService = new BookService() private val UserService = new UserService()
2024-12-30 08:15:33
293
原创 Scala
case _ => books.filter(b => b.name.contains(query) || b.author.contains(query)) // 有条件,就过滤。// def searchBooks(query:String): 图书列表List(Book对象)case "" => books // 没有条件,就返回全部。// (1)根据图书的ID,查询图书,判断图书是否存在。// (3)借阅图书 更新这本书的状态。// 普通用户,借阅图书。// 所有的借阅记录。// 查询所有的图书。
2024-12-30 08:14:30
309
原创 Scala
returnDate: Option[String] = None) // 归还日期。borrowDate: String, // 借书日期。userName: String, // 借书人。bookName: String, // 书名。bookID:Int, // 书ID。
2024-12-30 08:13:30
172
原创 Scala
val availableStr = if(available) "可外借" else "已借出"s"编号:$id \t $name \t $author, $availableStr"// id, 书名,作者,available:是否可外借。
2024-12-30 08:10:40
105
原创 scala
println(s"最小值是:$m1,最大值是:$m2")// println(s"最大值为:$max")//println(s"最小值为: $min)var m1=r._1//取出元组的第一个元素。var m2=r._2//取出元组的第二个元素。//定义一个函数,计算三个数中的最大值和最小值。var min=x//假设最小值为x。
2024-12-19 10:00:23
158
原创 scala
def sayName(implicit name: String = "小雪花"): Unit = {//1.在函数的默认参数的前面补充关键字:implocit。implicit val defaultValues = "小高"//给参数一个默认值:如果不传入就使用这个值。print(s"我叫:$name")//2.在定义变量的前面 补充关键字。// sayName("小明")//sayName("小雪")//需求:能够给自己设置默认值。//3.调用函数时,不加()
2024-12-19 09:57:21
237
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人