自定义博客皮肤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)
  • 收藏
  • 关注

原创 在hadoop中实现序列化与反序列化

Hadoop 定义了自己的序列化框架,核心是Writable接口。与 Java 原生的相比,Writable接口设计更注重性能,其序列化过程更紧凑、速度更快,适合大数据环境下的高效数据传输。Writable:将对象状态写入输出流:从输入流中读取数据并恢复对象状态下面通过一个自定义的Person类来演示如何实现Writable// 必须提供无参构造函数// Getter和Setter方法// 实现Writable接口的write方法@Override。

2025-05-20 08:27:36 627

原创 如何在Java中实现 序列化与反序列化

序列化是将对象转换为字节流的过程。在 Java 中,许多场景下我们需要将对象保存到文件中,或者通过网络传输对象,而这些操作不能直接对对象进行,因为对象在内存中是以特定的数据结构存在的,无法直接被存储或传输。通过序列化,我们可以把对象的状态信息转换为字节序列,这样就可以方便地将其保存到磁盘上或者在网络中传输。Java 中的序列化与反序列化是一项非常实用的技术,它为对象的存储和传输提供了便利。通过实现接口,使用和等类,我们可以轻松地完成对象的序列化和反序列化操作。但在实际应用中,要注意版本兼容性、

2025-05-20 08:21:46 964

原创 SparkSQL:从 CSV 文件读取数据并写入 MySQL 实战

通过以上步骤,我们成功实现了使用 SparkSQL 从 CSV 文件读取数据并写入 MySQL 数据库。在实际应用中,可能会遇到更复杂的情况,如 CSV 文件包含大量数据、存在缺失值或异常值等,需要进一步结合 SparkSQL 的丰富功能进行处理。掌握这一数据导入方式,能为大数据与传统数据库结合的应用场景提供有力支持。

2025-05-14 10:00:00 801

原创 MapReduce 实现 WordCount

MapReduce 由 Google 提出,后来被开源实现并广泛应用于大数据框架(如 Hadoop)中。它主要由两个阶段组成:Map 阶段和 Reduce 阶段。Map 阶段:负责将输入数据进行拆分,然后对每个数据片段执行用户定义的 Map 函数,生成一系列的中间键值对。Reduce 阶段:将 Map 阶段产生的具有相同键的中间值进行聚合处理,执行用户定义的 Reduce 函数,最终得到处理结果。通过 WordCount 这个经典实例,我们深入了解了 MapReduce 编程模型的工作原理和实现方式。

2025-05-14 09:30:00 1348

原创 使用 FinalShell 实现 HDFS 客户端文件上传

通过 FinalShell 进行 HDFS 客户端文件上传,为我们在大数据环境下管理和传输数据提供了一种便捷的方式。只要做好前期的环境准备工作,掌握基本的上传命令和注意事项,就能够高效、稳定地将本地文件上传到 HDFS 中进行存储和后续处理。希望本文能帮助你顺利完成相关操作,在大数据处理的工作中更加得心应手。

2025-05-14 08:45:00 1267

原创 SparkSQL 连接 MySQL 并添加新数据:实战指南

通过本文的介绍,你应该已经掌握了使用 SparkSQL 连接 MySQL 数据库并添加新数据的基本方法。在实际应用中,还可以进一步探索 SparkSQL 与 MySQL 结合的更多功能,如复杂查询、数据更新和删除等操作。合理利用 SparkSQL 和 MySQL 的优势,能够为大数据处理和存储带来更高的效率和灵活性。

2025-05-13 17:45:00 1049

原创 MySQL 数据库:创建新数据库和数据表全攻略

创建新数据库和数据表是 MySQL 数据库操作的基础。通过合理设置数据库的字符集、数据表的结构、数据类型和约束条件等,可以确保数据库能够高效、稳定地存储和管理数据。希望本文能帮助你熟练掌握这些操作,在实际开发和数据管理中运用自如。

2025-05-13 13:45:00 1990

原创 SparkSQL入门指南:从基础到实践的全面解析

SparkSQL为结构化数据处理提供了强大而灵活的工具,通过DataFrame、Dataset和SQL接口,开发者可以轻松处理各种数据源。本文介绍了SparkSQL的基本概念、核心功能和实际应用,包括DataFrame操作、SQL查询、连接外部数据源、UDF和性能优化等方面。SparkSession是Spark 2.0引入的新入口点,它整合了SparkContext、SQLContext和HiveContext的功能,提供了统一的API接口。创建DataFrame是使用SparkSQL的第一步。

2025-05-13 13:00:00 2058

原创 MySQL 数据库配置:从基础到优化的全面指南

MySQL 数据库配置是一个复杂而又重要的工作,涉及到连接设置、内存管理、日志记录、性能优化和安全保障等多个方面。通过合理配置这些参数,可以使 MySQL 数据库更好地适应不同的应用场景,提高其运行效率和稳定性。希望本文能为你在 MySQL 数据库配置方面提供有益的参考。

2025-05-13 08:40:49 977

原创 RDD中分区、分区器及自定义分区器的学习

虽然 Spark 的内置分区器能够满足大多数常见的应用场景,但在某些情况下,我们可能需要根据具体业务逻辑自定义分区器,以实现更高效的数据分布和处理。:返回分区的数量。:根据给定的键(Key)计算该数据应该分配到的分区编号。equals:判断两个分区器是否相等,通常用于在分布式环境中确保分区器的一致性。下面通过一个简单的示例来展示如何自定义分区器。

2025-05-13 08:23:34 621

原创 Spark中缓存的使用

Spark的缓存操作是惰性的,调用 `cache()` 或 `persist()` 方法只是标记了要缓存的RDD,并不会立即执行缓存操作。在上述代码中,`dataRDD` 是从文本文件创建的RDD,调用 `cache()` 后,`cachedRDD` 会被缓存。当一个Spark作业包含多个阶段,且中间阶段的数据集会被后续多个阶段重复使用时,缓存中间数据集可以减少数据的重新计算和shuffle操作,优化整个作业的执行性能。将数据集缓存后,后续查询可以直接从缓存中读取数据,快速返回结果,提升用户体验。

2025-05-09 13:00:00 924

原创 Spark中RDD算子的介绍

比如,当函数返回的是一个集合时,`flatMap` 会把这些集合中的元素合并到新的RDD中。它对RDD中的每个元素应用一个函数,返回一个新的RDD,新RDD的元素是原RDD元素经过函数转换后的结果。(三)reduce算子 `reduce` 算子接收一个二元函数,对RDD中的元素进行聚合计算。上述代码中,`map` 将 `numbers` RDD中的每个数字平方,生成新的 `squaredNumbers` RDD。这里,`filter` 筛选出了 `numbers` RDD中的偶数。

2025-05-07 15:54:20 1157

原创 在scala中,转换算子和行动算子有什么区别

比如 `count` 统计RDD中元素个数, `collect` 将RDD所有元素拉取到Driver端, `saveAsTextFile` 把RDD数据保存为文本文件。像通过 `map` 对数据进行格式转换、计算新值;**行动算子**:`count`、`collect`、`reduce`、`first`、`take`、`saveAsTextFile` 等。**转换算子**:`map`、`filter`、`flatMap`、`distinct`、`groupBy`、`union` 等。

2025-05-07 15:37:58 319

原创 在FinalShell中写代码:全面指南

代码输入完成后,按 `Esc` 键退出插入模式,接着输入 `:wq` (`w` 表示保存,`q` 表示退出)保存并退出文件;如 `gcc test.c -o test` 编译C语言文件 `test.c` 生成可执行文件 `test` ,然后通过 `./test` 运行并查看结果。在FinalShell终端中,可使用常见的Linux文件管理命令,如 `ls` 查看目录文件列表,`cd` 切换目录,`mkdir` 创建目录,`rm` 删除文件或目录等,方便管理代码文件。比如,使用 `dd` 命令可删除整行;

2025-05-06 11:09:55 893

原创 Spark 配置 YARN 模式

如果开发了自己的 Spark 应用程序,需要将其打包成 JAR 包。可以使用 Maven 或 Gradle 等构建工具进行打包,确保依赖项都包含在 JAR 包中。通过以上步骤,我们成功地将 Spark 配置为 YARN 模式,并能够在 YARN 集群上提交和运行 Spark 应用程序。这种配置方式使得 Spark 能够充分利用 YARN 强大的资源管理能力,在大数据处理场景中更加高效地运行。

2025-04-29 09:01:50 866

原创 相关进程名对应的启动命令及其作用

在Spark Standalone模式下,通过执行 `$SPARK_HOME/sbin/start - worker.sh spark://<master - host>:<master - port>` 命令启动,或者在启动整个集群时使用 `$SPARK_HOME/sbin/start - all.sh` 也会启动该进程。是Spark Standalone集群中的工作节点进程。在Spark中,使用 `$SPARK_HOME/sbin/start - history - server.sh` 命令启动。

2025-04-29 08:58:34 695

原创 如何在idea中编写spark程序

在大数据处理领域,Apache Spark 凭借其强大的分布式计算能力,成为了众多开发者的首选工具。而 IntelliJ IDEA 作为一款功能强大的集成开发环境(IDE),为编写 Spark 程序提供了便捷的开发和调试环境。本文将详细介绍如何在 IntelliJ IDEA 中编写 Spark 程序。

2025-04-28 19:53:19 845

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

在大数据处理领域,Spark 是一款强大的分布式计算框架,而 YARN(Yet Another Resource Negotiator)则是 Hadoop 生态系统中的资源管理系统。将 Spark 与 YARN 结合使用,可以充分利用 YARN 的资源管理能力,实现高效的 Spark 集群部署和运行。本文将详细介绍如何搭建 Spark YARN 模式的集群。

2025-04-28 19:49:51 1105

原创 配置Spark历史服务器,轻松查看任务记录

在`spark - env.sh`文件中添加以下配置: ``` export SPARK_HISTORY_OPTS="-Dspark.history.fs.logDirectory=hdfs://hadoop100:8020/directory" ``` 这一步是为历史服务器指定日志存储目录,使其能够正确读取和展示任务历史记录。进入`/opt/module/spark - standalone/sbin`目录,运行命令`./stop - all.sh`,停止当前正在运行的Spark集群。

2025-04-23 16:04:59 789

原创 如何在spark里搭建local模式

以Linux系统为例,可在`~/.bashrc`或者`~/.bash_profile`文件里添加如下内容: ```bash export SPARK_HOME=/path/to/spark export PATH=$PATH:$SPARK_HOME/bin ``` 然后运行以下命令让配置生效: ```bash source ~/.bashrc ```在IDE中直接运行编写好的Spark代码。使用`pip`安装`pyspark`库: ```bash pip install pyspark ```

2025-04-22 09:41:17 530

原创 spark和hadoop之间的对比和联系

**最佳实践**: 采用 **Hadoop 存储数据**,**Spark 作为计算引擎**,并结合 Hive/Impala 等工具实现高效查询,形成“存储与计算分离”的大数据平台。基于 **分布式内存计算** 的流式/批处理模型,支持实时计算和批量计算,通过内存缓存数据减少磁盘IO,尤其适合需要迭代计算(如机器学习、图计算)的场景’。- 实际应用中,常采用 **HDFS 存储数据**,**Spark 作为计算引擎** 替代 MapReduce,提升处理效率。

2025-04-22 08:27:28 954

原创 spark数据清洗案例:流量统计

通过使用Spark进行数据清洗和流量统计,我们能够从原始的、杂乱的流量数据中提取出有价值的信息。通过对流量数据进行准确统计和分析,企业可以了解用户的访问习惯、业务的热门程度等,从而为决策提供有力支持。然而,原始的流量数据往往存在格式不规范、缺失值、异常值等问题,这就需要进行数据清洗工作。流量数据通常来源于服务器的日志文件,这些日志记录了用户的每一次访问请求,包括访问时间、用户IP、请求的页面、产生的流量大小等信息。3. **处理异常值** 对于流量统计,比如流量大小不能为负数,可以过滤掉异常数据。

2025-04-09 15:54:36 685

原创 MapReduce的工作原理

分区是根据键的哈希值将数据分配到不同的分区,以便后续Reduce任务可以处理相应分区的数据;例如,在一个单词计数的MapReduce作业中,Map函数会对输入文本中的每一行进行处理,将每行文本拆分成单词,并输出<单词, 1>这样的键值对。继续以单词计数为例,Reduce函数会对相同单词的所有值(这里都是1)进行累加,最终输出<单词, 单词出现的总次数>这样的键值对,得到单词在整个输入文本中的出现次数。1. **数据分片(Input Split)**1. **数据拉取(Shuffle)**

2025-04-02 14:36:35 191

原创 hadoop集群的常用命令

例如,`hadoop jar my - job.jar com.example.MyMapReduceJob /input /output` ,其中`my - job.jar`是包含MapReduce程序的JAR包,`com.example.MyMapReduceJob`是主类,`/input`和`/output`是作业的输入输出路径。如`hadoop fs -mkdir /user/new_dir` ,可在`/user`路径下创建名为`new_dir`的目录。1. **启动集群**2. **停止集群**

2025-04-02 14:34:54 377

原创 大数据的特点及发展脉络

大量,高速,多样(结构化数据和非结构化数据),低价值密度。高可靠性,高拓展性,高效性,高容错性。阶段二:大数据时代—分布式处理。Hadoop的又是(四高)阶段三:实时大数据时代。

2025-03-31 20:11:33 170

原创 vi编辑器常见命令

第二步-进入编辑模式:按下 i 此时键盘可以正常打字。第四步-退出编辑模式,按下 esc 回到了命令模式。第六步-查看刚才创建的文件内容 ,cat a.txt。在命令模式下按下shift+zz可以实现快速保存退出。4.在命令模式下,按下G可以跳到文件的最后一行。5.在命令模式下,按下gg可以跳到文件的第一行。p,将内容粘贴到当前光标所在行的下一行。P,将内容粘贴到当前光标所在位置的后面。nyy,复制当前行往下n行的内容。dd,删除光标所在当前行内容。yy,复制光标所在行的内容。

2025-03-31 20:11:10 319

原创 scala中隐式参数与隐式值的使用

隐式参数是一种在函数或方法调用时,编译器可以自动提供参数值的机制。这些参数在函数定义时使用。隐式值是在作用域内可以被编译器自动用于填充隐式参数的值。隐式对象的定义和普通单例对象的定义类似,只是需要在对象定义前加上。2、代码写一个单独文件,要用的时候就导入。关键字来修饰一个类定义。

2025-03-11 11:30:00 213

原创 关于vmware虚拟机ip配置我有以下几点要说

。。。。。。。。

2025-03-03 19:31:14 645

原创 来尝一口vi常见操作命令吧!

【代码】来尝一口vi常见操作命令吧!

2025-03-03 19:26:12 267

原创 胜天半子学学linux指令

tar -xvf test.tar -C ./temp(-xf也行)(/temp要提前建立好)命令是: tar -cvf test.tar 1.txt 2.txt 3.txt。把一个压缩文件(test.tar)解压出来,就放在指定目录(/temp)移动操作:mv file.txt newdir/file.txt。把1.txt,2.txt,3.txt压缩到test.tar文件中。-c 建立一个压缩文件,把多个文件或者文件夹压缩到一个新的文件中。-x 解压缩文件,把一个压缩文件中的内容全部解压出来。

2025-02-28 16:00:00 577

原创 今天开始我要自己安装VMware和centos

在“安装信息摘要”界面,设置“日期和时间”、“键盘”、“软件选择”等信息。- 点击“安装位置”,选择自动分区或手动分区,设置完成后点击“完成”。- 安装完成后,点击“重启”。- 在弹出的“新建虚拟机向导”中,选择“典型(推荐)”,然后点击“下一步”。3. 选择安装来源 - 选择“安装程序光盘映像文件(ISO)”,点击“浏览”按钮,找到之前下载好的CentOS镜像文件,然后点击“下一步”。4. 选择安装位置 - 可以选择默认的安装位置,也可以点击“更改”按钮,自定义安装路径,之后点击“下一步”。

2025-02-27 10:00:00 366

原创 重学三次linux归来仍是绝望的文盲

mkdir 创建目录,如 mkdir 目录名称。rm -rf ./bbb 将目录及以下所有递归逐一删除,无需用户确认。rm -rf /* 将根目录及以下所有递归逐一删除,无需用户确认。mkdir -p 创建目录,如果父级目录不存在,那就建立一个。ls 列出目录内容,-1 详细列表,-a 显示隐藏文件。目录或文件名以.开头表示是隐藏文件,以./开头表示当前路径。大量,高速,多样(结构化数据和非结构化数据),低价值密度。高可靠性,高拓展性,高效性,高容错性。阶段二:大数据时代—分布式处理。

2025-02-25 10:38:31 137

原创 scala中 隐式转换

以下是使用隐式函数更正后的 Scala 代码,主要思路是通过定义隐式转换函数,让普通的。隐式转换: 编译器 偷偷地,自动地帮我们把一种数据类型转换为另一种类型。例如: int --> double。类型,这样就可以直接在。三、校验自己的手机号。

2025-02-19 17:06:08 330

原创 scala中正则表达式的使用2.0

【代码】scala中正则表达式的使用2.0。

2025-02-18 17:56:32 254

原创 scala中的正则表达式案例

三、将上列ID转换为下列加密后的ID。一、使用正则表达式验证合法用户名。二、将字符串中的手机号打码。

2024-12-25 16:45:51 310

原创 scala中正则表达式的使用

表示匹配一个或多个单词字符(字母、数字、下划线)。表示匹配字符串的开头,

2024-12-19 20:20:21 722

原创 scala中模式匹配的应用

【代码】scala中模式匹配的应用。

2024-12-19 20:19:46 582

原创 scala中的格式匹配

用户输入一个年份,判断是否闰年。

2024-12-13 12:30:00 206

原创 scala中根据身份证判断籍贯

我们今天接到一个开发任务,就是根据身份证号码,输出这个人的籍贯。例如:42表示湖北,33表示浙江,11表示北京,31表示上海。

2024-12-11 14:49:14 282

原创 scala习题

在scala中是没有break和continue关键字的,如果一定要用,可以用scala.util.control包下的Breaks类的break。任务1:打印数字1~100,每一行包括一组5个数,每组换行。任务3:输入一个正整数n,输出一个高度为n的等腰三角形。任务2:输入一个正整数n,输出斐波那契数列的前n项。问题5:continue的功能是什么?问题4:设置返回值用?功能:跳出本轮循环,进入下一轮。问题1:for循环的格式?问题2:如何设置循环守卫?问题3:如何设置循环步长?

2024-12-09 14:51:06 150

空空如也

空空如也

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

TA关注的人

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