自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(83)
  • 收藏
  • 关注

原创 克隆虚拟机组成集群

配置了一台完全配置好的虚拟机,它具备了:1.正确的ip地址能上网(ping www.baidu.com)。2.正确的设置yum,可以去下载软件。例如,yum install tree。3.虚拟机独特的主机名。现在我们使用的名称是hadoop100。4.虚拟机的hosts配置。让它可以通过主机名去访问其他主机。现在我们用它做样本,去克隆出其他的两台,这样就可以构成一个集群了。

2025-05-19 08:00:00 351

原创 一分钟了解数据压缩

数据压缩是指在不丢失或尽可能少丢失数据信息的前提下,通过特定的算法和技术,对原始数据进行重新编码和处理,以减少数据存储空间或传输带宽的过程。其目的是提高数据存储、传输和处理的效率,同时保证数据的可用性和一定的质量要求。数据压缩可以分为有损压缩和无损压缩两类。无损压缩能够确保解压后的数据与原始数据完全一致,常用于对数据准确性要求较高的场景,如文本、程序代码等;有损压缩则会在一定程度上牺牲数据的精度来换取更高的压缩比,适用于对数据质量损失有一定容忍度的场景,如图像、音频、视频等多媒体数据。

2025-05-19 01:15:00 780

原创 Spark缓存-persist和cache方法

MEMORY_ONLY_SER:将 RDD 以序列化的 Java 对象形式存储在内存中,相较于 MEMORY_ONLY,序列化后占用的内存空间更小,但读取时需要进行反序列化操作,会带来一定的性能开销。cache:其实是 persist 方法的一种特殊情况,它等价于调用 persist(StorageLevel.MEMORY_ONLY),也就是将数据以非序列化的 Java 对象形式存储在内存中。MEMORY_AND_DISK:优先把 RDD 以 Java 对象的形式存储在 JVM 的内存中。

2025-05-17 13:15:00 446

原创 Spark缓存-定义及示例

RDD 缓存是将 RDD 的分区数据存储在集群的内存或磁盘中。通过缓存,Spark 可直接复用已计算的数据,而非重新执行整个计算流程。是将 RDD、DataFrame 或 Dataset 的计算结果存储在内存或磁盘中,以避免重复计算,提升后续操作的执行效率。2.第一次调用collect和第二调用collect花的时间基本一致。这就是没有缓存的效果。1.map算子是转换算子,并不会导致真正的计算。RDD缓存的定义及示例。4.persist方法。在 Spark 中,

2025-05-17 06:00:00 170

原创 Spark处理过程-案例数据清洗

以下是 10 条符合上述示例中数据格式(姓名,年龄,性别)的测试数据,包含了一些可能需要清洗掉的无效数据,你可以将其保存为一个文本文件,用于测试上面的数据清洗程序。“李四” 的年龄为空,“赵六” 和 “吴九” 的年龄不是有效的数字,在执行数据清洗程序时,这些行应该会被过滤掉。把清洗之后的数据保存到一个文件中。创建input文件夹,在input下新建记事本文件,内容就是前面的实例数据。假设你有一个包含用户信息的文本文件,每行格式为 姓名,年龄,性别,需要。在src下创建新的scala文件,开始写功能代码。

2025-05-17 02:00:00 281

原创 Spark处理过程—行动算子

行动算子(Action) 是一种触发 RDD 计算的操作。与转换算子(Transformation)不同,行动算子会返回一个结果给驱动程序(Driver Program),或者将结果写入外部存储系统。行动算子是触发 Spark 计算的“触发点”,因为 Spark 的 RDD 是懒惰计算的,只有在执行行动算子时,才会真正开始计算。下面是几种常见的行动算子。

2025-05-14 04:00:00 552

原创 spark的安装以及单机模式的运行

在安装Spark时,它就提供了一些示例程序,我们可以直接来调用。进入到spark-local,运行命令spark-submit命令。这里的 \ 是换行输入的意思,整体的代码就只有一句,只不过太长了,我们把它拆开成几个部分来输入,其中\ 的意思就是这里写不下,写在下一行。接下来的操作,我们把它上传到集群中的节点,并解压运行。1.打开etc/profile.d/my_env.sh文件中,补充设置spark的环境变量。的值,具体运行效果如下。请注意,它并不会产生新的文件,而是直接在控制台输出结果。

2025-05-13 10:24:36 175

原创 Spark处理过程—转换算子

转换算子用于对 RDD 进行转换操作,生成一个新的 RDD。转换操作是惰性的,即当调用转换算子时,Spark 并不会立即执行计算,而是记录下操作步骤,直到遇到行动算子时才会触发实际的计算。:对键值对 RDD 按 key 分组,使用指定函数聚合 value。:先对 RDD 中每个元素应用函数,再将结果展平(一对多转换)。:对 RDD 中的每个元素应用自定义函数,生成新的 RDD。:过滤 RDD 中满足条件的元素,生成新的 RDD。从格式和用法上来看,它就是集合对象的方法。:一对一转换,元素数量不变。

2025-05-13 09:10:55 482

原创 运行Spark程序-在Spark-shell——RDD

RDD 是 Spark 的基础抽象,提供了灵活的分布式数据处理能力。理解 RDD 的分区、依赖、转换和行动操作是掌握 Spark 编程的关键。在实际应用中,对于结构化数据推荐使用更高级的 DataFrame/Dataset API,但 RDD 仍然适用于需要细粒度控制的复杂场景。

2025-05-13 08:44:35 1701

原创 在Spark中通过jps命令看到的进程名,是哪个命令产生有什么作用

作用:在 YARN 环境中,HistoryServer 负责存储和提供已完成的应用程序(包括 MapReduce、Spark 等)的历史记录。作用:DataNode 是 Hadoop 分布式文件系统(HDFS)中的工作节点,负责存储实际的数据块。产生命令:这个名称不太明确,在 Hadoop 相关环境中可能指 ResourceManager(YARN)或 HDFS 中的 NameNode。作用:NameNode 是 HDFS 的主节点,负责管理文件系统的命名空间和数据块的映射关系。

2025-04-29 10:02:31 636

原创 在Spark集群中搭建Standalone

配置文件:将文件重命名为,添加配置,指定的 HDFS 目录必须提前存在。修改文件:添加配置。分发配置文件:将修改后的配置文件分发给集群中的各个节点。启动历史服务:先启动 HDFS,然后使用脚本启动历史服务器。登录 Web 界面:在浏览器中输入访问 Spark History Server 的 Web 界面,查看作业的历史记录。

2025-04-28 23:45:00 679

原创 如何搭建spark yarn模式的集群

以上步骤通过整合Hadoop YARN与Spark配置实现集群资源统一管理,适用于生产环境的大规模任务调度。

2025-04-28 20:16:15 1219

原创 怎么样才能在idea中写入spark程序

sbt/Maven修改依赖后需手动同步配置(sbt点刷新按钮,Maven执行。‌:适用于依赖管理简单、快速迭代的项目,需提前安装sbt工具24。通过 sbt she ll执行 run 命令 编译并运行。专业版IDEA自带Scala插件,社区版需手动安装。‌:适合熟悉Java生态、需复杂依赖管理的场景。点击代码编辑区左侧的绿色三角按钮运行主类。Spark版本需与Scala版本严格匹配。确保插件版本与IDEA版本匹配。快速测试逻辑,无需连接集群。在目录下新建Scala文件。在pom.xml中添加。

2025-04-28 20:10:36 461

原创 Spark的安装及运行

二、部署Spark集群大体上分为两种模式:单机模式(Local模式)与集群模式。大多数分布式框架都支持单机模式:就是运行在一台计算机上的模式,方便开发者调试框架的运行环境。但是在生产环境中,并不会使用单机模式。因此,后续直接按照集群模式部署Spark集群。下面详细列举了Spark目前支持的部署模式。1Local模式:单机模式,在本地部署单个Spark服务2Standalone模式:集群模式,Spark自带的任务调度模式。3YARN模式:集群模式,

2025-04-22 09:15:09 509

原创 Spark与Hadoop之间有什么样的对比和联系

Spark 是一个快速、通用且可扩展的大数据处理框架,最初由加州大学伯克利分校的AMPLab于2009年开发,并于2010年开源。它在2013年成为Apache软件基金会的顶级项目,是大数据领域的重要工具之一。Spark 的优势在于其速度和灵活性。相比传统的Hadoop MapReduce模型,Spark通过内存计算减少了I/O开销,使得迭代式算法(如机器学习和图计算)的性能提升显著。此外,Spark支持批处理、流处理、交互式查询和实时分析等多种计算模式,使其能够满足多样化的数据处理需求。

2025-04-22 09:05:13 1319

原创 Hadoop中的序列化和反序列化

序列化就是把内存中的对象,转换成字节序列(或其他数据传输协议)以便于存储到磁盘(持久化)和网络传输。反序列化就是将收到字节序列(或其他数据传输协议)或者是磁盘的持久化数据,转换成内存中的对象。二、为什么要序列化一般来说,“活的”对象只生存在内存里,关机断电就没有了。而且“活的”对象只能由本地的进程使用,不能被发送到网络上的另外一台计算机。通过序列化可以存储“活的”对象,可以将“活的”对象发送到远程计算机。

2025-04-18 02:30:00 327

原创 Yarn概述

通过为每个组织分配专门的队列,然后再为每个队列分配一定的集群资源, 这样整个集群就可以通过设置多个队列的方式给多个组织提供服务了。队列内部又可以垂直划分,这样一个组织内部的多个成员就可以共享这个队列资源了,在一个队列内部,资源的调度是采用的是先进先出(FIFO)策略。但是实际中,资源是有限的,并且在繁忙的群集上, 应用程序通常将需要等待其某些请求得到满足。现在,如果B用户在其他作业仍在运行时开始第二个作业,它将与B的另一个作业共享其资源,因此B的每个作业将拥有资源的四分之一,而A的继续将拥有一半的资源。

2025-04-16 16:05:20 981

原创 如何配置HADOOP_HOME环境变量

之前我们已经搭建好了hadoop集群,并测试了它的文件管理和程序运行等相关命令。这些都是理论示范,在真实的开发中,我们是通过使用java程序来与集群进行交互的。双击winutils.exe 如果报如下错误说明缺少微软运行库,这个问题可以通过在:资料包里面有对应的微软运行库安装包双击安装来解决。hadoop集群我们配置好了,要与它进行交互,我们还需要准备hadoop的客户端。1. 找到资料包路径下的Windows依赖文件夹,拷贝hadoop-3.1.0到非中文路径(比如d:\hadoop-3.1.0)

2025-04-15 09:00:03 229

原创 Spark中Maven的用法

在IDEA中去创建项目,并编写java代码来操作集群中的文件1.IDEA 中创建 Maven 项目步骤一:点击 File -> New -> Project,在弹出的窗口左侧选择 Maven,点击 Next:步骤二:填写项目的 GroupId、ArtifactId、Version 等信息(这些对应 pom.xml 中的关键配置),点击 Next。步骤三:确认项目配置信息无误后,点击 Finish,IDEA 会自动生成 Maven 项目结构。

2025-04-15 08:52:17 542

原创 关于流量统计那些事

我们现在有一个目录data下保持了一些日志文件,文件的内容格式如下需求统计每一个手机号耗费的总上行流量、总下行流量、总流量。

2025-04-15 08:42:30 900

原创 配置Hadoop集群-免密登录

前面的课程中我们在虚拟机上安装并测试使用了hadoop的示例程序wordcount,并且在准备好了集群的同步工具,那接下来,我们就可去配置hadoop集群了。将公钥拷贝到hadoop101上。所以,对于hadoop100来说,它要生成公钥,并拷贝到hadoop100, hadoop101, hadoop102上去。我们希望达成的目标是:希望用户在hadoop100登录到hadoop101时,hadoop101不需要输入密码。在hadoop100中,把自己的公钥传递给hadoop101,hadoop102。

2025-04-03 11:30:00 332

原创 配置Hadoop集群-配置历史和日志服务

echo " --------------- 启动 historyserver ---------------"echo " --------------- 关闭 historyserver ---------------"echo " --------------- 启动 hdfs ---------------"echo " --------------- 启动 yarn ---------------"echo " --------------- 关闭 yarn ---------------"

2025-04-02 15:51:33 705

原创 一分钟教会你数据清洗

利用工具的去重功能,Excel 中可通过 “删除重复项” 按钮,pandas 中使用drop_duplicates()函数,一键就能删除这些重复数据,保证数据的唯一性。数据格式不一致也很麻烦。如员工薪资,有的以 “元” 为单位,有的以 “万元” 为单位。在数据的世界里,原始数据就如同未经雕琢的璞玉,往往夹杂着杂质,而数据清洗便是去除这些杂质,让数据闪耀光芒的关键步骤。别担心,接下来,只需一分钟,就能初步掌握数据清洗的奥秘。经过这几步,原本杂乱的数据就会变得整洁有序,为后续的数据分析和挖掘工作打下坚实基础。

2025-04-02 15:47:58 183

原创 mapreduce的工作原理

例如,在单词计数的例子中,输入文本被分割成单词,每个单词作为键,值为 1,表示出现一次。归约操作:每个 Reduce 任务会接收来自不同 Map 任务的相同键的中间结果,Reduce 函数会对这些结果进行合并和处理,最终生成最终的输出结果 <output_key, output_value>。MapReduce 主要由两个阶段组成:Map 阶段和 Reduce 阶段,此外还有一些辅助步骤,整体流程包括输入数据、Map 任务、Shuffle 和 Sort(洗牌与排序)、Reduce 任务、输出结果。

2025-04-02 15:45:14 447

原创 教你快速配置host

hosts 文件是一个本地的文本文件,它的作用是将主机名(www.douyin.com)映射到对应的 IP 地址,在 DNS(域名系统)解析之前,系统会先查询 hosts 文件来确定目标主机的 IP 地址。在记事本中选择 “文件” -> “打开”,在 “文件类型” 中选择 “所有文件”,定位到 C:\Windows\System32\drivers\etc 目录,选择 hosts 文件并打开。在系统窗口中,点击 “更改设置”,在弹出的 “系统属性” 窗口中,切换到 “计算机名” 选项卡。

2025-04-02 15:43:10 554

原创 如何进行虚拟机IP配置

VirtualBox 提供了多种网络连接模式,常见的有桥接网卡、NAT 和仅主机(Host - Only)网络。VMware Workstation 提供了三种常见的网络连接模式:桥接模式、NAT 模式和仅主机模式。以上步骤可帮助你完成虚拟机的 IP 配置,根据实际需求选择合适的网络连接模式和 IP 配置方式。

2025-03-03 19:20:21 607

原创 指南针!!!vi编辑器使用教程已奉上,请快速查收!!!!

vi 编辑器是一款经典且强大的文本编辑器,广泛应用于 Unix 和类 Unix 系统(如 Linux)中。下面将从启动、不同模式下的常用操作以及多文件操作等方面详细介绍其使用方法。

2025-02-25 11:16:40 416

原创 虚拟机安装教程

在VMware Workstation 17 Pro的菜单栏中,选择“虚拟机” -> “设置” -> “CD/DVD(SATA)” -> “使用ISO映像文件”,然后选择你的操作系统ISO镜像文件。创建新的虚拟机: 在VMware Workstation 17 Pro的主界面,点击“创建新的虚拟机”按钮。启动虚拟机: 在VMware Workstation 17 Pro的主界面,选择你刚刚创建的虚拟机,然后点击“编辑虚拟机”按钮。选择安装方法: 选择“稍后安装操作系统”选项,然后点击“下一步”。

2025-02-25 10:44:33 297

原创 部分Linux命令

03 cd[目录名] changge directory 切换文件夹。04 touch[文件名] touch 如果文件不存在,新建文件。

2025-02-25 10:42:29 154

原创 Spark大数据分析

Spark 的应对:分布式计算:Spark 将数据分布在集群的多个节点上,并行处理大规模数据。内存计算:Spark 将数据存储在内存中,减少了磁盘 I/O 的开销,显著提高了处理速度。弹性扩展:Spark 可以在数千台节点的集群上运行,支持处理 PB 级别的数据。Spark 的应对:Spark Streaming:Spark 提供了流处理模块,能够实时处理数据流。

2025-02-18 11:37:00 444

原创 Scala函数的字面量语法

Scala的函数字面量语法 Scala的函数字面量语法为: (参数列表) => {方法体} 与 定义函数 的语法相比,它省略了def关键字、函数名以及函数的返回类型。在Scala的函数字面量的定义中直接把参数列表与方法体通过=>相连。例如定义一个函数字面量对输入变量加1并返回,即 (x:Int)-=> {x+1}。由于Scala的函数字面量没有定义函数名,所以又把这种函数字面量称为匿名函数。函数字面量使用箭头符号 => 来分隔参数列表与函数体。Scala的函数字面量语法。

2024-12-18 15:07:04 196

原创 Scala中在集合复习,Map, Set ,Array, List是不是只有这四个?他们之间有什么关系,区别?

Scala 中的集合类型丰富多样,除了 Map、Set、Array、List 之外,还有如 ListBuffer、Vector、Stack 等多种集合类型,但 Map、Set、Array、List 是比较常用和基础的几种。例如,Array(1, 2, 3)在内存中是依次存储1、2、3这三个元素的。综上所述,Set 和 Map 在数据结构、元素类型与操作、查找访问方式、用途、可变性以及遍历方式等方面都存在显著区别,开发者应根据具体的业务需求来选择合适的集合类型,以实现高效、简洁的代码逻辑。

2024-11-30 11:30:00 402

原创 scala创建一个可变map用于存储图书馆信息

【代码】scala创建一个可变map用于存储图书馆信息。

2024-11-29 07:30:00 349

原创 scala统计词频

(1)从文件1.tst,读入内容,保存在一个字符串中。(2)统计字符串中,每个单词出现的频率。(4)把最后结果写入一个新的文件。(3)对结果进行排序。

2024-11-27 16:56:25 648

原创 在scala中判断一下随便输入一串数字的身份证号是否合法

【代码】在scala中判断一下随便输入一串数字的身份证号是否合法。

2024-11-27 14:52:37 372

原创 Scala练习题(梦想清单管理)

【代码】Scala练习题(梦想清单管理)

2024-11-26 13:00:00 151

原创 Scala 中Stack和Queue两种常用集合类型

数据结构特点:Queue是一种先进先出(First In First Out,FIFO)的数据结构,类似于排队等候的队伍,最先进入队列的元素总是最先被取出。数据结构特点:Stack是一种后进先出(Last In First Out,LIFO)的数据结构,就像一叠盘子,最后放入的盘子总是最先被取出。如果队列是空的,则会抛出异常。在 Scala 中,Stack和Queue是两种常用的集合类型,它们分别实现了栈和队列的数据结构。head:用于查看队列的头部元素,但不移除它,时间复杂度为 O (1)。

2024-11-25 14:44:33 622

原创 Scala的Array和ArrayBuffer集合及多维数组

平均插入/删除时间复杂度为O(1):向ArrayBuffer中添加或删除元素的平均时间复杂度为O(1),因为它会自动调整内部数组的大小。平均访问时间复杂度为O(1):由于Array的元素在内存中是连续存储的,因此通过索引访问元素的平均时间复杂度为O(1)。动态大小:ArrayBuffer的大小可以根据需要进行自动调整,因此它可以包含任意数量的元素,而不需要提前定义大小。不可变性:Array是不可变的,即不支持添加、删除或更新元素。可变性:ArrayBuffer是可变的,即可以在创建后添加、删除或更新元素。

2024-11-25 14:25:48 150

原创 scala的迭代器

Scala Iterator(迭代器)不是一个集合,它是一种用于访问集合的方法。复制迭代器:duplicate返回值是一个数组,有两个数据源一样的,独立的迭代器。调用 it.next() 会返回迭代器的下一个元素,并且更新迭代器的状态。迭代器 it 的两个基本操作是 next 和 hasNext。调用 it.hasNext() 用于检测集合中是否还有元素。tolist作用:把迭代器中剩余的数据储存到List中。take:从当前迭代器的位置开始,取n个元素。类似遍历器,一个不落,挨个访问。

2024-11-25 14:23:12 546

原创 Scala图书馆创建图书信息

【代码】Scala图书馆创建图书信息。

2024-11-11 15:38:41 151

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除