自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MySQL数据库创建新的数据库和数据表

如果你更喜欢使用图形界面工具,可以使用MySQL Workbench、phpMyAdmin等工具来创建数据库。以MySQL Workbench为例,打开工具后,连接到你的MySQL服务器,然后在左侧导航栏右键点击“数据库”,选择“创建数据库”,输入数据库名称,点击“应用”即可完成创建。首先,确保你已经安装了MySQL数据库。创建完数据库后,我们需要在数据库中创建表。在MySQL中,可以使用CREATE TABLE语句创建新表。在MySQL中,可以使用CREATE DATABASE语句创建一个新的数据库。

2025-05-13 09:33:35 240

原创 SparkSQL的基本使用

SparkSQL 无缝整合了 SQL 查询与 Spark 编程,可以随时用 SQL 或者 DataFrame 的 API 进行处理结构化数据,并且支持多语言(Java、Scala、Python、R)2014 年 1.0 版本更新,Shark 和 SparkSQL 项目的负责人宣布停止 Shark 的开发,支持 Shark 发展到达终点,SparkSQL 的时代到来。:使用相同的方式,连接不同的数据源或者不同文件格式中的数据,支持读写数据从不同的数据来源到不同的数据来源。SparkSQL 的特点。

2025-05-13 09:25:58 453

原创 RDD-自定义分区器

分区器的唯一性:分区器的 equals 和 hashCode 方法需要正确实现,以确保分区器在 Spark 的内部逻辑中能够正确识别。分区逻辑:getPartition 方法中的逻辑应根据实际业务需求定义,确保数据能够正确分区。通过以上步骤,你可以实现一个自定义分区器,并根据特定的业务逻辑对 RDD 进行分区。分区数量:分区数量应根据实际需求合理设置,过多或过少的分区都会影响性能。使用 partitionBy 方法将 RDD 按自定义分区器进行分区。numPartitions 方法返回分区的数量。

2025-05-13 09:23:22 257

原创 RDD-分区和分区器

range分区器会对现有rdd中的key-value数据进行抽样,尽量找出均衡分割点,一定程度上解决了数据偏移问题,力求分区后的每个分区内数据量均衡,但是速度相对慢。hash分区器会根据key-value的键值key的hashcode进行分区,速度快,但是可能产生数据偏移,造成每个分区中数据量不均衡。MR任务的map阶段的处理结果会进行分片(也可以叫分区,这个分区不同于上面的分区),分片的数量就是reduce task的数量。能够返回一个数组,数组元素是RDD的partition。

2025-05-13 09:20:25 182

原创 Spark缓存-persist

MEMORY_ONLY_SER:将 RDD 以序列化的 Java 对象形式存储在内存中,相较于 MEMORY_ONLY,序列化后占用的内存空间更小,但读取时需要进行反序列化操作,会带来一定的性能开销。MEMORY_ONLY:将 RDD 以 Java 对象的形式存储在 JVM 的内存中。MEMORY_AND_DISK:优先把 RDD 以 Java 对象的形式存储在 JVM 的内存中。MEMORY_AND_DISK_SER:优先将 RDD 以序列化的 Java 对象形式存储在内存中,内存不足时存储到磁盘上。

2025-05-13 09:17:50 334

原创 Spark缓存-cache

4. cache & persist & checkpoint 的特点和区别。6.MEMORY_ONLY_2, MEMORY_AND_DISK_2, 等等。二、cache & persist 的持久化级别及策略选择。2. RDD cache & persist 缓存。3. RDD CheckPoint 检查点。1.什么时候该使用持久化(缓存)

2025-05-13 09:10:46 373

原创 RDD算子—运动算子

4.repartition算子和coalesce算子。2.foreachPartition算子。1.mapPartitions算子。6.redueceByKey算子。5.takeOrdered算子。3.partitionBy算子。1.mapValues算子。8.groupByKey算子。10.sortByKey算子。1.countByKey算子。4.foreach算子。3.distinct算子。2.flatMap算子。2.groupBy算子。2.collect算子。3.filter算子。

2025-05-13 09:08:50 129

原创 RDD的运行过程

"行动" 和 "转换" 类型的区别是转换操作(比如map、filter、groupBy、join等)接受RDD并返回RDD, 而行动操作(比如count、collect等)接受RDD但是返回非RDD(即输出一个值或结果).RDD提供一种高度受限的共享内存模型, 即RDD是只读的记录分区集合, 不能直接修改, 只能基于稳定的物理存储中的数据集来创建RDD, 或者通过其他RDD转换来得到新的RDD.

2025-05-13 09:05:26 117

原创 spark代码运行

在项目根目录下建立文件夹input,并穿件两个文本文件:word1.txt, word2.txt。6.新建Scala类。如果这里没有看到Scala类的选项,就去检查第2步。(如果没有出现scala类,请再次添加全局库。2.将Scala添加到全局库中(注意:Scala的版本不宜太高,最好是2-12.否则后面会报下面这个错误。(红色无所谓,只要后面出现:进程已结束,退出代码为 0。添加完成之后,刷新Maven,它会帮助我们去下载依赖。(注意:是在重构里面有重命名)1.启动idea,选择新建项目。

2025-05-13 08:43:49 265

原创 Hadoop和Spark生态系统

1.来源:Hadoop MapReduce 的 历史任务服务器,由 mr-jobhistory-daemon.sh start historyserver 启动。1.来源:Spark 集群的 工作节点(Worker Node),由 start-worker.sh 启动。1.来源:Spark 的 历史任务服务器,由 start-history-server.sh 启动。1.来源:Hadoop HDFS 的 数据节点,由 start-dfs.sh 启动。②接收客户端提交的任务,分配给 Worker 执行。

2025-05-13 08:37:08 458

原创 作业:jps

来源: NameNode 运行在主节点 (Master) 上,通常通过 start-dfs.sh 或者 start-all.sh 启动脚本启动。功能: DataNode 是实际存储数据块的工作节点,分布在集群的多个 Slave 节点上。功能: NodeManager 是 YARN 下属的一个子模块,专注于单个节点上的容器生命周期管理和服务监控。来源:History Server 则是用来存储已完成应用程序的日志文件,并提供一种机制让用户能够回顾过去作业的表现情况。4、 Master 进程。

2025-04-29 10:21:27 303

原创 如何在idea中写spark程序

通过以上步骤,你可以在IntelliJ IDEA中成功配置并运行Spark程序。:右键点击WordCount类,选择“Run 'WordCount'”。:下载并安装Scala 2.12.15,并配置环境变量。:下载并安装Maven 3.5.4,并配置环境变量。:下载并安装IntelliJ IDEA。:在IDEA中安装Scala插件。:下载并安装JDK 1.8。

2025-04-28 19:50:35 202

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

Spark 作为计算框架,直接运行在 YARN 中,并接受 YARN 的资源调度。Spark 的 Driver 可以运行在 YARN 容器内或提交任务的客户端进程中,而实际执行任务的 Executor 运行在 YARN 提供的容器内。: 在这种模式下,Driver 运行在 YARN 集群中的一个容器内,通常用于生产环境。Driver 与集群的通信成本较高,但输出结果会在客户端显示。在 client 模式下,日志会随客户端的标准输出流输出,而在 cluster 模式下,客户端不会有日志信息和结果输出。

2025-04-28 19:45:08 546

原创 spark-standalone模式

进入到hadoop100机器,切换目录到/opt/module/spark-standalone/sbin下,运行命令 ./start-all.sh。6.进入/opt/module/spark-standalone/conf这个目录,修改workers.template文件,将后缀名去掉,然后点进去,添加下列内容。一、定义:Standalone 模式是一种独立的集群部署模式,自带完整服务,可单独部署到一个集群中,无需依赖任何其他资源管理系统。11.查看启动效果。8.同步设置完毕的Spark目录到其他节点。

2025-04-22 11:18:07 247

原创 spark-local模式

通过mv spark-3.3.1-bin-hadoop3 spark-local这个命令将解压后的文件夹改成spark-local(重命名是为了后续我们还会使用其他的配置方式,所以这里先重命名一次。三、通过tar -zxvf spark-3.3.1-bin-hadoop3.tgz -C /opt/module/这个命令将spark安装文件到/opt/module下。二、通过finalshell连接虚拟机,连接成功后打开/opt/software,将我们的压缩文件拉到这个目录下。一、首先打开我们的虚拟机。

2025-04-22 10:24:18 154

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

Hadoop的MapReduce模型依赖于磁盘存储,进行计算时需要多次从磁盘读取数据,处理后再写回磁盘,这导致了较高的延迟和I/O开销。它通过弹性分布式数据集(RDD)和DAG执行引擎优化计算过程,能够将中间数据保存在内存中,减少了对磁盘I/O的依赖,从而提供了更高的处理速度。Spark在内存计算方面具有明显优势,它的批处理速度比Hadoop的MapReduce快近10倍,内存中的数据分析速度快近100倍。Hadoop适合处理离线的静态的大数据,而Spark适合处理离线的流式的大数据。

2025-04-22 08:22:04 402

原创 流量统计(hadoop)

/产生结果的时候,会用3个文件来保存。//设置reduceTask的数量。压缩的优点:以减少磁盘IO、减少磁盘存储空间。//开启reduce端压缩。//设置reduce的个数。// 设置自定义分区器。(1)运算密集型的Job,少用压缩。(2)IO密集型的Job,多用压缩。压缩的缺点:增加CPU开销。在下面位置添加下下面代码。四、打开我们之前的项目。一、压缩的好处和坏处。三、压缩算法对比介绍。

2025-04-15 11:04:51 178

原创 序列化和反序列化(hadoop)

/readFields:在反序列化的时候,调用。// //hadoop序列化:把对象保存到一个文件中。//dataOutput.write(字段);//hadoop序列化:把对象保存到一个文件中。//write:在序列化的时候,调用。//字段=dataInput.read();//hadoop反序列化:从文件中读取对象。//字段的顺序要与write中的顺序一致。//1.要实现Writable接口。//支持hadoop序列化。//2.补充一个空参构造。//学生类,姓名,年龄。

2025-04-14 09:23:50 566

原创 序列化和反序列化(Java)

/java反序列化:从文件student_java.ser中读出内容,还原这个对象。// //1.让这个类实现Serializable接口。//1.让这个类实现Serializable接口。// //java序列化:把对象保存到一个文件中。//java序列化:把对象保存到一个文件中。// //3.把对象写入到文件中。//3.把对象写入到文件中。// //2.创建一个输出流。//2.创建一个输出流。// //4.关闭。

2025-04-14 09:21:16 283

原创 自定义分区器

/如果Key1和Key2的code相同,那么他们会被分配到同一个分区,保存到同一个文件。//产生结果的时候,会用3个文件来保存。在“// 6. 设置输入和输出路径。//如果单词是以a~m开头,那么会被分配到第一个分区。1.在WordCountDriver里面将链接集群注释了。//设置reduceTask的数量。//返回值是0,1,2.....//否则,就分配到第二个分区。//2.重写getPartition方法。//1.获取单词首字符。// 设置自定义分区器。//1.继承Partitioner类。

2025-04-08 11:21:46 360

原创 大数据(数据清洗)

/ 1. 获取一行数据,使用空格进行拆分,判断是否有8个字段。// 这条数据是无意义的,不保留。// 这条数据是有意义的,保留。// 设置reducetask个数为0。一、先修改pom.xml,在后面添加下面代码。// 5 设置输入和输出路径。// 4 设置最终输出类型。// 2 加载jar包。// 3 关联map。二、创建WebLogMapper类。三、创建WebLogDriver类。// 1 获取job信息。

2025-04-08 11:20:12 570

原创 mapreduce的工作原理

处理:Map 函数对输入数据进行处理,生成中间结果。输出:Map 函数的输出是新的键值对,这些中间结果将传递给 Reduce 阶段^1^。: 输入:Reduce 阶段接收 Shuffle 阶段处理后的数据。处理:Reduce 函数对相同键的值进行合并计算,生成最终结果。输出:Reduce 函数的输出是最终结果,通常存储在 HDFS 中^1^。: 分区:将 Map 阶段的输出数据进行分区,每个分区对应一个 Reduce 任务。合并:将相同键的值合并在一起,准备传递给 Reduce 阶段^2^。

2025-03-31 19:45:05 177

原创 Hadoop集群的常用命令

这些命令是与 HDFS 进行交互的基础,涵盖了文件操作、系统管理、权限控制等多个方面。通过这些命令,用户可以有效地管理和操作存储在 Hadoop 集群中的数据。这些命令会分别启动 Hadoop 的 DFS 和 YARN。该命令会递归地列出 HDFS 根目录下的所有文件和目录。将 HDFS 中的多个文件合并后下载到本地。查看特定 Hadoop 命令的帮助信息。修改 HDFS 文件的权限和所有者。查看 HDFS 中某个文件的内容。修改 HDFS 中文件的副本数量。删除 HDFS 中的文件。

2025-03-31 19:41:19 260

原创 虚拟机IP配置

linux中,ip地址是写在配置文件(/etc/sysconfig/network-scripts/ifcfg-ens33)中,这里使用 vi 编辑器去修改即可!如果不进行设置,每次启动机器时都可能是随机的IP,不方便我们后续操作。具体操作是:点击编辑→虚拟网络编辑器。注意:这里的第三个部分的10并不是固定的,我们自己可以约定,但是约定之后就要固定下来。让所有的vm配置的虚拟机使用NAT时,它们的网段都是一致的。具体设置为:进入虚拟机,修改对应的IP。(3)设置虚拟机的IP。输入进去·,出现如下图。

2025-02-26 15:36:00 361

原创 作业(1)

hhh

2025-02-26 14:32:22 144

原创 编译器(vi)

命令模式:在这个模式下,所敲按键编译器都理解为命令,以命令来驱动执行不同的功能。i:进入编辑模式(此时键盘可以正常打字)(i、a、o)2.nyy复制当前行往下n行内容。底线命令系统:以:开始通常用于文件的保存并退出。vi a.txt:创建/打开(进入命令模式)esc:退出编辑模式(回到命令模式)4.按下G键可以跳到文件的最后一行。编辑模式:此时我们可以修改文件。5.按下gg键跳到文件的第一行。wq:保存编辑内容(保存退出)1.yy复制光标所在行的内容。1.p在当前行的下一行粘贴。

2025-02-25 11:08:30 169

原创 Linux常用命令

原文链接:https://blog.youkuaiyun.com/sxy_1030_/article/details/145729143。rm -rf /* 将根目录及以下所有递归逐一删除,无需用户确认,请一定要使用!3.mkdir -p 命令:创建目录,如果父级目录不存在,就建一个父级目录。1.ls:列出目录内容,包括参数-l(详细列表)、-a(显示隐藏文件)2. ll -a命令,显示当前的目录下的文件,包括隐藏文件。2.mkdir命令:创建目录。1. ll命令,用来显示当前的目录下的文件。如 rm -r dir。

2025-02-25 10:54:38 260

原创 Linux操作命令系统

示例:把file1.txt 复制一份得到file2.txt。那么对应的命令就是:cp file.txt file2.txt。把1.txt 2.txt 3.txt压缩到test.tar文件中。移动操作: mv file.txt newdir/file.txt。参数:-c :从建立一个压缩文件,把多个文件或者文件夹压缩袋一个新的文件中,,a.txt这个文件中。如果这个文件不存在,就会顺手创建这个文件。如果这个文件不存在,就会顺手创建这个文件。如:echo 111 >a.txt,会把。

2025-02-25 10:09:04 341

原创 了解大数据

二、大数据的应用场景:视频推荐、电商推荐等。3.多样 结构化数据和非结构化数据。Hadoop是分布式系统处理架构。阶段2:大数据时代-分布式处理。三、大数据的技术发展脉络。阶段3:实时大数据时代。五、Hadoop的定义。六、Hadoop的优势。

2025-02-21 19:14:43 220

原创 如何两分钟教会你下载并创建虚拟机

二、创建虚拟机。

2025-02-18 13:41:32 141

原创 Scala函数的泛型

/List(1,2,3,4,5)==>中间元素的下标=长度/2 ===>3。//需求:你是一个程序员,老板让你写一个函数,用来获取列表中的中间元素。//def 函数的名字(参数1:类型1):返回值类型={//[T]就是泛型:类型参数化,把类型当做参数传入函数内部。

2024-12-11 17:01:34 345

原创 Scala的隐式对象

/作用:给函数的隐式参数提供默认值。//座位含税的隐式参数的默认值。

2024-12-11 16:34:06 283

原创 Scala的阶乘

120 //写代码,完成1*2*3*...*d。//println("阶乘函数被调用",d)//需求:给整数添加一个功能,求阶乘。

2024-12-11 16:12:46 270

原创 Scala的隐式类

/ transform(u1).updataUser()//希望要添加的新功能。//思路:把BaseUser通过隐式转换,改成一个新类型,而这个新类型中有这新的方法。//任务:给之前的BaseUser添加新的功能,但是不要直接去改代码。u1.updateUser()//希望要添加的新功能。//implicit class===一个隐式转换函数+类。//作用:拓展已有类的功能,而不需要去修改之前类的代码。//10年,小王写的代码。

2024-12-11 15:04:23 409

原创 Scala函数的隐式参数

def sayName(implicit name: String = "小王"): Unit = {//困难:函数有一个默认值。在不传入具体的实参时,就会自动使用这个默认值。implicit val value:String="小马"println("我的名字是:" + name)//sayName("小花")// 难点在于,这个默认值不能修改。sayName("小王")//一直在修改原来的代码。//函数参数的默认值。

2024-12-11 14:50:31 511

原创 Scala的隐式转换(2)

/完成一个功能,让所有的字符串都能调用isPhone方法,来校验自己是不是一个手机号。//定义一个特殊的转换函数,把str===>StrongString的对象。//println("偷偷调用implicit")

2024-12-09 17:07:07 305

原创 Scala的隐式转换(1)

/完成一个功能,让所有的字符串都能调用isPhone方法,来校验自己是不是一个手机号。//定义一个特殊的转换函数,把str===>StrongString的对象。

2024-12-09 16:42:31 440

原创 Scala的隐式转换

/隐式转换:编译器 偷偷地,自动的帮我们把一种数据类型转换为另外一种类型。//它有失败的时候(double -->int),有成功的时候。println("implicit X 被调用了")i=2.1 //把Double 转入 Int,正常会报错。//当它转换失败的时候,我们提供·一个工具,让它能成功。j=i //把Int 转入 Double。//列如:int -->double。//明确的,把double转成int。

2024-12-09 15:59:24 220

原创 scala的正则表达式试题(身份证号)

val str="张先生,ID:429005200001231156"//案列:把字符串中的身份证号打码。

2024-12-09 15:46:33 329

原创 Scala的正则表达式(2)

/reg.replaceAllIn的功能:在目标字符串str中,用正则表达式reg去查找,找到之后,用箭头函数的返回值。//()是分组,它不会影响正则表达式的查询结果,但是,它会把分组找到的内容单独保存在group中。//如果正则表达式中有(),则可以通过m.group来找到对应的分组。"张先生,手机号:138****5678 你买的 xxx 到了 "println(s"第一组:${m.group(1)}")//任务:把字符串中的手机号打码 类似于:138****5678。//查找,验证,替换。

2024-12-09 15:08:56 505

空空如也

空空如也

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

TA关注的人

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