- 博客(56)
- 收藏
- 关注
原创 spark缓存-persist
在 Spark 中,persist()是一个非常强大的方法,用于将 RDD 或 DataFrame 持久化到内存、磁盘或其他存储介质中。与cache()方法相比,persist()提供了更多的灵活性,允许你指定不同的存储级别。这使得你可以根据具体需求优化性能和资源使用。
2025-05-13 12:23:30
551
原创 spark缓存-cache
是 Spark 中最简单的缓存方法,它将 RDD 或 DataFrame 持久化到内存中。缓存的数据会占用内存或磁盘空间,因此需要合理控制缓存的大小,避免占用过多资源。缓存的数据会占用内存或磁盘空间,如果不再需要缓存的数据,可以手动释放它们。如果数据预处理步骤复杂且耗时,可以将预处理后的数据缓存起来,以便后续使用。:将数据序列化后存储在内存中,如果内存不足,则将剩余数据存储到磁盘上。:将数据存储在内存中,如果内存不足,则将剩余数据存储到磁盘上。:将数据存储在内存中,如果内存不足,则会丢弃旧数据。
2025-05-13 12:20:57
493
原创 mysql数据库创建新数据库和数据表
首先,确保你已经安装了 MySQL,并且可以通过命令行或 MySQL 客户端工具(如 MySQL Workbench)登录到 MySQL 服务器。以下是一个完整的示例,展示了如何创建数据库、创建表、插入数据、查询数据和删除数据。输入你的 MySQL 用户名和密码后,即可登录到 MySQL 命令行。语句创建新的数据表。创建数据库后,需要选择该数据库作为当前操作的上下文。:主键,唯一标识表中的每一行。语句创建一个新的数据库。语句向表中插入数据。语句查询表中的数据。语句删除表中的数据。语句更新表中的数据。
2025-05-13 12:17:36
384
原创 sparkSQL读入csv文件写入mysql
确保 CSV 文件中的数据类型与 MySQL 表中的数据类型匹配。在生产环境中,避免在代码中直接写入数据库用户名和密码。以下是一个完整的代码示例,展示了如何从 CSV 文件读取数据并写入 MySQL 数据库。确保你的 Spark 环境中已经安装了 MySQL JDBC 驱动。确保你的 MySQL 数据库已经创建好,并且有一个目标表用于存储数据。确保 Spark 集群可以访问 MySQL 数据库服务器,网络连接正常。如果数据量较大,可以考虑使用分区写入,以提高性能。如果你使用的是 SBT,可以在。
2025-05-13 12:14:00
380
原创 sparkSQL基本使用
Spark SQL 是 Spark 中用于处理结构化数据的强大工具,它提供了类似于传统 SQL 的语法和 API,使得数据处理更加直观和高效。通过创建 DataFrame 和临时视图,可以使用 SQL 查询数据,并将结果保存到文件或 Hive 表中。
2025-05-13 12:11:20
810
原创 RDD算子-转换算子
RDD 的转换算子是 Spark 中非常强大的功能,它们使得数据处理变得灵活且高效。通过这些算子,你可以对 RDD 进行各种复杂的转换操作,生成新的 RDD。转换算子是惰性求值的,只有在执行行动操作时才会触发计算。
2025-05-13 12:09:08
311
原创 spark-shell中写代码
在中编写和运行代码是一种快速测试 Spark 程序的方式,适合进行简单的数据处理和调试。提供了一个交互式的 REPL(Read-Eval-Print Loop)环境,可以即时执行代码并查看结果。以下是关于如何在中编写代码的详细说明,包括启动、基本操作、常用命令和一些示例代码。
2025-05-13 12:05:26
601
原创 RDD的基本介绍
RDD 是一种分布式数据集,它将数据分布在集群的多个节点上,允许开发者以一种分布式的方式对数据进行并行操作。RDD 的设计灵感来源于分布式内存抽象的概念,旨在提供一种高效、容错且可扩展的数据处理方式。分布式:数据被分割成多个分区(Partition),每个分区存储在集群的不同节点上。弹性:RDD 具有容错性,即使部分节点发生故障,数据也可以通过重新计算恢复。不可变:RDD 是不可变的,一旦创建,其内容不能被修改。如果需要修改数据,必须通过转换操作生成一个新的 RDD。
2025-05-13 12:03:31
829
原创 idea写spark程序
推荐使用社区版(Community Edition),它已经足够支持 Spark 程序的开发。设置项目名称、项目路径和 SDK(建议使用 JDK 1.8 或以上)。确保你的机器上安装了 Java 和 Scala,并且环境变量配置正确。如果使用集群,需要配置好集群的环境(如 Hadoop、YARN 等)。如果项目中引入了多个库,可能会出现依赖冲突。安装完成后,重启 IntelliJ IDEA。在代码中设置断点(点击代码行号左侧的空白处)。如果一切配置正确,程序将运行并输出结果。命令查看依赖树,解决冲突。
2025-05-13 12:01:40
401
原创 运行Spark程序-在shell中运行
通过 SparkConf 类,你可以设置应用程序的名称、运行模式(如本地模式、集群模式)、资源分配(如内存、CPU 核心数)等。通过 SparkContext,你可以创建 RDD(弹性分布式数据集)、累加器、广播变量等,还可以与外部数据源进行交互。// 将元组的value按照key来分组,对所有的value执行聚合操作(相加)// 将单词转换为元组对象,key是单词,value是数字1。// 将单词进行切割,得到一个存储全部单词的RDD。// 收集RDD的数据并打印输出结果。// 读取文件,得到RDD。
2025-05-12 11:10:28
822
原创 运行Spark程序-在Idea中
复制之前的文件,重命名为WordCount_online,并修改两个地方:输入目录改成args(0), 输出的目录改成args(1)。它的功能是wordcount的功能:从指定的文件夹中去读取文件,并做词频统计。IDEA中,默认是不支持编写Scala的,需要额外配置一个插件。添加完成之后,刷新Maven,它会帮助我们去下载依赖。使用Maven创建项目,并在pom.xml文件中配置相关的依赖。在Idea中安装插件,使得Idea中可以编写scala代码。完成修改之后,要刷新maven,以下载相关的插件。
2025-05-12 11:08:45
303
原创 Spark集群搭建-Standalone
先把名称改成spark-default.conf,再补充两个设置。进入到hadoop100机器,切换目录到/opt/module/spark-standalone/sbin下,运行命令 ./start-all.sh。进入/opt/module/把解压的内容重命名一下,mv spark-3.1.1-bin-hadoop3.2/ spark-standalone。注意,这里不要省略./,它表示的是当前目录下的start-all命令,如果省略了./,它就会先去环境变量PATH中指定的目录来找这个命令。
2025-05-12 11:03:41
885
原创 Spark基础介绍
为了实现这样的要求,同时获得最大灵活性,Spark支持在各种集群管理器(Cluster Manager)上运行,包括Hadoop YARN、Apache Mesos,以及Spark自带的一个简易调度器,叫作独立调度器。Spark:Spark Streaming 提供了强大的实时数据处理能力,它可以将实时数据流分割成小的批次进行处理,实现准实时的数据分析。这里的 \ 是换行输入的意思,整体的代码就只有一句,只不过太长了,我们把它拆开成几个部分来输入,其中\ 的意思就是这里写不下,写在下一行。
2025-05-12 11:02:01
997
原创 Yarn-概述
YARN 是 Hadoop 生态系统中的资源管理系统,负责集群资源的管理和调度。它通过分布式架构和灵活的调度策略,支持多种计算框架,能够高效地管理大规模集群资源。YARN 的高可用性配置和丰富的监控工具使其成为大规模数据处理的理想选择。
2025-05-12 11:00:15
787
原创 数据压缩—
数据压缩可以分为有损压缩和无损压缩两类。即使你的MapReduce的输入输出文件都是未压缩的文件,你仍然可以对Map任务的中间结果输出做压缩,因为它要写在硬盘并且通过网络传输到Reduce节点,对其压缩可以提高很多性能,这些工作只要设置两个属性即可,我们来看下代码怎么设置。数据压缩是指在不丢失或尽可能少丢失数据信息的前提下,通过特定的算法和技术,对原始数据进行重新编码和处理,以减少数据存储空间或传输带宽的过程。,只需要在dirvier类的代码中,去设置在reduce端输出压缩开启,并设置压缩的方式即可。
2025-05-12 10:30:20
977
原创 MapReduce架构-序列化
序列化的时候,它会自动被调用,将一个内存中的对象,序列化成为一个字节序列。如果序列化的属性不是Hadoop的序列化类型,就要调用相应的方法把它进行序列化。反序列化时调用的方法,将一个字节序列,转成内存中的对象。下面我们来看一个例子:通过代码来定义一个类,并创建它的一个对象,把这个对象保存到文件中(序列化),然后再写代码读取这个文件并还原回来。反序列化就是将收到字节序列(或其他数据传输协议)或者是磁盘的持久化数据,转换成内存中的对象。常用的Java的数据类型与Hadoop的序列化的类型对比。
2025-05-12 10:26:14
457
原创 MapReduce架构-分区器
在MapReduce框架中,分区器(Partitioner)是一个关键组件,其主要作用是决定由一个maptask生成的键值,最终是生成在哪个文件中的。我们在做词频统计的时候,把a-m开头的保存在一个文件中,其他单词的统计结果保存在另一个文件中。回顾我们的需求,我们在做词频统计的时候,把a-m开头的保存在一个文件中,n-z开头的保存在另一个文件中。自定义分区器:如果使用自定义分区器,可以根据特定的逻辑(如键的首字母、键的范围等)将数据分配到不同的Reducer中。(2)它返回的分区号是从0开始,且是连续的。
2025-05-12 10:22:07
429
原创 MapReduce架构-数据清洗
它是指对采集到的原始数据进行预处理,以去除错误、重复、不完整或不一致的数据,使数据符合分析要求的过程。对于reduce函数来说,它的输入参数是:<刷选后的每一行的内容,[null,null,...]>,对于我们的需求来说,并不需要这个阶段: 没有汇总的需求,直接使用Map的结果。map阶段:按行读入内容,对内容进行检查,如果字段的个数少于等于11,就删除这条日志(不保留)<偏移量,每一行的内容> → <刷选后的没一行的内容,null>对于map函数来说,它的输入参数是:<偏移量,第一行的内容>
2025-05-12 10:19:29
374
原创 MapReduce打包运行
机器上,这就要求它具有很高的容错性。比如其中一台机器挂了,它可以把上面的计算任务转移到另外一个节点上运行,不至于这个任务运行失败,而且这个过程不需要人工参与,而完全是由。从 Java 9 开始,版本号的命名方式完全统一为 x,例如 Java 9、Java 11、Java 17 等,不再使用 1.x 的形式。我们集群上安装的java环境是1.8的,那么我们生成的代码也必须是这个版本的,否则,就会无法运行。我们集群上安装的java环境是1.8的,那么我们生成的代码也必须是这个版本的,否则,就会无法运行。
2025-05-12 09:41:08
782
原创 HDFS客户端操作
HDFS 客户端操作提供了丰富的命令来管理 HDFS 文件系统,包括文件和目录的创建、上传、下载、查看、删除等操作。通过这些命令,用户可以方便地与 HDFS 进行交互,完成各种文件操作任务。在使用过程中,需要注意路径、权限和性能优化等问题,以确保 HDFS 的高效运行。
2025-05-12 09:25:01
529
原创 HDFS概述
HDFS 是 Hadoop 生态系统中的核心组件,专为大规模数据存储和处理而设计。它通过分布式存储和多副本机制实现了高容错性、高吞吐量和高扩展性。虽然 HDFS 有一些限制,但通过合理的配置和优化,它可以满足大多数大数据处理场景的需求。
2025-05-12 09:10:53
617
原创 配置Hadoop集群-配置历史和日志服务
前面我们已经完成了任务日记的聚集,下面我们来看看是不是配置正确了。我们需要重新运行wordcount应用,然后再去看看是不是正确生成了日志。这里直接使用我们之前封装好的命令xsync来同步。打开yarn-site.xml文件,我们添加如下的配置。在该文件里面增加如下配置。请注意,你在配置的时候指定哪个节点是历史服务器,就在哪里启动,请不要搞错了。和之前的配置一样,我们需要把这个更新之后的yarn-site.xml文件。再从具体的history链接进行跳转。通过jps命令来查看历史服务器是否已经成功启动了。
2025-05-12 09:05:18
366
原创 Hadoop集群测试使用
通过以上测试步骤,你可以全面验证 Hadoop 集群的各个组件是否正常工作,包括 HDFS、MapReduce 和 YARN。如果在测试过程中遇到问题,可以通过查看日志文件(如。上传大量数据到 HDFS,并运行一个大规模的 MapReduce 任务(如处理 GB 级别的数据)。重复上述 WordCount 示例,确保在 NameNode 切换后,集群仍能正常运行任务。Hadoop 自带了一些示例程序,可以用来测试集群的 MapReduce 功能。在集群中添加新的节点,并将其配置文件同步到集群中。
2025-05-12 08:56:36
979
原创 配置Hadoop集群免密登录
如果 SELinux 限制了 SSH 免密登录,可以尝试临时禁用 SELinux 进行测试。通过以上步骤,可以实现 Hadoop 集群中节点之间的免密登录,从而简化集群操作。在每台从节点上,也需要重复上述步骤,生成密钥对并将其公钥分发到所有其他节点。如果无需输入密码即可登录,则表示免密登录配置成功。将主节点生成的公钥复制到所有从节点(如。:确保目标节点的 SSH 服务已启动。按提示输入三次回车,使用默认设置。
2025-05-12 08:46:31
567
原创 如何在idea中写spark程序
若要提交到集群运行,需打包项目(Maven或Gradle的打包命令),然后使用 spark-submit 命令提交到相应的集群环境(如YARN、Standalone等)。配置项目结构:在IDEA的项目结构设置中,指定好项目的SDK(Java和Scala),并标记好 src/main/scala (或 src/main/java )等源码目录。创建Maven或Gradle项目:打开IDEA,选择创建新项目,选择Maven或Gradle项目模板,设置好项目名称、组织等信息。注意版本号要根据实际需求修改。
2025-04-28 19:55:38
294
原创 如何搭建spark yarn 模式的集群
配置Hadoop的核心配置文件,如 core-site.xml 、 hdfs-site.xml 、 mapred -site.xml 和 yarn -site.xml ,设置好文件系统路径、节点地址等参数。- 进入Spark的配置目录,复制 spark -env.sh.template 为 spark -env.sh ,并编辑该文件,设置 JAVA_HOME 以及 HADOOP_CONF_DIR 等环境变量。- 规划好集群中节点的角色,如Master节点、Worker节点等,并确保各节点之间网络畅通。
2025-04-28 19:54:37
172
原创 虚拟机IP设置
linux中,ip地址是写在配置文件(/etc/sysconfig/network-scripts/ifcfg-ens33)中,这里使用 vi 编辑器去修改即可!这里要注意一下:VMware net work Adpater VMnet8是安装了Vm这个软件之后会自动产生的。如果不进行设置,每次启动机器时都可能是随机的IP,不方便我们后续操作。注意:这里的第三个部分的10并不是固定的,我们自己可以约定,但是约定之后就要固定下来。让所有的vm配置的虚拟机使用NAT时,它们的网段都是一致的。
2025-03-03 19:22:30
992
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅