自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Spark Yarn-tool接口

org.apache.hadoop.util.Tool 是 Apache Hadoop 框架里的一个接口,其用途是协助开发可通过命令行运行的 Hadoop 应用程序。// 它要做7件事 hadoop jar mc8.js com.example.mapreduce.WordCountDriver /要处理的文件夹 /结果路径。run(String[] args):此方法为应用程序的主要执行逻辑,接收命令行参数,返回一个整数代表执行结果(通常 0 表示成功,非 0 表示失败)。// 返回 0 表示执行成功。

2025-05-18 22:11:34 781

原创 spark缓存

当持久化某个RDD后,每一个节点都将把计算的分片结果保存在内存中,并在对此RDD或衍生出的RDD进行的其他动作中重用。MEMORY_ONLY_SER:将 RDD 以序列化的 Java 对象形式存储在内存中,相较于 MEMORY_ONLY,序列化后占用的内存空间更小,但读取时需要进行反序列化操作,会带来一定的性能开销。RDD通过persist方法或cache方法可以将前面的计算结果缓存,但是并不是这两个方法被调用时立即缓存,而是触发后面的行动算子时,该RDD将会被缓存在计算节点的内存中,并供以后重用。

2025-05-18 21:59:19 222

原创 Spark 基础自定义分区器

这就类似于 Spark 中的分区,每个分区的数据可以在不同的计算节点上同时进行处理,从而加快整个数据处理的速度。MyPartitioner类继承自Partitioner,实现了numPartitions方法指定分区数量为 3 ,实现getPartition方法,根据球队名称判断分区索引,湖人对应分区 0,火箭对应分区 1,其他球队对应分区 2。在 Spark 中,RDD 是数据的集合,它会被划分成多个分区,这些分区可以分布在不同的计算节点上,就像图书馆的书架分布在不同的房间一样。

2025-05-18 21:56:29 632

原创 Spark RDD的自定义分区器-案例

在代码中,通过编写一个自定义的分区函数,根据用户 ID 的范围返回对应的分区编号。如在之前的示例代码中,custom_partitioner 函数根据不同的 ID 范围返回 0、1、2 三个分区编号,从而实现按照地区进行分区的目的。具体来说,将用户 ID 在 0 - 1000 的订单数据分到一个分区,1001 - 2000 的分到另一个分区,2001 及以上的分到第三个分区。对电商订单数据进行处理,订单数据包含用户 ID 和订单金额,不同地区的用户有不同的 ID 范围。// 创建SparkContext。

2025-05-18 21:52:37 378

原创 spark所用的几个网址

2. MapReduce:计算。1. HDFS:存储。3. YARN:调度。

2025-05-18 21:48:29 75

原创 Spark,集群搭建-Standalone

多 Worker 实例:在 conf/spark-env.sh 中增加 SPARK_WORKER_INSTANCES=2 (需确保内存足够)。- 动态资源分配:在 spark-submit 中添加 --deploy-mode cluster (适用于生产环境)。- 命令行:执行 ./spark-shell --master spark://MasterIP:7077 验证连接。- Worker 内存不足:减小 SPARK_WORKER_MEMORY (如设为 2g )。

2025-05-18 21:43:23 616

原创 SparkSQL基本操作

df.write.mode("overwrite") // 模式:overwrite/append/ignore/replace。df.orderBy(col("age").desc, "name").show() // 按年龄降序、姓名升序。.master("local[*]") // 本地模式(集群用 `spark://host:port`)avg("score").alias("avg_score") // 平均值。df.describe().show() // 统计摘要(均值、计数等)

2025-05-18 21:35:21 605

原创 配置hosts

修改 C:\Windows\System32\drivers\etc\hosts ,用记事本打开后添加映射,保存需管理员权限。2. 添加映射:按 i 进入编辑模式,添加 IP地址 主机名 (如 192.168.1.100 hadoop100 )。4. 生效:无需重启,直接生效(可通过 ping 主机名 验证)。3. 保存退出:按 Esc ,输入 :wq 保存并退出。

2025-05-18 21:31:04 90

原创 Spark,连接MySQL数据库,添加数据,读取数据

下载 mysql-connector-java-8.0.33.jar (或对应版本),放入 Spark 的 jars 目录,或提交任务时用 --jars 指定路径。.mode("append") // 追加模式(可选:overwrite/ignore/replace)写入模式: append (追加)、 overwrite (覆盖)、 ignore (忽略冲突).option("dbtable", "users") // 表名。// 写入 MySQL(若表不存在则自动创建,需确保库存在)

2025-05-18 21:28:29 964 1

原创 Spark,SparkSQL操作Mysql, 创建数据库和表

下载 mysql-connector-java-x.x.x.jar ,放入 Spark 目录的 jars 文件夹(或提交任务时通过 --jars 参数指定)。.option("url", "jdbc:mysql://localhost:3306/test_db") // 指定数据库。"jdbc:mysql://localhost:3306/", // MySQL 连接地址(不带数据库名).mode("overwrite") // 覆盖模式(可根据需求改为 append/ignore)

2025-05-18 21:23:39 633

原创 spark数据的提取和保存

jsonData.write.partitionBy("字段").json("路径/输出.json")csvData.write.mode("overwrite").csv("路径/输出.csv").option("password", "密码").option("password", "密码").option("dbtable", "表名").option("dbtable", "表名").option("user", "用户名").option("user", "用户名")

2025-05-18 21:20:38 431

原创 如何使用scp命令拉取其他虚拟机中的文件

(Secure Copy)是基于 SSH 协议的安全文件传输工具,可以在本地与远程主机之间复制文件。

2025-05-13 15:43:57 355

原创 如何将两台虚拟机进行搭桥

要实现两台虚拟机之间的网络互通("搭桥"),需要根据您的虚拟化平台选择合适的网络模式。以下是主流虚拟化软件的配置方法:桥接模式允许虚拟机直接连接到物理网络,两台虚拟机将获得与宿主机同一网段的 IP 地址。配置步骤:验证连通性:bash 方案 2:使用仅主机模式(Host-Only)仅主机模式创建一个独立的网络,只有宿主机和虚拟机可以通信。配置步骤:验证连通性:bash 二、VirtualBox 虚拟机互通配置方案 1:使用内部网络内部网络创建一个隔离的网络,只有同一内部网络的

2025-05-13 15:41:18 826

原创 如何同步虚拟机文件夹

同步虚拟机与宿主机之间的文件夹通常有以下几种方案,具体取决于您使用的虚拟机软件和操作系统类型。在虚拟机中安装 SFTP 服务器(如 Linux 的。),通过 FileZilla 等工具传输文件。

2025-05-13 15:39:13 472

原创 在scala中使用sparkSQL读入csv文件

scala。

2025-05-13 15:36:16 511

原创 在scala中使用sparkSQL连接MySQL并添加新数据

以下是使用 Spark SQL(Scala)连接 MySQL 并添加新数据的完整代码示例:scala。

2025-05-13 15:33:38 547

原创 spark MySQL数据库配置

要让 Spark 与 MySQL 数据库实现连接,需要进行以下配置步骤。你得把 MySQL 的 JDBC 驱动添加到 Spark 的类路径中。按照上述步骤操作,你就能成功在 Spark 中配置并连接 MySQL 数据库了。

2025-05-13 15:29:16 404

原创 idea编写maven程序

在IDEA中选择 Create New Project > Maven > 勾选Create from archetype > 选择 maven-archetype-quickstart ,点击下一步。-- Spark SQL(按需添加其他模块,如spark-streaming) -->-- Maven打包插件(可选,用于生成可执行JAR) -->-- Scala编译插件 -->-- Scala语言依赖 -->-- 声明Scala插件 -->// 简单示例:读取文本文件。-- 插件配置 -->

2025-05-12 11:21:48 699

原创 案例数据清洗

以下是 10 条符合上述示例中数据格式(姓名,年龄,性别)的测试数据,包含了一些可能需要清洗掉的无效数据,你可以将其保存为一个文本文件,用于测试上面的数据清洗程序。这里面:“李四” 的年龄为空,“赵六” 和 “吴九” 的年龄不是有效的数字,在执行数据清洗程序时,这些行应该会被过滤掉。假设你有一个包含用户信息的文本文件,每行格式为 姓名,年龄,性别,需要清洗掉年龄为空或者非数字的行。过滤算子中,函数返回为false,就会被过滤掉,函数返回为true,就会被保留下来。// (1)字段拆分,拆分出年龄这个字段。

2025-05-12 11:19:49 363

原创 spark的处理过程-转换算子和行动算子

行动算子是触发 Spark 计算的“触发点”,因为 Spark 的 RDD 是懒惰计算的,只有在执行行动算子时,才会真正开始计算。作用:对 RDD 中的每个元素应用给定的函数 f,将每个元素转换为另一个元素,最终返回一个新的 RDD。作用:筛选出 RDD 中满足函数 f 条件(即 f 函数返回 true)的元素,返回一个新的 RDD,新 RDD 中的元素类型与原 RDD 相同。作用:对 RDD 中的每个元素应用函数 f,函数 f 返回一个可遍历的集合,然后将这些集合中的元素扁平化合并成一个新的 RDD。

2025-05-12 11:18:50 1027

原创 在shell中运行spark程序

在部分分区数据丢失时,Spark可以通过这个依赖关系重新计算丢失的分区数据,而不是对RDD的所有分区进行重新计算。Resilient Distributed Dataset 叫做弹性分布式数据集,是Spark中最基本的数据抽象,是分布式计算的实现载体,代表一个不可变,可分区,里面的元素并行计算的集合。不同分区之间的数据是需要有关联的,在不同的分区之间进行数据的传输就是Shuffle,也叫洗牌。上面的代码中,我们用到了两个特殊的类来创建spark上下文,分别是SparkConf,SparkContext。

2025-05-12 11:13:03 446

原创 如何在idea中写spark程序

使用 spark-submit 命令提交到Spark集群运行,如 spark-submit --class com.example.SparkWordCount --master yarn --deploy-mode cluster /path/to/your/jarfile.jar ,需根据实际调整 --master 、 --deploy-mode 等参数。1. 使用Java编写:在 src/main/java 目录下创建Java类,如 SparkWordCount.java。

2025-05-06 15:09:19 486

原创 搭建spark yarn 模式的集群

文件修改:在 $SPARK_HOME/conf 目录下,将spark - env.sh.template复制为spark - env.sh ,slaves.template复制为slaves。执行 spark - submit --master yarn --class org.apache.spark.examples.SparkPi $SPARK_HOME/examples/jars/spark - examples*.jar 10 提交示例任务测试,可通过YARN界面或相关命令查看任务日志。

2025-05-06 15:03:00 342

原创 spark和hadoop的区别

• Spark 支持多样化任务类型:批处理(Spark Core)、实时流处理(Spark Streaming)、交互式查询(Spark SQL)、机器学习(MLlib)、图计算(GraphX)等,适用场景更广泛。Spark 依赖 Hadoop 的存储生态(如 HDFS),并借助 YARN 实现资源调度;:集成 Spark SQL(结构化数据查询)、Spark Streaming(流计算,支持秒级延迟)、MLlib(机器学习库)、GraphX(图计算)等模块,形成一站式大数据处理平台。

2025-04-21 08:33:59 1140

原创 案例:流量统计

2025-04-08 16:07:41 89

原创 mapreduce的工作原理

例如,在一个单词计数的例子中,输入的键值对可能是`<行号, 一行文本>`,经过 Map 函数处理后,会输出多个`<单词, 1>`的中间键值对。例如,在单词计数的例子中,Reduce 函数会将相同单词的计数相加,得到每个单词的总出现次数。- Shuffle 和排序:根据单词的哈希值进行分区,对每个分区内的键值对按单词排序,然后将数据传输给对应的 Reduce 任务。- 合并:当所有溢写文件都生成后,会将这些文件进行合并,形成一个大的分区文件,每个分区文件内的键值对都是有序的。

2025-03-31 20:06:40 437

原创 hadoop 集群的常用命令

执行一个MapReduce作业,其中`/path/to/your/jar/file.jar`是包含MapReduce程序的JAR文件路径,`main_class`是主类名,`input_path`是输入数据在HDFS中的路径,`output_path`是输出结果在HDFS中的路径。查看HDFS中指定路径`/path`下的文件和子目录信息。将本地文件`local_file`上传到HDFS的指定路径`/hdfs_path`。把HDFS中的文件`/hdfs_file`下载到本地的`local_path`。

2025-03-31 20:01:20 560

原创 虚拟机IP配置

IP地址要在局域网的可用IP范围内,子网掩码通常为255.255.255.0,默认网关是局域网路由器的IP地址,DNS服务器地址可以是路由器的IP地址或者公共DNS服务器地址(如8.8.8.8、114.114.114.114)。- 与VMware Workstation桥接模式下的Windows虚拟机IP配置类似,通过“控制面板” - “网络和共享中心” - “更改适配器设置”等步骤来配置IP地址,可以自动获取或手动设置。- 打开“控制面板” - “网络和共享中心” - “更改适配器设置”。

2025-03-03 19:47:51 851

原创 vi的基本使用

:wq 、 :x 等用于保存和退出的命令外,还可以进行其他操作。例如,:set nu 可以显示行号, :set nonu 则取消行号显示。输入 :wq 或者 :x ,可以保存文件并退出vi。o :在光标所在行的下方插入新的一行并进入插入模式。O :在光标所在行的上方插入新的一行并进入插入模式。输入 :q ,如果文件没有被修改,可以直接退出vi。p :将复制或剪切的内容粘贴到光标所在位置的下方。P :将复制或剪切的内容粘贴到光标所在位置的上方。a :在光标所在位置的下一个字符处插入字符。

2025-02-24 23:26:57 290

原创 Linus的基本命令

tar:用于打包和解包文件,如tar -cvf archive.tar /dir 将 /dir 目录打包成 archive.tar 文件,tar -xvf archive.tar 解包 archive.tar 文件。- tail:显示文件的末尾几行,默认显示后 10 行,可通过 -n 参数指定行数,还可使用 -f 参数实时跟踪文件内容的变化,例如 tail -f log.txt。- rm:删除文件或目录,使用 -r 参数递归删除目录, -f 参数强制删除,例如 rm -rf /dir。

2025-02-24 23:17:10 386

原创 如何安装vm和centos

2. 在“硬件”选项卡中,选择“CD/DVD(IDE)”,然后点击“使用ISO映像文件”,浏览并选择你下载好的CentOS镜像文件(.iso格式)。5. 选择“Linux”操作系统,版本选择“CentOS”(具体版本根据你下载的CentOS镜像文件来定),然后点击“下一步”。- 等待安装过程完成,安装完成后,可能需要输入许可证密钥,如果没有许可证,可以选择试用或以后再输入。3. 在弹出的向导中,选择“典型(推荐)”,然后点击“下一步”。6. 为虚拟机命名,并选择安装位置,点击“下一步”。

2025-02-24 23:06:08 445

原创 Scala的泛型界限

我们可以使用`Child`或者`Parent`类型的实例来调用`printParent`函数,因为`Child`是`Parent`的子类,`T`必须是`Child`或者`Child`的超类型。- 这样我们就可以使用`Dog`或`Cat`类型的实例来调用`makeSound`方法,因为`Dog`和`Cat`都是`Animal`的子类型。- 使用`<:>`来表示上界。- 使用`>:`来表示下界。例如,`class A[T >: B]`表示类型参数`T`必须是`B`或者`B`的超类型。

2024-12-30 01:00:04 727

原创 Scala的隐式对象和隐式类

要点:要有一个参数,就要待被转换的类型,返回的类型就是当前的类。格式:在class 的前面,添加implicit。格式:就是在对象前面加一个 implicit。隐式类 == 一个类 + 一个隐式转换函数。引入别的程序内的隐式转换,计算。作用:就是给函数当默认值!

2024-12-30 00:54:13 401

原创 Scala的泛型

定义格式:trait 特质名[泛型]使用格式:特质名[具体的类型]

2024-12-30 00:48:39 339

原创 Scala思维导图

2024-12-08 22:32:44 106

原创 Scala的隐式函数

需求:让字符串增加一个功能:isPhone() 检查当前字符串是否是一个合法的手机号。1. 在函数的默认参数的前面补充关键字:implicit。隐式值:能够自己设置参数默认值,而不是在代码中固定写死。2. 在定义变量的前面 补充关键字:implicit。3. 调用函数式,不加()

2024-12-08 22:30:51 296

原创 Scala的正则表达式和隐式转换

方括号[ ]定义字符类,匹配其余字符 [abc],文本a,b或c [abc]能匹配a,b或c排除字符类[ ]开头加^,匹配其余字符[^abc],文本d。\b:匹配单词边界。匹配前面最多1次 a?{n,}匹配前面至少n次 a{2,},文本aa,aaa等 a{2,}匹配多个a,至少2个。单字符大多数字符匹配自身正则表达式abc,文本abca匹配a,b匹配b,c匹配c。

2024-12-04 22:04:23 336

原创 Scala的条件匹配

在 Scala 中,条件匹配主要通过match表达式来实现,它类似于其他语言中的switch语句,但功能更强。基本语法:match表达式通常与case关键字一起使用。判断:2000-2024年那一年是闰年哪一年是平年。输入一段数字,判断属于那个范围。

2024-12-04 21:44:00 395

原创 Scala的统计成绩练习

1.计算每个同学的总分平均分。2.每个科目的平均分。(1)读入txt文件,按行读入。

2024-12-04 21:37:39 428

原创 Scala的全文单词统计

2.把字符串拆分为一个一个的单词,保存到数组。3.统计每个单词出现的次数。5.把结果写到一个文件中。

2024-12-04 21:19:27 230

空空如也

空空如也

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

TA关注的人

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