- 博客(63)
- 收藏
- 关注
原创 mysql数据库配置
假设要存储的数据包含四个字段:`userId`, `productId`, `score`, 和 `timestamp`。- **设定 JDBC 参数**:构建合适的连接字符串以及认证信息。- **调整性能选项**:采用批处理方式加快大数据量传输速度。- **确认连通性状况**:预先排除潜在网络或者安全层面障碍。- **配置用户权限**:赋予适当的操作权限给应用程序使用。- **实施索引策略**:增强未来可能涉及的各种查询效能。- **创建数据库和表**:设计适合存储数据的结构。
2025-05-14 09:27:21
444
原创 读入csv文件写入MySQL
使用 Spark RDD 读取 CSV 文件时,可以通过 `textFile` 方法加载文件内容,并将其解析为结构化的数据。2. **解析 CSV 数据**:使用 `split` 和 `map` 方法将数据转换为结构化格式。3. **转换为 DataFrame**:利用隐式转换功能将 RDD 映射为 DataFrame。使用 DataFrame 的 `write.jdbc` 方法将数据写入指定的 MySQL 表中。4. **写入 MySQL 数据库**:调用 `write.jdbc` 方法完成数据存储。
2025-05-14 09:25:08
345
原创 RDD运行过程
常见的 Transformation 操作包括 `map`、`filter`、`flatMap` 和 `join` 等。- **宽依赖(Wide Dependency)**:子 RDD 的单个分区可能依赖于父 RDD 的多个分区。- **窄依赖(Narrow Dependency)**:子 RDD 的每个分区最多依赖于父 RDD 的一个分区。- **容错性**:如果某个分区中的数据丢失,可以通过其血缘关系(Lineage Information)重新计算该分区的数据。
2025-05-14 09:22:32
381
原创 tool接口代码实现
如果需要支持自定义数据类型,则需实现 `Writable` 或 `WritableComparable` 接口,并重写 `write()` 和 `readFields()` 方法完成序列化与反序列化操作。- 自定义数据类型的序列化依赖于 `Writable` 或 `WritableComparable` 接口的具体实现。在此代码中,`FlowBean` 定义了一个包含多个字段的对象,并实现了必要的方法以支持序列化/反序列化功能。1. **性能优化**
2025-05-14 09:19:52
269
原创 序列化和反序列化hadoop实现
**紧凑性**:相比 Java 原生的 `Serializable` 接口,Hadoop 的 `Writable` 不会携带过多元数据(如类名、字段签名等),从而节省存储空间。- **`readFields(DataInput in)`**:负责从输入流中恢复对象的状态。- **`write(DataOutput out)`**:负责将对象的状态写入到输出流中。假设我们需要传递一个人的对象,其中包含姓名 (`name`) 和年龄 (`age`) 属性。// 从输入流中读取整数。// 将整数写入输出流。
2025-05-14 09:17:51
506
原创 wordcount程序
输入项目的 GroupId 和 ArtifactId(如:GroupId=`com.example`, ArtifactId=`spark-wordcount`),继续下一步直至完成初始化。.setMaster("local[*]") // 若部署到集群则改为 spark://master:7077。- 打开 IDEA,选择 `File -> New Project`,接着选中 `Maven` 模板。编辑项目的 `pom.xml` 来引入 Spark 和 Scala 必需的库文件。
2025-05-14 09:14:45
482
原创 idea中编写spark程序
填写项目的 GroupId 和 ArtifactId(例如:GroupId 设置为 `com.example`, ArtifactId 设置为 `spark-app`),点击 Next 进入下一步。- 打开 IntelliJ IDEA,选择 `File -> New Project`,然后选择 `Maven` 模板。最终会得到类似于 `/target/spark-app-1.0-SNAPSHOT.jar` 的产物。编辑项目的 `pom.xml` 文件,添加 Spark 和 Scala 的相关依赖项。
2025-05-14 09:12:16
453
1
原创 Standalone 模式配置及运行
Spark Standalone 模式是一种独立的集群管理器,允许用户轻松地在自己的机器上或者一组机器上部署 Spark 集群。需要注意的是,在交互式 shell 场景下(`spark-shell`) ,虽然支持 Client Mode 默认行为,却不兼容 Cluster Mode 设定。为了让整个集群知晓最新改动过的 Spark 版本及相关配置信息,必须把当前修改好的 Spark 主目录复制到其余 Slave 节点上去。用于设置环境变量和其他高级选项。- 删除旧版本软链接,并创建指向新版本的软链接。
2025-05-14 09:08:58
429
原创 spark数据压缩
zlib/Snappy | 否/否 | 慢/非常快 | 中等/低 | org.apache.hadoop.io.compress.DefaultCodec<br>org.apache.hadoop.io.compress.SnappyCodec | 是/否 |例如,bzip2 虽然具有很高的压缩率,但由于其较慢的速度和较高的 CPU 开销,通常不适用于实时或高频次的任务。尽管如此,不同的压缩格式可能带来不同程度的影响。
2025-05-14 09:05:56
423
原创 shell操作
**Get-ChildItem**:类似于 `ls` 命令,用于列出文件和目录。- **dbshell**:Django 提供的命令可以直接进入数据库交互环境。- **移动或重命名文件**:`mv` 命令用于移动文件或将文件重命名。- **type**:判断某命令的具体类型(内置命令、外部命令或别名)。- **列出文件**:`ls` 命令用于显示当前目录下的文件列表。- **whereis**:查找二进制程序、源码以及手册页的位置。- **删除文件或目录**:`rm` 命令用于删除文件或目录。
2025-05-14 09:02:11
245
原创 ssh无密登录
按回车键接受默认路径存储密钥对,默认位置通常位于用户的`.ssh`目录下。完成后会在该目录看到两个文件:`id_rsa`(私钥) 和 `id_rsa.pub`(公钥)。编辑SSH服务的配置文件 `/etc/ssh/sshd_config` ,确保启用了密钥认证功能。将本地生成的公钥传输给目标主机(例如主机B),以便后者能够识别来自前者的请求。##### 方法一: 使用 `ssh-copy-id` 工具 (推荐)当提示输入密码时,请提供对应账户(`leon`)的有效凭证。
2025-05-14 08:59:42
283
原创 转换算子介绍
需要注意的是,所有的转换操作都是惰性的(Lazy),只有当触发行动算子(Action Operator)时才会实际执行。在Flink的`DataSet API`中,转换算子可以将一个数据集转化为另一个数据集。常见的转换算子包括但不限于`map`、`flatMap`、`filter`、`reduce`等。每种算子都有其特定的功能和适用场景。`flatMap`类似于`map`,但它还会将结果展平,适用于生成多个输出项的情况。`map`算子会对数据集中每一个元素应用给定的函数,并返回一个新的数据集。
2025-05-14 08:54:39
361
原创 打包Spark代码并在集群环境中运行
如果依赖了第三方库,则可以通过`--py-files`参数指定这些库的位置或将它们安装到集群上的所有节点。一旦完成了代码打包之后就可以借助 `spark-submit` 工具将其发送给目标集群去执行任务了。2. 将必要的依赖项加入到构建配置中,比如`org.apache.spark:spark-core_2.x:x.y.z`版本号应匹配所使用的Spark发行版。- 而当指定了 `yarn-client` 或者 `yarn-cluster` ,即意味着要连接到YARN资源管理系统之上运行该作业。
2025-05-14 08:50:29
337
原创 yarn的介绍
它是特定于某个应用的实体,负责向 ResourceManager 请求资源,并与 NodeManager 协同完成具体的任务执行逻辑。NodeManager 是每个节点上的代理服务,负责容器的生命周期管理、日志收集以及其他与单机相关的任务。它可以看作是一个分布式的操作系统平台,而像 MapReduce 这样的计算框架则是运行在其上的应用程序。Yarn 是 Hadoop 生态系统中的一个重要组成部分,它是一种分布式资源管理框架,旨在为大规模数据处理提供高效的资源管理和调度能力。
2025-05-14 08:48:33
407
原创 怎么理解RDD中的算子,算子有几类
它们标志着一系列先前定义好的转化过程结束,并促使 Spark 开始真正的物理运算阶段1。典型的例子有 collect(), count(), reduce() 等等。
2025-05-07 10:16:37
242
原创 RDD有哪几种创建方式
综上所述,无论是针对小型测试用途还是生产环境下涉及庞大数据量的实际运用场景,Spark 均提供了灵活简便的方式来生成所需的 RDD 结构形式以便后续进一步分析挖掘价值所在.除了能够直接由程序内部的数据构建外,RDD 还可以从诸如 HDFS,S3,Cassandra,HBase 等外部存储媒介里获取原始资料进而初始化自己.这是最简单的方式之一,适用于本地数据结构(如数组或列表)转化为分布式数据集的情况。这两种方法本质上都是把内存中的数据分布到集群的不同节点上去形成一个 RDD 实例。
2025-05-07 08:32:41
311
原创 什么是RDD
RDD(Resilient Distributed Dataset,弹性分布式数据集)是Spark的核心抽象概念之一1。它是一个不可变的、分区化的集合,可以在集群节点间分布存储和处理。RDD可以通过两种方式创建:一是从外部数据源(如HDFS文件或其他分布式存储系统)加载;二是通过对其他已存在的RDD进行转换操作。基于内存计算:RDD通过将数据加载到内存中,显著提升了数据处理的速度。相比传统依赖磁盘I/O的操作,内存访问速度快得多,这使得RDD非常适合需要频繁迭代的数据处理任务1。惰性计算。
2025-05-07 08:30:57
376
原创 如何在idea中写spark程序
在弹出窗口中选择 `Scala` 类型的项目,并勾选 `Create project from template` 和 `SBT` 模板。对于更复杂的场景则推荐采用 spark-submit 方法提交给远程真实的大规模计算平台去执行任务。接着输入项目的名称与保存路径后点击 Finish 完成初始化过程。上述代码片段展示了如何向您的构建文件添加核心模块以及其他可选组件如 SQL 支持或者 Streaming 功能的支持。- 对于大数据量的操作建议切换到正式生产的 HDFS 存储之上而非临时的小范围测试集。
2025-04-28 19:44:50
422
原创 如何搭建spark yarn 模式的集群集群
这里指定了驱动器内存大小为 1GB (`--driver-memory`) ,每个执行者分配同样容量(`--executor-memory`)加上单核 CPU 处理能力(`--executor-cores`). 参数后面跟着的是 JAR 文件位置连同其主入口函数参数值.其中 `<namenode-host>` 是 HDFS NameNode 的主机名,而 `<history-server-host>` 则是 Spark History Server 所在的主机名称。#### 2. 下载与解压 Spark。
2025-04-28 19:43:32
691
原创 spark和Hadoop之间的对比和联系
功能层面,Spark 提供了一套更为丰富的生态系统,涵盖了多个子项目,如 Spark Core、Spark SQL、Spark Streaming、MLlib(机器学习库)、GraphX(图计算库)等。关于两者的联合使用情况可以从一个具体的例子来说明:在一个基于 CentOS 构建的小型测试环境中,采用双节点配置方式分别设置 master 和 slave 角色;相比之下,Hadoop MapReduce 则依赖于磁盘进行数据交换,这使得它的执行效率较低,尤其是在需要多次迭代的任务场景下。
2025-04-23 11:13:01
469
原创 yarn的三大组件及各自的作用
**调度策略实施**:依据预设好的调度算法(例如 FairScheduler 或 CapacityScheduler)决定如何将有限的计算能力合理地分派给不同的应用程序实例。- **资源监控与分配**:通过接收来自各节点 NodeManager 的心跳信号来监控集群中每台机器的资源使用情况(如 CPU 和内存),并将这些资源整合起来形成统一视图。- **周期性汇报状态**:定时向中央级别的 ResourceManager 上报当前设备剩余可利用资源数量以及正在运行中的所有容器详情。
2025-04-18 15:08:53
327
原创 yarn的定义
**Container**: Container 是 YARN 中最小的资源单位,表示一组被分配出去的具体物理资源(例如一定量的内存或处理器核数)。- **NodeManager**: 运行在每个工作节点上,负责启动和停止任务容器,并定期向 ResourceManager 报告本地资源使用情况。- **ResourceManager**: 负责接收来自各个节点的心跳信号,监控可用资源的状态,并将资源分配给不同应用的任务容器。#### 2. **YARN 在 Hadoop 生态系统中的角色**
2025-04-18 15:06:56
362
原创 Hadoop的三大结构及各自的作用
### Spark 中与 Hadoop 三大结构相关的概念及各自的作用尽管 Spark 并不完全依赖于 Hadoop 的三个核心组件(HDFS、YARN 和 MapReduce),但它可以通过兼容的方式与其交互。以下是 Spark 对应于 Hadoop 三大结构的相关概念及其作用:---#### 1. **Spark Core 替代 Hadoop MapReduce**Spark Core 是 Spark 的基础模块,提供了类似于 Hadoop MapReduce 的分布式计算能力,但其性能更高且更灵活。S
2025-04-18 15:05:20
687
原创 Yarn的安装及环境配置
针对 Windows 用户,在使用 npm 安装完 Yarn 后,还需要手动调整 PATH 变量,确保能够调用到 Yarn 的可执行文件。需要注意的是,执行前可能需要管理员权限(即加上 `sudo`),具体取决于用户的操作系统和 npm 配置。返回的结果应显示当前安装的 Yarn 版本号。如果没有正常工作,请重新检查之前的安装过程或尝试修复路径配置。在安装 Yarn 前,需确认系统中已经安装了 Node.js。如果未安装,则需要先完成 Node.js 的安装。#### 4. 验证 Yarn 是否安装成功。
2025-04-18 15:01:46
802
原创 mapreduce的工作原理
在这个阶段里,各个工作节点读取对应的分片内容,并通过用户自定义函数逐一操作每条记录。经过map之后产生的大量无序杂乱结果需要整理一下才能继续下一步骤,在shuffle期间相同keys的结果会被送到相同的reducer那里去准备reduce运算之前还要排序以便于某些特定算法的应用如合并临近项等优化措施。首先,系统会把原始的大规模数据分割成若干小的数据块(称为“分片”)。整个流程简单易懂又能很好适应各种复杂的业务场景需求,广泛用于大数据领域当中完成离线批处理等工作负载类型的任务解决办法之一。
2025-03-31 19:48:54
159
原创 Hadoop集群的常用命令
对应unix系统的chmod功能,在这里表现为:`hdfs dfs -chmod [options] path...`,例如赋予用户完全访问权能则写成'hdfs dfs -chmod 700 filepath'.可通过`hdfs dfs -get hdfs_file_path local_destination_path`把存储于HDFS中的文档取回本机保存。若要了解特定路径的内容摘要信息(包括大小等),可以用`hdfs dfs -du -s -h /targeted/hdfs/dir/or/file`.
2025-03-31 19:47:45
198
原创 虚拟机IP配置
配置网关时,网关地址必须在子网ip范围内,即192.168.10.0 ~ 192.168.10.255,但其中192.168.10.0、192.168.10.1(本机)和192.168.10.255(广播)这三个ip地址为保留地址,除此三个,其余ip地址均可作为网关ip,我们以192.168.10.2作为网关ip。动态ip固然能用,但是dhcp所分配的ip地址存在有效时间,一旦过期,则会重新分配另一个ip地址,频繁变动的ip地址对我们来说是一个麻烦事。网关和子网掩码呀,网关都没有,谈何ip地址呢?
2025-03-03 19:43:53
951
原创 vi常见操作命令
**插入模式**:在命令模式下按下'i'、'a'、'o'等键可进入,此时可以输入文本。- **底行模式**:通过在命令模式下输入':'进入,用于执行保存、退出、查找替换等全局操作。3. 编辑操作: - **i**:在当前光标位置插入文本。4. 查找与替换: - **/word**:查找"word"。5. 保存与退出: - **ZZ**:在正常模式下保存并退出。**:不保存强制退出。6. 复制与粘贴: - **yy**:复制当前行。8. 其他常用命令: - **J**:将当前行与下一行合并为一行。
2025-03-03 19:40:50
328
原创 linux常见操作命令
arguments]表示有的命令有参数,有的命令可能没有参数。用括号在区分:d(rwx)(r-x)(r-x)文件类型(所有者权限)(文件所在组的权限)(其他人的权限);(1)第1段,drwxr-xr-x,表示文件属性,第1个字母d表示这个是个目录,如果是“-”表示文件。第3位表示是否有执行的权限,有执行的权限,显示“x”,没有执行的权限,显示“-”。第1位表示是否有读的权限,有读的权限,显示“r”,没有读的权限,显示“-”。第2位表示是否有写的权限,有写的权限,显示“w”,没有写的权限,显示“-”。
2025-03-03 19:24:59
254
原创 vm+centos虚拟机
1.进入VMware官网:https://www.vmware.com/sg/products/workstation-pro.html。打开VMware虚拟机,「文件 → 新建虚拟机 → 自定义 → 下一步」。按方向键选择第一项 Install CentOS 7,按回车Enter键。1.在文件夹中找到安装好的安装包点开,出现以下界面后点击“下一步”2.向下翻找到,如下界面并点击“现在安装”
2025-03-03 19:24:14
256
原创 Scala:正则表达式
/ reg1.findAllIn("136123456781").toList.foreach(println) //非贪婪。// reg1.findAllIn("136123456781").toList.foreach(println) //贪婪。原文链接:https://blog.csdn.net/2402_87106544/article/details/144216495。".r //非贪婪模式。// val reg1="\\d{3,6}".r //贪婪模式。
2024-12-12 09:34:09
403
原创 Scala:函数的泛型
原文链接:https://blog.csdn.net/2402_87106544/article/details/144379794。// getMiddleEle(List(1,2,3,4,5)) ==> 5/2 = 2 ==> 下标为2的元素是:3。// getMiddleEle(List(1,2,3,4)) ==> 4/2 = 2 ==> 下标为2的元素是:3。// List是数据类型,表示一个列表,[Int] 表示泛型,它约定列表中每一个元素都是Int类型。//(1)可以有多个。
2024-12-12 09:32:23
344
原创 Scala:隐式转换
/2.需要修改这个默认值是,定义一个同类型的 隐式值:implicit 修饰变量。//需求:更改函数参数的默认值(不传入这个值的时候,用到的值),不要写死。//用到了:implicit 函数+普通类StrongString。//1.定义函数的默认值时,添加implicit。//隐式转换:编译器自动滴,偷偷滴,把数据A->B。//补充一个求阶乘的函数。//格式:implicit object。//作用:给函数的默认参数提供隐式值。//目标:给字符串添加新的功能。//函数的默认参数值:小花。
2024-12-11 22:20:50
274
原创 Scala:习题(找出所需内容,把最后的结果写入一个新文件中)
writer.println(s"姓名:${s.name},语文:${s.yuwen},数学:${s.shuxue},英语:${s.yingyu},总分:${s.zongfen},平均分:${s.pinjunfen}")// println("语文:",arr(1).toInt)// println("数学:",arr(2).toInt)// println("英语:",arr(3).toInt)// println("平均分:",total/3)// println("姓名:",arr(0))
2024-12-04 14:39:51
455
原创 Scala:守卫语句格式
case Array(1,x,y)=>println(s"3个元素,且第一个为1,第二个是${x},第三个是${y}")// case Array(1,x,y)=>println(s"三个元素,且第一个为1,第二个是${x},第三个是${y}")// case _:Int =>println(s"$x 是Int 类型的")//_:Int 表示变量是Int类型。// case Teacher(a,b)=>println(s"${b}老师${a}")// val t1=Teacher("小明","体育")
2024-12-04 14:39:07
289
原创 Scala:打印指定信息
"周鸿祎 - 360" -> 1970, // 杀毒软件 3Q大战。"马云 - 阿里巴巴" -> 1964, // 猫。"马化腾 - 腾讯" -> 1971, // QQ。"马云 - 阿里巴巴" -> 1964, // 猫。"马化腾 - 腾讯" -> 1971, // QQ。"丁磊 - 网易" -> 1971, // 猪厂。"刘强东 - 京东" -> 1974, // 狗。"丁磊 - 网易" -> 1971, // 猪厂。"刘强东 - 京东" -> 1974, // 狗。
2024-12-04 14:37:46
275
原创 Scala:case class 习题
val dream1 = DreamItem("一台立标奔驰", false, "2000-10-10", 3)val dream2 = DreamItem("中奖100万",false,"2000-10-10",2)val dream3 = DreamItem("打卡世界各地",false,"2000-10-10",1)dreamList += DreamItem("打卡每个省",false,"2000-10-10",1)
2024-12-04 14:36:54
181
原创 Scala:根据身份证号码,输出这个人的籍贯
case _ => println("我不知道!case "42"=>println("湖北")case "42"=>println("浙江")case "42"=>println("北京")case "42"=>println("上海")例如:42表示湖北,33表示浙江,11表示北京,31表示上海。// println("未知", provice)// println("湖北")// println("浙江")// println("北京")// println("上海")
2024-12-04 14:36:05
358
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人