自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Spark集群搭建-Standalone

export JAVA_HOME=/usr/lib/jvm/java-11-openjdk # 替换为实际路径。export SPARK_MASTER_IP=master_hostname # 主节点主机名/IP。- 官网下载对应版本(如 spark-3.5.0-bin-hadoop3 ),上传至主节点。- 主节点Web界面: http://master_ip:8080 ,查看从节点是否在线。ssh-copy-id slave1 # 替换为从节点主机名/IP。2. 分发Spark到从节点。

2025-05-13 15:35:51 439

原创 如何在sheel中运行spark

/ 将元组的value按照key来分组,对所有的value执行聚合操作(相加)// 将元组的value按照key来分组,对所有的value执行聚合操作(相加)// 将单词转换为元组对象,key是单词,value是数字1。// 将单词转换为元组对象,key是单词,value是数字1。// 将单词进行切割,得到一个存储全部单词的RDD。// 将单词进行切割,得到一个存储全部单词的。// 收集RDD的数据并打印输出结果。// 收集RDD的数据并。// 读取文件,得到RDD。

2025-05-13 15:29:54 420

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

echo " =================== 启动 hadoop集群 ==================="echo " =================== 关闭 hadoop集群 ==================="echo " --------------- 启动 historyserver ---------------"我们基本上完成了hadoop集群的所有配置了,涉及到的服务也非常多。echo " --------------- 启动 yarn ---------------"

2025-05-13 14:48:01 529

原创 泛型特质的应用

val rs3 = getMax(li) // 应该输出Pat("cat", 14)// 为Pat提供一个基于age的Ordered实例。//定义一个函数,用来求List元素中的最大值。

2025-05-13 14:46:41 170

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

序列化的时候,它会自动被调用,将一个内存中的对象,序列化成为一个字节序列。如果序列化的属性不是Hadoop的序列化类型,就要调用相应的方法把它进行序列化。而且“活的”对象只能由本地的进程使用,不能被发送到网络上的另外一台计算机。通过序列化可以存储“活的”对象,可以将“活的”对象发送到远程计算机。// 2. 使用ObjectInputStream对象中的readObject方法,读取文件中的对象。常用的Java的数据类型与Hadoop的序列化的类型对比。)或者是磁盘的持久化数据,转换成内存中的对象。

2025-05-13 14:45:35 659

原创 教你快速配置host

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

2025-05-13 14:44:22 1142

原创 配置yam模式,写代码连接数据库,写回数据库

我将提供使用 Scala 语言在 YARN 模式下配置 Spark,连接数据库并将处理后的数据写回数据库的代码示例。创建 SparkSession:运用 SparkSession.builder() 构建一个 SparkSession 对象,同时将运行模式设定为 YARN。读取数据:使用 spark.read.jdbc() 方法从数据库读取数据,返回一个 DataFrame。写回数据:使用 processedDF.write.jdbc() 方法把处理后的数据写回数据库。// 将处理后的数据写回数据库。

2025-05-13 14:41:14 432

原创 配置spark

进入到hadoop100(自己所配置下的机器名字)机器,切换目录到/opt/module/spark-standalone/sbin下,运行命令 ./start-all.sh。进入/opt/module/目录下把解压的内容重命名一下。这个文件在spark的安装目录下的conf目录下,先把名字改为workers,然后把内容设置为三台机器的主机名,具体如下。注意,这里不要省略./,它表示的是当前目录下的start-all命令,如果省略了./,它就会先去环境变量PATH中指定的目录来找这个命令。

2025-05-13 14:39:27 229

原创 RDD 案例 - 数据清洗

上述代码中,先创建包含脏数据的 RDD,然后通过 filter 算子过滤掉成绩为负数和缺失值的数据,再通过 map 算子整理数据格式,完成数据清洗。假设有一个包含学生成绩信息的 RDD,数据格式为 (学生 ID, 课程名,成绩) ,其中存在一些成绩为负数(不合理值)和缺失值(null)的数据。数据清洗是指发现并纠正数据文件中可识别的错误的最后一道程序 ,包括检查数据一致性,处理无效值和缺失值等。// 清洗数据:过滤掉成绩为负数和缺失值的数据。

2025-05-13 14:37:20 336

原创 RDD介绍

Resilient Distributed Dataset 叫做弹性分布式数据集,是Spark中最基本的数据抽象,是分布式计算 的实现载体,代表一个不可变,可分区,里面的元素并行计算的集合。val distData = sc.parallelize(data, 2) // 第二个参数是分区数。// 通过 parallelize 方法将本地集合转换为 RDD。// 创建 SparkConf 和 SparkContext。// 创建 SparkConf 和 SparkContext。// 创建一个本地集合。

2025-05-13 14:35:17 262

原创 如何将代码打包到集群上运行

- 添加必要的插件以打包scala程序-->

2025-05-13 14:34:18 287

原创 Spark IDEA编写Maven项目

在IDEA中选择 Create New Project > Maven > 勾选Create from archetype > 选择 maven-archetype-quickstart ,点击下一步。-- 如com.example.SparkApp -->-- Spark SQL(按需添加其他模块,如spark-streaming) -->-- Maven打包插件(可选,用于生成可执行JAR) -->-- 开发时使用local模式,无需打包进最终JAR -->-- Scala编译插件 -->

2025-05-13 14:27:31 888

原创 Spark集群搭建-Standalone

原文链接:https://blog.csdn.net/2401_87076475/article/details/147892479。export JAVA_HOME=/usr/lib/jvm/java-11-openjdk # 替换为实际路径。- 官网下载对应版本(如 spark-3.5.0-bin-hadoop3 ),上传至主节点。- 主节点Web界面: http://master_ip:8080 ,查看从节点是否在线。ssh-copy-id slave1 # 替换为从节点主机名/IP。

2025-05-13 14:26:02 397

原创 转换算子和行动算子的区别

转换算子(Transformation)和行动算子(Action)是Spark中RDD(弹性分布式数据集)操作的两种主要类型,它们在功能、执行方式以及返回结果上存在显著区别。转换算子:val newRDD = rdd.map(x => x * 2),这里只是记录了映射操作,不会立即执行。行动算子:val count = rdd.count(),这里会立即计算RDD中的元素数量并返回结果。行动算子则是立即执行的,它们会触发Spark任务的调度和执行,并返回结果或输出到存储系统。

2025-05-12 11:02:49 288

原创 Spark 配置 YARN

在 Spark 的 conf 目录下,若 spark-defaults.conf 文件不存在,可复制 spark-defaults.conf.template 来创建。spark-env.sh 文件位于 Spark 的 conf 目录下。依据集群资源状况,合理调整 Spark 应用的资源参数,像 spark.driver.memory、spark.executor.memory 等。通过以上步骤,你就能在 Spark 中成功配置 YARN 并运行 Spark 应用了。

2025-05-12 11:01:51 399

原创 如何在idea中写spark程序

打开 IntelliJ IDEA,选择File -> New -> Project,接着在左侧菜单中选取Maven或者Gradle(此处以 Maven 为例),然后点击Next。在Maven Projects面板中,双击package目标进行打包,生成的 JAR 文件会存于target目录下。在编写好代码后,你可以点击 IDE 中的运行按钮或者使用快捷键Shift + F10来运行程序。通过以上步骤,你就能在 IntelliJ IDEA 中编写、运行和提交 Spark 程序了。

2025-05-12 09:38:03 642

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

软件:确保所有节点安装了相同版本的 Java(建议 Java 8 或更高版本)和 Hadoop(包含 YARN)。网络问题:确保所有节点之间网络连通,防火墙允许 Hadoop 和 Spark 相关端口通信。权限问题:确保运行 Hadoop 和 Spark 的用户有足够的权限访问相关目录和文件。从 Apache 官网下载 Hadoop 压缩包,然后解压到指定目录。从 Apache 官网下载 Spark 压缩包,然后解压到指定目录。通过以上步骤,你就可以成功搭建一个 Spark YARN 模式的集群。

2025-05-12 09:30:43 666

原创 mapreduce的工作原理

MapReduce 是一种用于**大规模数据并行处理**的编程模型,由 Google 提出,其核心思想是将计算任务分解为 **Map(映射)** 和 **Reduce(归约)** 两个阶段,通过分布式计算高效处理海量数据。- **处理**:Map 函数对每个分片中的键值对(如文本行、日志记录)进行处理,生成中间键值对(如 `<单词, 1>`)。- **输入**:将输入数据分割为多个 **分片(Split)**,每个分片分配给一个 Map 任务。- **输出**:最终结果写入分布式文件系统(如 HDFS)。

2025-05-12 09:13:33 317

原创 hadoop 集群的常用命令

Hadoop集群的常用命令主要分为**HDFS文件操作**、**YARN资源管理**、**集群管理**和**维护工具**四大类。hdfs dfs -put <本地路径> <HDFS路径> # 等价于 -copyFromLocal。hdfs dfs -get <HDFS路径> <本地路径> # 等价于 -copyToLocal。hdfs dfs -ls <HDFS路径> # 例如:hdfs dfs -ls /user。hdfs dfs -copyToLocal <HDFS路径> <本地路径>

2025-05-12 09:10:25 410

原创 配置虚拟机

配置服务器IP地址用来通信,我们要把多台虚拟机设置为一个集群来工作,就必须给他们配置相同网段的IP地址。重启的命令是reboot,检查是否能Ping通外网。注意:这里的第三个部分的10并不是固定的,我们自己可以约定,但是约定之后就要固定下来。如果不进行设置,每次启动机器时都可能是随机的IP,不方便我们后续操作。让所有的vm配置的虚拟机使用NAT时,它们的网段都是一致的。Step3: 设置虚拟机hadoop100的IP。(3)最后,关闭服务器的防火墙。具体设置为:进入虚拟机,修改对应的IP。

2025-05-12 09:07:58 457

原创 spark和hadoop的区别与联系

• 存储方面:Spark 可以和 Hadoop 的 HDFS 结合,利用 HDFS 作为其底层的数据存储系统,这样 Spark 可以处理存储在 HDFS 上的大规模数据,充分利用 HDFS 的分布式存储和数据冗余机制,保证数据的可靠性和可扩展性。◦ Hadoop:主要基于 MapReduce 计算模型,将任务分为 Map 和 Reduce 两个阶段,数据在磁盘上进行大量的读写操作,适合处理大规模的批处理任务,但对于迭代式计算和交互式查询性能较差。

2025-04-21 08:29:04 437

原创 vi的基本使用

vi的基本使用。

2025-02-25 09:12:45 138

原创 Linux的常用命令

Linux的常用命令。

2025-02-25 09:11:29 110

原创 vm和centos

选择 “Linux” 操作系统,版本根据你下载的 CentOS 版本进行选择,如 “CentOS 7 64 位”,点击 “下一步”。选择 “安装程序光盘映像文件(ISO)”,点击 “浏览” 按钮,找到之前下载好的 CentOS 镜像文件,选择后点击 “下一步”。可以选择默认的安装位置,也可以点击 “更改” 按钮,指定其他磁盘路径进行安装,设置完成后点击 “下一步”。在弹出的 “新建虚拟机向导” 中,选择 “典型(推荐)”,然后点击 “下一步”。选择安装语言,一般选择 “中文(简体)”,点击 “继续”。

2025-02-24 20:12:43 538

原创 scala思维导图

2025-01-01 21:08:01 138

原创 scala图书管理系统

文件:books.txt ,users.txt ,borrow_records.txt。9,你当像鸟飞往你的山,塔拉·韦斯特弗,true。8,哈利·波特与魔法石,J.K.罗琳,true。3,百年孤独,加西亚·马尔克斯,true。4,小王子,圣埃克苏佩里,true。10,邓小平时代,傅高义,true。1,人性的弱点,卡耐基,true。2,理想国,柏拉图,true。5,红楼梦,曹雪芹,true。6,围城,钱钟书,true。软件包【service】7,活着,余华,true。软件包【modeis】

2025-01-01 19:21:09 198

原创 scala图书管理系统 【dao】软件包

/ 实例化一个用户,保存到List。// 实例化一个用户,保存到List。// 加载所有的用户。// 加载所有的用户。

2025-01-01 19:18:44 394

原创 scala图书管理系统 【modeis】软件包

var returnDate: Option[String] = None // 归还日期。borrowDate: String, // 借书日期。userName: String, // 借书人。bookName: String, // 书名。s"编号:$id \t $name \t $author, $availableStr"bookID:Int, // 书ID。role: String // 普通用户,管理员。// id, 书名,作者,available:是否可外借。

2025-01-01 19:02:23 186

原创 scala图书管理系统【service】软件包

case _ => books.filter(b => b.name.contains(query) || b.author.contains(query)) // 有条件,就过滤。// 写借阅记录回文件 borrowRecordDAO.saveBorrowRecords(records)case "" => books // 没有条件,就返回全部。// 根据图书的ID,查询图书,判断图书是否存在。// 借阅图书 更新这本书的状态。// 普通用户,借阅图书。// 查询所有的图书。

2025-01-01 18:59:00 2051

原创 scala图书管理系统【ui】软件包

println(s"欢迎管理员:${user.username},来到我的图书管理系统, 请选择")val query = readLine("请输入查询关键字(书名,作者):").trim。println(s"欢迎用户:${user.username},来到我的图书管理系统, 请选择")println("=======查询图书的结果:=======")case "2" => println("查询借阅图书")case "2" => println("查询图书")println("输入的图书ID无效")

2025-01-01 18:54:23 977

原创 Scala语言的函数实现

在实际项目中,合理利用Scala的函数式编程特性,可以显著提升开发效率和代码质量,是每一位Scala开发者值得掌握的技能。在编程的世界里,函数是构建软件的基本单元之一,它不仅体现了代码的逻辑和结构,更是程序设计思想的具体体现。本文将深入探讨Scala语言中函数的实现细节,包括匿名函数、高阶函数、偏应用函数等高级概念,并通过具体示例展示它们如何提升代码的可读性和性能。这是函数式编程的核心特性之一,Scala中的map, filter, reduce等方法都是高阶函数的典型应用。一、Scala中的函数基础。

2024-12-30 07:42:02 1099

原创 十个Scala的小知识

可以在Scala项目中直接使用Java类库,也可以将Scala代码编译后供Java项目使用。例如,一个Java框架可以轻松地集成Scala编写的代码模块。例如,可以使用flatten方法将嵌套的集合扁平化为一个层次的集合。当编写递归函数且递归调用是函数的最后一个操作时,可以利用尾递归优化性能。例如,可以定义自己版本的加法操作符。可以使用type关键字定义类型别名,这使得复杂的类型可以使用一个简化的名称在代码中表示。可以定义包对象来存放包级别的属性和方法,而不是把这些内容分散在不同的类或者单例对象中。

2024-12-29 23:08:49 321

原创 Scala中如何进行模式匹配?

case head :: tail => println(s"头部元素是 $head,尾部是 $tail")case Person(n, a) if a > 18 => println(s"$n 是成年人")case (x, y) => println(s"第一个元素是 $x,第二个元素是 $y")case _ => println("这是其他类型")case 1 => println("x的值是1")case 2 => println("x的值是2")case _ => println("x是其他值")

2024-12-22 18:10:39 398

原创 十个Scala的使用小技巧

样例类自带了很多有用的方法,比如`toString`、`equals`等。在定义泛型类时可以指定协变或逆变,这在处理类型之间的关系时很有用。在Scala中,可以使用类型推断来简洁地定义变量。这里`filter`方法可以方便地过滤出满足条件的元素。隐式转换可以在特定情况下让代码更简洁,但也要谨慎使用。使用`s`插值可以方便地把变量嵌入到字符串中。使用`Option`类型可以避免空指针异常。使用`_`可以匹配其他所有情况。Scala中的匿名函数简洁方便。# 1. 简洁的变量定义。函数可以作为参数传递。

2024-12-22 18:05:18 345

原创 Scala隐式转换

Scala中的隐式转换(Implicit Conversions)是一种高级特性,它允许在不需要显式调用的情况下将一种类型的值转换成另一种类型。当一个函数期望接收某个类型参数,而你有一个不同类型的对象,如果这个转换是“自然”的并且对上下文无害,Scala会尝试查找并应用一个匹配的隐式转换。例如,如果你有一个Int值,但需要传递给一个只接受String的函数,Scala提供了一个隐式转换将Int转换为字符串。printValue(num) // 输出 "42",尽管num实际上是Int类型可。

2024-12-22 17:58:21 172

原创 Scala泛型

Scala泛型是一种强类型的编程特性,它允许你在编写函数、类或方法的时候指定类型参数,从而使代码更具通用性和复用性。通过使用泛型,你可以定义一次可以处理多种数据类型的代码模板。泛型实例化:当你使用泛型时,会在编译时生成具体的实例,比如val list: List[Int]会生成一个只包含整数的列表。类型参数:当你创建一个类或函数时,可以在定义的位置指定类型参数,如List[T]表示列表中元素的类型T。泛型使得Scala代码更加模块化,有助于避免因类型错误导致的运行时异常,并提高了代码的可读性和维护性。

2024-12-22 17:56:04 284

原创 Scala中 class和case class的区别

在Scala中存在case class,它其实就是一个普通的class。6、case class构造函数的参数是public级别的,我们可以直接访问;1、初始化的时候可以不用new,当然你也可以加上,普通类一定需要加new;4、默认是可以序列化的,也就是实现了Serializable;5、自动从scala.Product中继承一些函数;3、默认实现了equals 和hashCode;2、toString的实现更漂亮;

2024-12-19 09:57:11 656

原创 使用Scala输出整数中的每个数字

val inputLine = scala.io.StdIn.readLine("请输入三个数字,用空格分隔:")println(s"第二个数字是:$second")println("你输入的整数是:"+input)println(s"第一个数字是:$first")println(s"第三个数字是:$third")

2024-12-19 09:55:16 260

原创 scala 两个list 拼接 ++:

scala> val x = List(1)x: List[Int] = List(1) scala> val y = LinkedList(2)y: scala.collection.mutable.LinkedList[Int] = LinkedList(2) scala> val z = x ++: yz: scala.collection.mutable.LinkedList[Int] =

2024-12-19 09:51:59 355

原创 Scala异常

2024-12-16 11:18:40 141

空空如也

空空如也

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

TA关注的人

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