- 博客(78)
- 收藏
- 关注
原创 mapreduce的工作原理
输出:Map 函数的输出是新的键值对,这些中间结果将传递给 Reduce 阶段^1^。输出:Reduce 函数的输出是最终结果,通常存储在 HDFS 中^1^。处理:Reduce 函数对相同键的值进行合并计算,生成最终结果。Shuffle 阶段: 分区:将 Map 阶段的输出数据进行分区,每个分区对应一个 Reduce 任务。Map 阶段: 输入:Map 阶段接收输入数据,通常是键值对(key-value pairs)。Reduce 阶段: 输入:Reduce 阶段接收 Shuffle 阶段处理后的数据。
2025-03-31 19:53:59
140
原创 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-03-31 19:50:16
209
原创 虚拟机配置IP
linux中,ip地址是写在配置文件(/etc/sysconfig/network-scripts/ifcfg-ens33)中,这里使用 vi 编辑器去修改即可!这里要注意一下:VMware net work Adpater VMnet8是安装了Vm这个软件之后会自动产生的。注意:这里的第三个部分的10并不是固定的,我们自己可以约定,但是约定之后就要固定下来。具体操作如下:选择控制面板 → 网络连接 → VMware network。让所有的vm配置的虚拟机使用NAT时,它们的网段都是一致的。
2025-02-26 15:35:31
257
原创 VI编辑器 和 常见命令
在这个模式下,所敲的按键编辑器都理解为命令,以命令来驱动执行不同的功能。1.如果这个文件不存在,此时就是新建文件夹,编辑器的左下角会提示:new file。把文件内容添加到一个全新的文件的快捷方式:echo 1 >> 1.txt。提示:在命令模式下按下 shift + zz ,可以实现快速保存退出。2.nyy(小写)复制当前行往下n行内容。1.p(小写)在当前行的下一行粘贴。4.按下 G 键(大写g)可以跳到文件的最后一行。5.按下 gg 键(两个小写g)调到文件的第一行。1.u 撤销上一步的操作。
2025-02-25 11:08:51
217
原创 Linux创造命令系统
会把 111 写入到 a.txt 这个文件中,把之前的内容删除掉。示例: 把 file1.txt 复制一份得到 file2.txt。示例:先创建一个目录,把一个压缩文件(test.tar)解压出来,就放在指定目录(/temp)移动操作:mv file.txt newdir/file.txt。命令:tar -cvf test.tar 1.txt 2.txt 3.txt。把1.txt,2.txt,3.txt 压缩到 test.tar 文件中。-c :建立一个压缩文件,把多个文件或文件夹压缩到一个新的文件中。
2025-02-25 10:55:57
864
原创 Linux命令
rm -rf /* 将根目录及以下所有递归逐一删除,无需用户确认(小心使用)3 cd~ 当前用户的 home目录,比如 root 用户 home 目录是 /root。rm -rf ./bbb 讲目录及以下所有递归逐一删除,无需用户确认。3. mkdir -p 命令:创建目录,如果父级目录不存在,就建立一个父级目录。1. ls:列出目录内容,包括参数 -l(详细列表), -a(显示隐藏文件)2. ll -a 命令,显示当前的目录下的文件,包括隐藏文件。1. ll 命令,用来显示当前的目录下的文件。
2025-02-25 10:55:21
116
原创 了解大数据
阶段3:实时大数据时代 spark是基于内存的计算,mapReduce是基于磁盘的计算。2、高扩展性:在集群间分配任务数据,可方便的拓展数以千计的节点。五、Hadoop的定义:Hadoop是分布式系统处理架构。3、多样 :结构化数据和非结构化数据。1、高可靠性:底层维护多个数据副本。阶段2:大数据时代-分布式处理。二、大数据的应用场景:视频推荐、电商推荐等。
2025-02-18 11:37:45
163
原创 Scala的泛型
/ List(1,2,3,4,5) ==> 中间元素的下标 = 长度/2 ===> 3。//def 函数的名字(参数1: 类型1) : 返回值的类型 = {//需求:你是一个程序员,老板让你写一个函数,用来获取列表中的中间元素。//[T] 就是泛型, 类型参数化,把类型当做参数传入函数内部。
2024-12-11 17:02:20
330
原创 Scala阶乘
/ 120 //写代码,完成1*2*3*...*d。// println("阶乘函数被调用",d)//需求:给整数添加一个功能,求阶乘。
2024-12-11 16:38:52
116
原创 Scala隐式类
/ transform(u1).updateUser() //希望要增添的新功能。//思路:把BaseUser 通过隐式转换,改成一个新类型,而这个新类型中有这个新类型。//任务:给之前的BaseUser添加新的功能,但是,不要直接去改代码。//implicit class === 一个隐式转换函数 + 类。//它的作用:拓展已有类的功能,而不需要去修改之前的类的代码。//10年,小王写的代码。
2024-12-11 15:37:35
163
原创 Scala函数的隐式参数
def sayName(implicit name:String = "小明"): Unit ={//困难:函数有一个默认参数值,在不传入具体的实参时,就会自动使用这个默认值。implicit val value:String = "小张"println("我的名字是:"+name)// 难点在于,这个默认值不能修改!sayName("小王")//一直在修改原来的代码!//函数参数的默认值。
2024-12-11 15:06:34
186
原创 Scala隐式转换2
/完成一个功能,让所有的字符串都能调用isPhone方法,来验证自己是不是一个手机号。//定义一个特殊的转换函数,把str ===> StrongString的对象。//验证是否身份证号。
2024-12-09 17:04:26
194
原创 Scala隐式转换
/隐式转换:编译器 偷偷地 自动的帮我们把一种数据类型转换为另一个类型。// 它有失败的时候(double --> int) 有成功的时候。// j = i //把 Int 转入 Double。// 例如: int --> double。println("implicit X 被调用了")//当它转换失败的时候,我们提供一个工具,让它能成功。i = j //把Double 转入 Int。//明确地,把double转成int。
2024-12-09 16:40:44
114
原创 Scala的正则表达式3
/ var str = "张先生,手机号:13812345678 13612345454 寝室号1345-01 你买的 xxx 到了"//reg.replaceAllIn的功能:在目标字符串str中,用正则表达式reg去查找,找到之后,用箭头函数 的返回值。// () 是分组,它不会影响正则表达式的查询结果,但是,它会把分组找到的内容单独保存到group中。// var str = "张先生,ID: 4290052000------56"//案例:把字符串中的身份证号打码。
2024-12-09 15:47:00
268
原创 Scala的正则表达式2
/ println(reg.matches(name5)) //matches对字符串做验证,返回boolean值。println(reg.matches(name2)) //matches对字符串做验证,返回boolean值。println(reg.matches(name4)) //matches对字符串做验证,返回boolean值。println(reg.matches(name5)) //matches对字符串做验证,返回boolean值。" // 不合法,!//验证用户名是否合格。
2024-12-09 15:46:09
147
原创 Scala正则表达式
/6. * ===>{0, } 把前面的字符匹配0次 或者多次。//5. + ===>{1, } 把前面的字符匹配最少1次。//3. \\D 出来\d 之外的其他的任意字符,表示非数字。//1. {n,m} 把前面的字符匹配最少n次,最多m次。//2. {n, } 把前面的字符匹配最少n次,最多不限。//1. . 表示除了换行之外的其他的任意单个字符。//5. \W 除了\w 之外的任意字符。//3. {n} 把前面的字符匹配n次。//规则3:第二为是3-9的数字。
2024-12-04 17:06:37
374
原创 Scala的模式匹配(五)
case Student(name,className) => println(className,"的学生",name)case Array(1,x,y) => println(s"数组第一个元素是1,一共有3个元素${x},${y}")//需求:现在有一个数组Array(1,2,3,4),我希望能定义三个变量,它们的值分别是数组中的第1,2,3个元素的值。case Array(1,x,y,z) => println("数组第一个元素是1,一共有4个元素")case _ => println("其他")
2024-12-04 15:36:11
382
原创 Scala的模式匹配(四)
case a:Boolean => println(s"当前是Boolean $a")case _:Double => println(s"当前是Double")case _:Int => println(s"当前是Int")case _ => println("其他")
2024-12-02 16:49:40
143
原创 Scala的模式匹配(三)
0) => println(s"$x 是闰年")case x if(x%400 == 0) => println(s"$x 是闰年")case _ => println(s"$year 不是闰年")// // else{ println("未匹配")}// case _ => println("未匹配")// println(s"用户输入的是:$a")//1. year能整除4 不能整除100。//2. year能整除400。// //从控制台读入一个数字a。
2024-12-02 16:49:06
160
原创 Scala的模式匹配(二)
case (x,y,z,k) => println(s"这是一个有四个元素的元组,它的最后一个元素是:${k}")case (x,y,z) => println(s"这是一个有三个元素的元组,它的第二个元素是:${y}")case _ => println("位置类型")//要显示给用户的是 一等,二等,三等,四等。//从数据库中获取数据 1,2,3,4。case 1 => "一等"case 2 => "二等"case 3 => "三等"case 4 => "四等"case _ => "未知"
2024-12-02 15:28:42
111
原创 Scala的匹配模式(一)
/细节2:case_ 不写。case 42 => println("湖北")case 11 => println("北京")case 31 => println("上海")case _ => println("其他")// println("湖北")// println("北京")// println("上海")// println("其他")//如果是 42,输出 湖北。//如果是 11,输出 北京。//如果是 31,输出 上海。//否则就输出 其他。
2024-12-02 15:01:12
242
原创 Scala成绩总分排序
foreach(s => println(s"姓名:${s.name},数学:${s.shuxue},总分:${s.total}"))orderList.foreach(s=>println(s"姓名:${s.name},总分:${s.total}"))// println("当前行是:",name,yingyu,total,avg)//1.读取成绩,按行去读取,跳过第一个元素。//1.迭代器,跳过第一个元素。//0.定义一个空列表。//根据总分进行排序。//根据数学进行排序。
2024-11-27 16:56:11
734
原创 Scala的单词拆分及统计
/对于m1,它是一个Map (thank:10, is:5),现在需要对它进行排序,把出现次数最多的放在最前面,然后再输出。// \\W+ :大写字母W表示:非字(不是一个字的字符。val arr = content.split("\\W+") // 得到是一个字符串数组。//1.字符串.split("分隔符"):把字符串用指定的分隔符,拆分成多个部分,保留在数组中。//只要排序之前的结果的前15个?//把字符串中的每个单词拆出来。//把结果保存到一个新的文件中。// +:一个或者多个。
2024-11-27 16:07:28
377
原创 Scala中身份证的秘密
val m1 = Map((41,"河南"),(42,"湖北"),(43,"湖南"),(44,"广东"),(45,"广西"),(46,"海南"))println(s"身份证号${id}是不合法的")// println(s"籍贯是:河南")// println(s"籍贯是:湖北")// println(s"籍贯是:湖南")// println(s"籍贯是:广东")// println(s"籍贯是:广西")// println(s"籍贯是:海南")
2024-11-26 21:09:29
304
原创 Scala的Array题目
dreamList += DreamItem("成为一名医生",false,"2030-01-01",100)dreamList += DreamItem("成为暗区老大",true,"2010-01-01",10)dreamList += DreamItem("有一个平板",true,"2010-01-01",1)// doctor:医生。
2024-11-26 21:06:24
179
原创 scala的Array和ArrayBuffer
/ println(arr1.length) //length 长度,用来获取元素的个数。// arr1.remove(0) //删除指定位置(下标)的元素。// // 注意:下标不能越界,有效的范围是:0 - 长度 -1。// arr1(0) = 50 //把下标为0的元素赋值为50。// arr1 -= 3 //删除指定的元素。// // -1:表示这个元素在数组中不存在。// //可修改的:ArrayBuffer。// //4. 修改。// //5.2 找到指定元素的下标。
2024-11-26 21:05:23
241
原创 Scala的Array(可修改)
(arr1.length) //length 长度,用来获取元素的个数。arr1.remove(0) //删除指定位置(下标)的元素。// 注意:下标不能越界,有效的范围是:0 - 长度 -1。arr1(0) = 50 //把下标为0的元素赋值为50。//可修改的: ArrayBuffer。arr1 -= 3 //删除指定的元素。// -1:表示这个元素在数组中不存在。//可修改的:ArrayBuffer。//5.2 找到指定元素的下标。//不可修改的:Array。//Array : 数组。
2024-11-26 21:04:39
156
原创 Scala的Array(不可修改)
/ arr1.slice(起点下标,终点下标-不包括)//数组的常用方法(对于可变和不可变的数组都可以使用)//1. 截取,从源数组在,取一部分,组成一个新的数组。//可修改的: ArrayBuffer。//不可修改:Array :长度不可变。//不可修改的:Array。//Array : 数组。//3.映射 map。
2024-11-26 21:03:24
140
原创 Scala的迭代器
/ it3.next() //NoSuchElementException 没有这个元素,迭代器移过头。//复制迭代器 duplicate 返回值是一个元组,有两个数据源一样的,独立的迭代器。//迭代器的使用场景:Map,List,Set.....都可以使用迭代器来遍历。// next():得到当前的元素,并把迭代器向后移动一个位置。// take:从当前的迭代器的位置开始,取n个元素。// 作用:把两个迭代器组合成一个,以短的为准。//把迭代器中剩余的数据保存到List中。//任务:输出每一个元素。
2024-11-26 21:02:32
253
原创 Scala的case class
/ 特点:自动生成伴生对象 apply方法,让实例对象时候,可以省略new.val book1 = new Book("西游记","吴承恩",100)val book2 = new Book("西游记","吴承恩",100)val book3 = new Book("西游记","吴承恩",100)// 定义语法:case class 类名(val 属性:String)//1.属性的默认修饰符是 val(不可变), 说明定义对象不能改属性。//Set的特点:唯一(元素不相同);// toString方法。
2024-11-26 21:00:10
331
原创 scala 的caseclass
val book1 = new Book("西游记","吴承恩",100)val book2 = new Book("西游记","吴承恩",100)val book3 = new Book("西游记","吴承恩",100)//判断是否相等的逻辑:bookNane 相等。//3.case class, 它自动提供;//Set的特点:唯一(元素不相同);//case class : 定义一组数据。// hashCode方法。// toString方法。// equals方法。//定义一个可变set。
2024-11-26 20:58:54
358
原创 Scala的List
/// println(li1(1)) //1 就是第二个元素。//分类:可变(ListBuffer),不可变(默认不可变)//2.2 删除某个位置的元素,例如:删除第三个。//5.合并 ++ , 简单的合并,没有去重。//操作:添加,删除,修改,查询,遍历。//有序:下标从0开始,可以依次访问。(s"200在不在list 中。// //通过下标来访问元素。//2.1 删除某个元素。
2024-11-26 20:56:30
316
原创 Scala的map题目
5000","12343"->"撒野,巫哲,4000","12325"->",墨香铜臭,5000","12954"->"魔道祖师,墨香铜臭,5000")val map2 =mutable.Map("12345"->"某某,map2("12325") = "盗墓笔记2,{value} 的简称"){value} 的简称"),南派三叔,5004")
2024-11-26 20:55:54
250
原创 Scala的map(可变)
输入key,如果找到,就返回包装数据,如果没有找到,就返回None。//3.2 直接:map(key名)。val map1 = mutable.Map("鄂"->"//4. 修改元素:把青 -> 青海,改成 青->//操作:添加元素,删除元素,查询元素,修改元素,// val rs = map1.get("鄂")","湘"->"湖南省","青"->"青海")map1 += ("豫"-> "河南省")// println(map1("鄂"))map1("青") = "青海省"// map1 -= "鄂"
2024-11-26 20:55:14
196
原创 Scala的Map集合(不可变)
val map1 = Map("鄂"->"湖北省","湘"->"湖南省","青"->"青海")// val map3 = map1 + ("鄂"->"河南省")//3.2 直接:map(key名)。val map2 = map1 + ("豫"-> "河南省")val map4 = map1 +("青"->"青海省")//操作:添加元素,删除元素,查询元素,修改元素,遍历。// val rs = map1.get("鄂")// println(map1("鄂1"))// map1("青") = "青海省"
2024-11-25 15:48:31
291
原创 Scala的Set集合题目
val books = mutable.Set("撒野","某某")val book1 = mutable.Set("撒野","books += "这题超纲了"books -= "这题超纲了"
2024-11-25 15:36:54
240
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人