- 博客(59)
- 收藏
- 关注
原创 。。。。。。。。
val book1 = new Book(id = "001", name = "红楼梦", stock = 3)val book2 = new Book(id = "001", name = "红楼梦", stock = 3)val book3 = new Book(id = "001", name = "红楼梦", stock = 3)val book1 =new Book(id = "001", name = "红楼梦", stock = 3)4.添加一本已经存在的书。
2025-05-13 14:28:11
447
原创 spack集合复习
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。原文链接:https://blog.youkuaiyun.com/2301_82251033/article/details/143845312。先进先出.enqueue入队,dequeue出队。pop表示取出,push表示在栈中添加元素。Stack:栈,特殊的结构。它对元素的操作是在头部:栈顶。集Set:表示无序且不重复的集合。Seq表示有先后顺序的集合。映射Map:表示键值对。二.Queue 队列。
2025-05-13 14:27:09
134
原创 Scala文件读写——成绩分析
val avg =String.format("%.1f",s.avg) //只保留一位有效数字。val avg =String.format("%.1f",s.avg) //只保留一位有效数字。val avg =String.format("%.1f",s.avg) //只保留一位有效数字。val avg =String.format("%.1f",s.avg) //只保留一位有效数字。val avg =String.format("%.1f",s.avg) //只保留一位有效数字。
2025-05-13 14:26:25
777
原创 Scala-隐式转换
原文链接:https://blog.youkuaiyun.com/2301_82251033/article/details/144183900。getCon(DatabaseConfig("sqlite","localhost"))//使用自己定义的值。//函数的参数类型 和 返回值类型是重要的,它约定了把什么类型转成什么类型。函数的参数类型 和 返回值类型是重要的,它约定了把什么类型转成什么类型。要点:要有一个参数,就要待被转换的类型,返回的类型就是当前的类。//计算d*d-1*d-2*d-3……
2025-05-13 14:25:43
521
原创 Scala——身份证号码查询籍贯
eg:目标:hadoop100通过ssh访问hadoop101,hadoop102时不需要密码,其他两台设备也类似。2.在hadoop100中,把自己的公钥传递给hadoop101,hadoop102。1.在hadoop100中生成公钥和密码。hadoop101 无密登录 hadoop100,hadoop102 与(1)类似。hadoop102 无密登录 hadoop100,hadoop101 与(1)类似。eg:从hadoop100进入hadoop101的命令就是。ssh命令无需密码也可登录。
2025-05-12 11:08:33
215
原创 ssh命令
eg:目标:hadoop100通过ssh访问hadoop101,hadoop102时不需要密码,其他两台设备也类似。2.在hadoop100中,把自己的公钥传递给hadoop101,hadoop102。1.在hadoop100中生成公钥和密码。hadoop101 无密登录 hadoop100,hadoop102 与(1)类似。hadoop102 无密登录 hadoop100,hadoop101 与(1)类似。eg:从hadoop100进入hadoop101的命令就是。ssh命令无需密码也可登录。
2025-05-12 11:08:03
109
原创 Yarn-tool接口2
/ 它要做7件事 hadoop jar mc8.js com.example.mapreduce.WordCountDriver /要处理的文件夹 /结果路径。原文链接:https://blog.youkuaiyun.com/2301_82251033/article/details/147887838。// 6. 设置输入路径(D:\vm\wcinput)和输出路径(D:\vm\output01)// 5. 设置Reduce的键值对泛型。// 4. 设置Map的键值对泛型。// 2. 关联本地的jar包。
2025-05-12 11:06:34
370
原创 Yarn-tool接口
org.apache.hadoop.util.Tool 是 Apache Hadoop 框架里的一个接口,其用途是协助开发可通过命令行运行的 Hadoop 应用程序。run(String[] args):此方法为应用程序的主要执行逻辑,接收命令行参数,返回一个整数代表执行结果(通常 0 表示成功,非 0 表示失败)。原文链接:https://blog.youkuaiyun.com/2301_82251033/article/details/147887815。// 使用 ToolRunner 运行应用程序。
2025-05-12 11:06:00
307
原创 数据清洗3
即使你的MapReduce的输入输出文件都是未压缩的文件,你仍然可以对Map任务的中间结果输出做压缩,因为它要写在硬盘并且通过网络传输到Reduce节点,对其压缩可以提高很多性能,这些工作只要设置两个属性即可,我们来看下代码怎么设置。原文链接:https://blog.youkuaiyun.com/2301_82251033/article/details/147887718。基于WordCount案例,只需要在dirvier类的代码中,去设置在reduce端输出压缩开启,并设置压缩的方式即可。// 设置压缩的方式。
2025-05-12 11:03:50
388
原创 数据清洗2
hadoop自动检查文件拓展名,如果拓展名能够匹配,就会用恰当的编解码方式对文件进行压缩和解压。如果数据量小于块大小(128M),则不需要考虑切点问题,重点考虑压缩和解压缩速度比较快的LZO/Snappy。如果需要切片,重点考虑支持切片的Bzip2和LZO。为了减少MapTask和ReduceTask之间的网络IO,重点考虑压缩和解压缩快的LZO,Snappy。压缩方式选择时重点考虑:压缩/解压缩速度、压缩率(压缩后存储大小)、压缩后是否可以支持切片。优点:压缩/解压速度比较快;缺点:压缩/解压速度慢。
2025-05-12 11:03:17
312
原创 数据压缩1
就好比有一堆杂乱的积木,压缩算法呢,就像是把这些积木按照一定规则整理起来,装进一个小盒子里,这样占用的空间就变小了,这个过程就是压缩。不同的压缩算法整理积木的方式不一样,有的整理得更紧凑但花时间,有的速度快但可能没那么紧凑哦。有损压缩则会在一定程度上牺牲数据的精度来换取更高的压缩比,适用于对数据质量损失有一定容忍度的场景,如图像、音频、视频等多媒体数据。数据压缩是指在不丢失或尽可能少丢失数据信息的前提下,通过特定的算法和技术,对原始数据进行重新编码和处理,以减少数据存储空间或传输带宽的过程。
2025-05-12 11:02:19
343
原创 在Idea中编写Spark程序并运行2
复制之前的文件,重命名为WordCount_online,并修改两个地方:输入目录改成args(0), 输出的目录改成args(1)。原文链接:https://blog.youkuaiyun.com/2301_82251033/article/details/147739846。我们学习了如何在Idea中编写程序的基本流程,并写了一个wordcount程序,可以对比它和mapreduce的使用方式区别。// 写一个spark程序,统计input目录下所有文本文件中单词的词频。// 读取目录下的所有文本文件。
2025-05-06 15:18:06
432
原创 如何在idea中写spark程序1
(1)访问Scala官方网站(https://www.scala-lang.org/download/)下载适合操 作系统的Scala安装包。安装Scala的操 作,也是一路默认安装即可。(2) 打开命令提示符(CMD),输入以下命令:scala -version 如果显示Scala 的版本信息,说明安装成功。Spark是基于scala的,当然它也可以支持java和scala还有python语言,我们这里会使用scala。它的功能是wordcount的功能:从指定的文件夹中去读取文件,并做词频统计。
2025-05-06 15:17:30
297
原创 hadoop 集群的常用命令
如果要一次性创建多级目录,可以加上`-p`参数,如`hdfs dfs -mkdir -p /user/hadoop/level1/level2`,这样即使`level1`目录不存在,也会自动创建`level1`和`level2`目录。例如,`hdfs dfs -put /home/hadoop/localfile.txt /user/hadoop/hdfsdir`会把本地的`localfile.txt`文件上传到 HDFS 的`/user/hadoop/hdfsdir`目录下。
2025-05-06 15:16:59
430
原创 如何搭建spark yarn 模式的集群集群
2. --class org.apache.spark.examples.SparkPi:指定了应用程序的主类,也就是包含 main 方法的类。5. /opt/module/spark-standalone/examples/jars/spark-examples_2.12-3.1.1.jar:指定了包含应用程序代码的 JAR 文件的路径。进入/opt/module/spark-yarn/sbin,运行: ./start-all.sh 和 ./start-history-server.sh。
2025-05-06 15:16:22
419
原创 Spark集群搭建-Standalone
进入到hadoop100机器,切换目录到/opt/module/spark-standalone/sbin下,运行命令 ./start-all.sh。切换到目录 /opt/module/spark-standalone/bin下,可以看到有一个spark-submit可执行文件,我们通过它来提交任务。进入/opt/module/把解压的内容重命名一下,mv spark-3.1.1-bin-hadoop3.2/ spark-standalone。
2025-05-06 15:15:40
448
原创 spark基础介绍
为了实现这样的要求,同时获得最大灵活性,Spark支持在各种集群管理器(Cluster Manager)上运行,包括Hadoop YARN、Apache Mesos,以及Spark自带的一个简易调度器,叫作独立调度器。Spark:Spark Streaming 提供了强大的实时数据处理能力,它可以将实时数据流分割成小的批次进行处理,实现准实时的数据分析。这里的 \ 是换行输入的意思,整体的代码就只有一句,只不过太长了,我们把它拆开成几个部分来输入,其中\ 的意思就是这里写不下,写在下一行。
2025-05-06 15:14:48
301
原创 spark和Hadoop的区别和联系
而Spark的编程模型更加灵活和简洁,它提供了丰富的API和高级的抽象(如RDD、DataFrame、Dataset等),使得开发者可以更方便地实现复杂的计算逻辑。例如,在进行大规模数据处理时,如果数据可以完全或部分存储在内存中,Spark的处理速度会比传统的基于磁盘存储的Hadoop MapReduce快很多。例如,Hive可以将数据存储在HDFS中,Spark可以作为Hive的执行引擎,通过Spark SQL来执行Hive的SQL查询,从而提高查询性能。• 日志处理:用于处理大规模的日志数据。
2025-05-06 15:13:51
789
原创 案例-流量统计
String flowDesc = String.format("总的上行流量:%d,总的下行流量是:%d,总流量是:%d",upFlowSum, downFlowSum,sumFlowSum);我们有一份统计数据,这个数据是关于手机号消耗流量的情况,需求统计每一个手机号耗费的总上行流量、总下行流量、总流量。在map阶段读一行数据,切分字段,抽取手机号,上行流量和下行流量。//1.遍历集合,取出每一个元素,计算机上行流量和下行流量的汇总。//三个属性:手机号,上行流量,下行流量。
2025-04-21 08:42:44
342
原创 HDFS概述
其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色。随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统。前面的课程我们搭建好了hadoop集群,并测试了它们的基本使用方式,下面几节课,我们来系统学习一下hadoop的三个组成之一:hdfs的相关内容。一个副本丢失之后,它可以自动恢复。它有两种操作,一是移动,会把当前的文件删除,二是复制,保留当前的文件。
2025-04-21 08:41:55
367
原创 14 配置Hadoop集群-配置历史和日志服务
echo " --------------- 启动 historyserver ---------------"echo " --------------- 关闭 historyserver ---------------"echo " --------------- 启动 hdfs ---------------"echo " --------------- 启动 yarn ---------------"echo " --------------- 关闭 yarn ---------------"
2025-04-21 08:41:06
535
原创 13 配置Hadoop集群-测试使用
这个存储的目录特别深,大概类似于:/opt/module/hadoop-3.1.3/data/dfs/data/current/BP-1436128598-192.168.10.102-1610603650062/current/finalized/subdir0/subdir0。上传文件的时候,我们传一个大一点的(>128M),再传一个小一点的。在我们上一节的hadoop配置中,我们设置了保持文件的目录是/data,所以,我们进入hadoop的按照目录下的data中去看一看。文件的名称是blk_xxx。
2025-04-21 08:40:01
434
原创 11 配置Hadoop集群-免密登录
前面的课程中我们在虚拟机上安装并测试使用了hadoop的示例程序wordcount,并且在准备好了集群的同步工具,那接下来,我们就可去配置hadoop集群了。将公钥拷贝到hadoop101上。所以,对于hadoop100来说,它要生成公钥,并拷贝到hadoop100, hadoop101, hadoop102上去。我们希望达成的目标是:希望用户在hadoop100登录到hadoop101时,hadoop101不需要输入密码。在hadoop100中,把自己的公钥传递给hadoop101,hadoop102。
2025-04-21 08:39:25
313
原创 配置Hadoop集群环境-使用脚本命令实现集群文件同步
在一台机器上模拟出 Hadoop 分布式系统的各个组件,各个组件在逻辑上是分离的,但是都运行在同一台物理机器上,以此来模拟分布式环境。上面的例子中,我们是登录到hadoop100,然后把这台机器上的文件传递到另一台机器上。任务1:在hadoop102上,将hadoop101中/opt/module/hadoop-3.1.3目录拷贝到hadoop102上。如果当前在A机器上,要把A机器上的/etc/tst下的所有内容拷贝到B机器上的/etc/tst目录下,应该的命令应该怎么写?这个命令可以解决很多的问题了。
2025-04-21 08:37:18
761
原创 12配置Hadoop集群-集群配置
(1)NameNode(nn):存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间,副本数,文件权限),以及每个文件的块列表和块所在的DataNode等。刚才我们是在hadoop100这台机器上进行了正确的设置,但是,其他的2台机器也要做相同的配置。对普通用户来说, Hadoop就是一个东西,一个整体,它能给我们提供无限的磁盘用来保存文件,可以使用提供强大的计算能力。接下来配置第二个文件,/opt/module/hadoop-3.1.3/etc/hadoop/hdfs-site.xml。
2025-04-21 08:36:29
931
原创 ssh命令
eg:目标:hadoop100通过ssh访问hadoop101,hadoop102时不需要密码,其他两台设备也类似。2.在hadoop100中,把自己的公钥传递给hadoop101,hadoop102。1.在hadoop100中生成公钥和密码。hadoop101 无密登录 hadoop100,hadoop102 与(1)类似。hadoop102 无密登录 hadoop100,hadoop101 与(1)类似。eg:从hadoop100进入hadoop101的命令就是。退出命令就是:exit。
2025-04-21 08:34:17
354
原创 配置Hadoop集群
伪分布式:也是在一台单机上运行,但用不同的 Java 进程模仿分布式运行中的各类节点,特点:Hadoop 启动的这些守护进程都在同一台机器上运行,是相互独立的 Java 进程。在hadoop102上,将hadoop101中/opt/module/hadoop-3.1.3目录拷贝到hadoop102上。如果当前在A机器上,要把A机器上的/etc/tst下的所有内容拷贝到B机器上的/etc/tst目录下,应该的命令应该怎么写?在hadoop100机器上,把文件推送到hadoop101机器上(如上右图)。
2025-04-21 08:32:31
408
原创 配置虚拟机
配置服务器IP地址用来通信,我们要把多台虚拟机设置为一个集群来工作,就必须给他们配置相同网段的IP地址。重启的命令是reboot,检查是否能Ping通外网。注意:这里的第三个部分的10并不是固定的,我们自己可以约定,但是约定之后就要固定下来。如果不进行设置,每次启动机器时都可能是随机的IP,不方便我们后续操作。让所有的vm配置的虚拟机使用NAT时,它们的网段都是一致的。Step3: 设置虚拟机hadoop100的IP。(3)最后,关闭服务器的防火墙。具体设置为:进入虚拟机,修改对应的IP。
2025-02-27 17:51:39
257
原创 安装vm和centOS
1. 下载 VMware Workstation Pro 访问 VMware 官方网站(https://www.vmware.com/cn/products/workstation-pro/workstation-pro-evaluation.html ),根据自己的操作系统版本下载对应的 VMware Workstation Pro 安装程序。- 在安装信息摘要界面,设置“安装位置”、“软件选择”等选项: - 点击“安装位置”,选择自动分区或手动分区,然后点击“完成”。- 安装完成后,点击“完成”。
2025-02-25 14:33:13
373
原创 vi的基本使用
1.如果这个文件不存在,此时就是新建文件,编辑器的左下角会提示:new file。vi编辑器有三种工作模式,分别为:命令模式,输入模式,底线模式。提示:在命令模式下按shift + zz,可实现快速保存退出。由于没有鼠标,我们的操作都是用键盘来控制光标的。2.如果文件已存在,此时就打开这个文件,进入命令模式。底线命令模式:以:开始,通常用于文件的保存和退出。是Linux的内置命令,以命令的方式来运行。4.G键(大写g)可以跳到文件的最后一行。5.8g键(两个小g)跳到文件的第一行。
2025-02-24 20:13:25
303
原创 linux常用命令
会把aaa、这三个字符写入a.txt文件,并把之前的内容全部覆盖掉(等价于先删除了a.txt的内容,再写入aaa)会把文件的最尾部的内容显示在屏幕上,并且不断刷新,只要文件有更新,就可以看到最新的文件内容。那么对应的命令就是:cp filel.txt file2.txt。命令是:tar -cvf test.tar 1.txt 2.txt 3.txt。示例1:把1.txt,2.txt,3.txt压缩到test.tar文件中。-x 表示解压文件。格式:tar -cvf 压缩包.tar 文件1 文件2 文件3。
2025-02-24 20:12:46
306
原创 spark
当前路径:也叫做当前工作目录是当下用户所处的位置。~波浪线,当前用户的home目录,比如root用户home目录是/root。rm -rf ./bbb 将目录及以下所有递归逐一删除,无需用户确认。相对路径:当前相对当前工作目录开始的路径,会随着当前路径变化而变化。rm -rf /* 将根目录及以下所有递归逐一删除,无需用户确认。mkdir -p:创建目录,如果父级目录不存在,就建立一个新目录。ll -a 命令,显示当前的目录下的文件,包括隐藏文件。ll 命令,用来显示当前的目录下的文件。
2025-02-24 20:11:17
226
原创 。。。。。。。。。。。。。。。。
/函数的参数类型 和 返回值类型是重要的,它约定了把什么类型转成什么类型。函数的参数类型 和 返回值类型是重要的,它约定了把什么类型转成什么类型。//隐式值:能够自己设置函数的参数默认值,而不是在代码中固定写死。//定义一个函数,用来检测输入的字符串是否是一个手机号。//1.在函数的默认参数前面补充关键字:implicit。系统自动完成的:把一种类型的数据转成了另一种类型的数据。println("implicit 被调用了")//需求:能够自己设置函数的参数默认值。// sayName("小明")
2024-12-09 07:59:59
367
原创 查持卡人的籍贯
case "15" => "内蒙古"case "23" => "黑龙江"case "11" => "北京"case "12" => "天津"case "13" => "河北"case "14" => "山西"case "21" => "辽宁"case "22" => "吉林"case "31" => "上海"case "32" => "上海"case "33" => "浙江"case "34" => "安徽"case "35" => "福建"case "36" => "江西"
2024-12-08 22:23:00
296
原创 【无标题】自动完成的
/函数的参数类型 和 返回值类型是重要的,它约定了把什么类型转成什么类型。函数的参数类型 和 返回值类型是重要的,它约定了把什么类型转成什么类型。//隐式值:能够自己设置函数的参数默认值,而不是在代码中固定写死。//定义一个函数,用来检测输入的字符串是否是一个手机号。//1.在函数的默认参数前面补充关键字:implicit。系统自动完成的:把一种类型的数据转成了另一种类型的数据。println("implicit 被调用了")//需求:能够自己设置函数的参数默认值。// sayName("小明")
2024-12-08 22:22:29
422
原创 正则表达式
val reg = "(\\d{3})(\\d{4})(\\d{4})".r //能匹配手机号的正则表达式。val reg ="\\W".r //\W表示一个非子:除了0-9 a-z A-Z _之外的。val reg ="\\w".r // \w表示一个字:0-9 a-z A-Z _val reg ="[^a-zA-Z]".r //不是a-z,A-Z中的某一个。val reg ="[a-zA-Z]".r //a-z,A-Z中的某一个。val reg = "ab{3}".r //{3}表示前面的规则3次。
2024-12-08 22:22:02
348
原创 trait
相同点:都可以定义成员变量,继承时都可以用。构造器的执行顺序:先父后子;作用:1、抽象类 2、多继承。发布于2024-10-28。trait的加载顺序。trait与类的区别。
2024-12-08 22:19:39
160
原创 类的成员(属性)
类的内部方法 伴生对象中的方法 类的外部(对象.的访问) 子类对象.访问 子类方法是否可以访问 另一个对象.属性。这样的好处是一个文件可以定义多个包,内层包也可以访问外层的包的类和对象。//s.sing()//private修饰的,不能通过在类的外部通过 对象. 来访问。private[this] 可以 不可以 不可以 不可以 不可以 不可以。不能通过其他对象. 的方式来访问!// this.dance()//dance是private修饰。private 可以 可以 不可以 不可以 不可以 可以。
2024-12-08 22:19:05
247
原创 set的定义
val newSet =mutable.Set("体育","电影鉴赏课","美术","音乐","语文","语文")val class1 = mutable.Set("喜洋洋","懒羊羊","美羊羊")val set1 = mutable.Set("语文","数学","英语")// val set1 = mutable.Set("语文","数学","英语")// val set1 = mutable.Set("语文","数学","英语")// //set1 =set1 + "物理"
2024-12-08 22:18:30
607
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅