- 博客(75)
- 收藏
- 关注
原创 MySQL数据库创建新的数据库和数据表
如果你更喜欢使用图形界面工具,可以使用MySQL Workbench、phpMyAdmin等工具来创建数据库。以MySQL Workbench为例,打开工具后,连接到你的MySQL服务器,然后在左侧导航栏右键点击“数据库”,选择“创建数据库”,输入数据库名称,点击“应用”即可完成创建。首先,确保你已经安装了MySQL数据库。创建完数据库后,我们需要在数据库中创建表。在MySQL中,可以使用CREATE TABLE语句创建新表。在MySQL中,可以使用CREATE DATABASE语句创建一个新的数据库。
2025-05-14 14:29:39
212
原创 RDD自定义分区器
分区器的唯一性:分区器的 equals 和 hashCode 方法需要正确实现,以确保分区器在 Spark 的内部逻辑中能够正确识别。分区逻辑:getPartition 方法中的逻辑应根据实际业务需求定义,确保数据能够正确分区。通过以上步骤,你可以实现一个自定义分区器,并根据特定的业务逻辑对 RDD 进行分区。分区数量:分区数量应根据实际需求合理设置,过多或过少的分区都会影响性能。使用 partitionBy 方法将 RDD 按自定义分区器进行分区。使用自定义分区器对 RDD 进行分区。
2025-05-13 09:35:27
203
原创 sparksql
2014 年 1.0 版本更新,Shark 和 SparkSQL 项目的负责人宣布停止 Shark 的开发,支持 Shark 发展到达终点,SparkSQL 的时代到来2。易整合:SparkSQL 无缝整合了 SQL 查询与 Spark 编程,可以随时用 SQL 或者 DataFrame 的 API 进行处理结构化数据,并且支持多语言(Java、Scala、Python、R)2。统一的数据访问:使用相同的方式,连接不同的数据源或者不同文件格式中的数据,支持读写数据从不同的数据来源到不同的数据来源2。
2025-05-13 09:29:49
239
原创 hadoop集群常用命令
文件权限管理: hdfs dfs -chmod permissions hdfs_path hdfs dfs -chown owner:group hdfs_path 修改 HDFS 文件的权限和所有者。合并下载: hdfs dfs -getmerge hdfs_source_path local_destination_file 将 HDFS 中的多个文件合并后下载到本地。查看文件内容: hdfs dfs -cat hdfs_file_path 查看 HDFS 中某个文件的内容。
2025-05-13 09:28:48
343
原创 MapReduce工作原理
Reduce 阶段: 输入:Reduce 阶段接收 Shuffle 阶段处理后的数据。处理:Reduce 函数对相同键的值进行合并计算,生成最终结果。输出:Reduce 函数的输出是最终结果,通常存储在 HDFS 中^1^。Map 阶段: 输入:Map 阶段接收输入数据,通常是键值对(key-value pairs)。输出:Map 函数的输出是新的键值对,这些中间结果将传递给 Reduce 阶段^1^。Shuffle 阶段: 分区:将 Map 阶段的输出数据进行分区,每个分区对应一个 Reduce 任务。
2025-05-13 09:27:33
185
原创 序列化和反序列化(java)
/java反序列化:从文件student_java.ser中读出内容,还原这个对象。// //1.让这个类实现Serializable接口。//1.让这个类实现Serializable接口。// //java序列化:把对象保存到一个文件中。//java序列化:把对象保存到一个文件中。// //3.把对象写入到文件中。//3.把对象写入到文件中。// //2.创建一个输出流。//2.创建一个输出流。// //4.关闭。
2025-05-13 09:26:13
418
原创 序列化和反序列化(hadoop)
/readFields:在反序列化的时候,调用。// //hadoop序列化:把对象保存到一个文件中。//dataOutput.write(字段);//hadoop序列化:把对象保存到一个文件中。//write:在序列化的时候,调用。//字段=dataInput.read();//hadoop反序列化:从文件中读取对象。//字段的顺序要与write中的顺序一致。//1.要实现Writable接口。//支持hadoop序列化。//2.补充一个空参构造。//学生类,姓名,年龄。
2025-05-13 09:25:21
526
原创 RDD分区和分区器
range分区器会对现有rdd中的key-value数据进行抽样,尽量找出均衡分割点,一定程度上解决了数据偏移问题,力求分区后的每个分区内数据量均衡,但是速度相对慢。hash分区器会根据key-value的键值key的hashcode进行分区,速度快,但是可能产生数据偏移,造成每个分区中数据量不均衡。MR任务的map阶段的处理结果会进行分片(也可以叫分区,这个分区不同于上面的分区),分片的数量就是reduce task的数量。决定将Map阶段中间结果的每个key-value对分到哪个分区上。
2025-05-13 09:23:12
238
原创 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:22:01
270
原创 RDD运行过程
"行动" 和 "转换" 类型的区别是转换操作(比如map、filter、groupBy、join等)接受RDD并返回RDD, 而行动操作(比如count、collect等)接受RDD但是返回非RDD(即输出一个值或结果).RDD提供一种高度受限的共享内存模型, 即RDD是只读的记录分区集合, 不能直接修改, 只能基于稳定的物理存储中的数据集来创建RDD, 或者通过其他RDD转换来得到新的RDD.
2025-05-13 09:20:15
186
原创 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:18:32
321
原创 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:16:50
431
原创 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-05-13 09:08:59
116
原创 spark-standalone
进入到hadoop100机器,切换目录到/opt/module/spark-standalone/sbin下,运行命令 ./start-all.sh。6.进入/opt/module/spark-standalone/conf这个目录,修改workers.template文件,将后缀名去掉,然后点进去,添加下列内容。一、定义:Standalone 模式是一种独立的集群部署模式,自带完整服务,可单独部署到一个集群中,无需依赖任何其他资源管理系统。11.查看启动效果。8.同步设置完毕的Spark目录到其他节点。
2025-05-13 09:07:35
351
原创 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 09:05:57
223
原创 spark代码运行
在项目根目录下建立文件夹input,并穿件两个文本文件:word1.txt, word2.txt。6.新建Scala类。如果这里没有看到Scala类的选项,就去检查第2步。(如果没有出现scala类,请再次添加全局库。2.将Scala添加到全局库中(注意:Scala的版本不宜太高,最好是2-12.否则后面会报下面这个错误。(红色无所谓,只要后面出现:进程已结束,退出代码为 0。添加完成之后,刷新Maven,它会帮助我们去下载依赖。(注意:是在重构里面有重命名)1.启动idea,选择新建项目。
2025-05-13 09:04:47
201
原创 自定义分区器
原文链接:https://blog.csdn.net/2401_83378805/article/details/147063771。//如果Key1和Key2的code相同,那么他们会被分配到同一个分区,保存到同一个文件。//产生结果的时候,会用3个文件来保存。在“// 6. 设置输入和输出路径。//如果单词是以a~m开头,那么会被分配到第一个分区。//设置reduceTask的数量。//否则,就分配到第二个分区。//1.获取单词首字符。// 设置自定义分区器。//1.继承Partitioner类。
2025-05-06 09:44:17
318
原创 jps作业
来源: NameNode 运行在主节点 (Master) 上,通常通过 start-dfs.sh 或者 start-all.sh 启动脚本启动。功能: DataNode 是实际存储数据块的工作节点,分布在集群的多个 Slave 节点上。功能: NodeManager 是 YARN 下属的一个子模块,专注于单个节点上的容器生命周期管理和服务监控。来源:master是 Spark 集群的核心组件之一,负责管理整个集群的资源分配和调度工作。它通过监听 Worker 节点的状态并协调任务分发来实现分布式计算。
2025-05-06 09:42:58
240
原创 如何在idea中写spark程序
(如果是 Scala 项目)目录下创建一个新的类文件,下面分别给出 Java 和 Scala 的示例代码。文件,添加 Spark 相关依赖。添加完依赖后,Maven 会自动下载所需的库文件。(如果是 Java 项目)或者。
2025-04-28 20:01:29
685
原创 spark与Hadoop之间的对比与联系
3. 生态系统整合:Spark与Hadoop的生态系统紧密结合,可以无缝使用Hadoop的各种组件和工具。例如,Spark可以与Hive、HBase、Pig、Sqoop等Hadoop生态系统中的工具进行集成,以方便数据处理和分析。5. 数据存储结构:在Hadoop中,MapReduce的中间计算结果存储在HDFS(Hadoop分布式文件系统)的磁盘上,延迟较大。而Spark通过RDD的特性,可以在内存中进行快速的数据恢复和计算,同时也能将数据存储到磁盘以保证数据的持久性。
2025-04-22 08:23:19
455
原创 一分钟教你数据清洗
一分钟数据清洗是一种快速对数据进行初步清理和预处理的方法,旨在在较短时间内解决数据中最明显的问题,为后续更深入的数据分析或处理做准备。它侧重于处理一些常见的数据质量问题,如缺失值、重复值、错误数据格式等,以提高数据的可用性和准确性。
2025-04-02 16:00:51
914
原创 手把手教你安装虚拟机
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。先给虚拟机命名 我这里的是Hadoop104 ,然后点浏览把虚拟机放在D盘或者E盘 新建文件夹命名方便我们查找 点击确定 然后下一步。原文链接:https://blog.csdn.net/2401_85414079/article/details/145705019。点击CD/DVD 打开虚拟机设置 点击启动时连接 使用ISO映像文件 在浏览中找到对应的ISO文件。第一步:创建一个新的虚拟机。
2025-03-03 20:14:44
238
原创 虚拟机配置IP
linux中,ip地址是写在配置文件(/etc/sysconfig/network-scripts/ifcfg-ens33)中,这里使用 vi 编辑器去修改即可!如果不进行设置,每次启动机器时都可能是随机的IP,不方便我们后续操作。注意:这里的第三个部分的10并不是固定的,我们自己可以约定,但是约定之后就要固定下来。让所有的vm配置的虚拟机使用NAT时,它们的网段都是一致的。配置Windows本地虚拟网卡,让本机也可以访问虚拟机。具体设置为:进入虚拟机,修改对应的IP。(3)设置虚拟机的IP。
2025-02-26 15:34:55
324
原创 vi编译器
原文链接:https://blog.csdn.net/2401_83378805/article/details/145845982。命令模式:在这个模式下,所敲按键编译器都理解为命令,以命令来驱动执行不同的功能。i:进入编辑模式(此时键盘可以正常打字)(i、a、o)2.nyy复制当前行往下n行内容。底线命令系统:以:开始通常用于文件的保存并退出。vi a.txt:创建/打开(进入命令模式)esc:退出编辑模式(回到命令模式)编辑模式:此时我们可以修改文件。wq:保存编辑内容(保存退出)
2025-02-25 11:38:31
335
原创 linux
原文链接:https://blog.csdn.net/2401_83378805/article/details/145847160。rm -rf /* 将根目录及以下所有递归逐一删除,无需用户确认,请一定要使用。3.mkdir -p 命令:创建目录,如果父级目录不存在,就建一个父级目录。1.ls:列出目录内容,包括参数-l(详细列表)、-a(显示隐藏文件)2. ll -a命令,显示当前的目录下的文件,包括隐藏文件。2.mkdir命令:创建目录。1. ll命令,用来显示当前的目录下的文件。
2025-02-25 10:59:51
425
原创 【无标题】
大数据的应用场景:视频推荐、电商推荐等。阶段2:大数据时代-分布式处理。阶段3:实时大数据时代。六、Hadoop的优势。大数据的技术发展脉络。
2025-02-25 10:57:02
240
原创 Linux创造命令系统
如:echo 111 >a.txt,会把111写入,a.txt这个文件中,把之前内容删除掉。把1.txt 2.txt 3.txt压缩到test.tar文件中。示例:把file1.txt 复制一份得到file2.txt。echo 111 >>a.txt,会把111追加到,a.txt这个文件中。命令:tar -cvf test.tsr 1.txt 2.txt 3.txt。参数:-c :从建立一个压缩文件,把多个文件或者文件夹压缩袋一个新的文件中,3.more -tail:查看文件的结尾部分的内容。
2025-02-25 10:54:22
467
原创 Scala隐式泛型
/LIstanbul(1,2,3,4,5)==>中间元素下标=长度/2===>3。//需求:你是一个程序员,老板让你写一个函数,用来获取列表中的中间元素。//def 函数的名字(参数1:类型1):返回值的类型={
2024-12-11 17:01:35
333
原创 Scala隐式类
/思路:把BaseUser通过隐式转换,改成一个新类型,而这个新类型中有这新的方法。//任务:给之前的BaseUser添加新的功能,但是,不要直接去改代码。//implicit class===一个隐式转换函数 +类。//它的作用:扩展已有的类,而不需要去修改之前的类的代码。
2024-12-11 15:44:55
298
原创 Scala函数隐式参数
def sayName(implicit name:String="小明"):Unit={implicit val value:String="小米"//困难:函数有一个默认参数值,在不传入具体的实参时。println("我的名字是:"+name)sayName("小婉")//一直在修改原来的代码!
2024-12-11 14:52:36
215
原创 Scala隐式转换
/隐式转换:编译器 偷偷的,自动地帮我们把一种数据类型转换为另一种类型。//它有失败的时候(double-->int).有成功的时候。// 当他转换失败的时候,我们提供一个工具,让他能成功。// j=i//把Int 转入Double。i=j//把Double转入Int。//明确地,把double转成int。//例如:int-->double。
2024-12-09 16:04:23
307
原创 Scala正则表达式(4)
println(reg.matches(name1))//matches字符串做验证,返回boolean的值。println(reg.matches(name3))//matches字符串做验证,返回boolean的值。println(reg.matches(name4))//matches字符串做验证,返回boolean的值。println(reg.matches(name5))//matches字符串做验证,返回boolean的值。val name3="admin"//不合法:长度不高够。
2024-12-09 14:52:40
283
原创 Scala正则表达式(3
/ val t=("雷总",1969)元组。"马-阿里巴巴"->1964,"马腾-腾讯"->1971,"李-百度"-> 1968,"雷-小米"-> 1969,// 找出哪些是1971年的老板?"丁-网易"->1971,// 对于Map,可以for遍历。// 模式匹配。
2024-12-09 14:33:01
216
原创 Scala正则表达式(2)
/需要:现在有一个数组Array(1,2,3,4),我希望能定义三个变量,它们的值分别是数组中的第1,2,3个元素的值。//第一个元素的值:arr(0)
2024-12-09 14:31:40
273
原创 Scala正则表达式
/ //1.查找 在目标字符串中,找到符合正则表达式规则要求的 子串。// //1..表示 除了换行之外的其他的任意单个字符。// 3.\D除了\d之外的其他的任意数字,表示非数字。//1.{n,m}把前面的字符匹配最少n次,最多m次。//6.*====>把前面的字符匹配0次 或者多次。//2,{n,}把前面字符匹配最少n次,最多不限。//5.+===>{1,}把前面字符匹配最少1次。// 5.\W除了\w之外的任意字符,表示非字。//3,{n}把前面字符匹配n次,
2024-12-09 14:30:26
459
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人