- 博客(39)
- 收藏
- 关注
原创 mapreduce的工作原理
每个数据块会被分配到一个Map任务中进行处理。Map任务的主要作用是将输入数据转换为键值对的形式,然后对这些键值对进行处理,生成中间结果。例如,在一个统计单词出现次数的任务中,Map任务会将每个单词作为键,出现的次数作为值,输出类似 (word, 1) 的键值对。- Reduce任务会从不同的Map任务中获取相应分区的数据,并对这些数据进行处理。在统计单词出现次数的例子中,Reduce任务会将相同单词的出现次数进行累加,得到最终的结果。- 输入数据被分割成多个小的数据块,这些数据块分布在不同的节点上。
2025-03-31 19:22:38
226
原创 hadoop 集群的常用命令
hadoop fs - get :从Hadoop文件系统中下载文件到本地,如 hadoop fs - get /user/hadoop/file.txt localfile.txt。- hadoop fs - put :将本地文件上传到Hadoop文件系统中,例如 hadoop fs - put localfile.txt /user/hadoop/。- yarn node - list:列出YARN集群中的节点信息,包括节点状态、资源使用情况等。
2025-03-31 19:21:25
247
原创 linux常见操作命令
chmod:修改文件权限, chmod 755 file.txt 将文件的权限设置为所有者可读可写可执行,其他用户可读可执行。- ls:列出目录内容,如 ls -l 以长格式显示文件和目录详细信息, ls -a 显示包括隐藏文件在内的所有文件。- rm:删除文件或目录, rm file.txt 删除指定文件, rm -r dir 删除目录及其所有内容。- cd:切换目录, cd /home/user 可进入指定的用户目录, cd.. 返回上一级目录。
2025-03-03 19:28:01
111
原创 vi常见操作命令
%s/old/new/g 用于将全文中的 old 替换为 new , :%s/old/new/gc 在替换时会逐个询问是否替换。- 移动光标: h 键向左移动一个字符, j 键向下移动一行, k 键向上移动一行, l 键向右移动一个字符;- 进入插入模式: i 在光标当前位置前插入文本;o 在光标所在行的下一行插入新行, O 在光标所在行的上一行插入新行。p 将复制或剪切的内容粘贴到光标所在位置的下一行, P 粘贴到上一行。- 保存退出: :w 保存文件, :wq 保存并退出vi, :q!
2025-03-03 19:27:13
213
原创 虚拟机IP配置
打开网络配置文件,一般为 /etc/sysconfig/network-scripts/ifcfg-eth0 , eth0 是网络接口名称,可能会因系统而异。保存文件后,执行 systemctl restart network 命令,系统会通过DHCP服务器自动获取IP地址等网络配置信息。登录CentOS虚拟机后,可使用 ifconfig 或 ip addr 命令查看当前网络接口的配置信息,包括IP地址、子网掩码等。将 BOOTPROTO 的值设置为 dhcp ,即 BOOTPROTO="dhcp"。
2025-03-03 19:25:10
183
原创 vm+centos虚拟机
安装步骤:在VMware中点击“创建新的虚拟机”,选择“典型”或“自定义”配置。完成设置后,启动虚拟机,按照CentOS安装向导进行操作,如选择语言、分区、网络配置等,即可完成安装。CentOS虚拟机就是在VMware等虚拟机软件中安装的CentOS系统。还支持快照功能,方便用户对虚拟机状态进行备份和恢复。- 概念:VMware是一款功能强大的虚拟机软件,能在一台物理计算机上创建多个相互隔离的虚拟计算机环境,即虚拟机。用户可在这些虚拟机中安装不同的操作系统和应用程序,实现多个系统在一台机器上同时运行。
2025-03-03 19:24:06
191
原创 如何安装配置虚拟机
**Microsoft Hyper - V**:仅适用于Windows系统(Windows 10专业版及以上),集成在操作系统中,对于Windows用户来说比较方便,如果主要在Windows环境下使用虚拟机可以考虑。- 如果使用Windows 10专业版及以上系统,可通过“控制面板”->“程序”->“启用或关闭Windows功能”,勾选“Hyper - V”来安装(需要重启计算机)。- 创建虚拟硬盘,选择硬盘类型(如VDI、VHD等),并确定硬盘大小和存储方式(如动态分配或固定大小)。
2025-02-21 14:23:28
354
原创 scala和spark的介绍
Spark最初由美国加州伯克利大学( UC Berkelcy)的AMP实验室于2009年开发,是基于内存计算的大数据并行计算框架,可用于构建大型的、低延迟的数据分析应用程序。
2024-12-11 20:50:34
1463
原创 使用 Maven 来构建 Scala
使用 Maven 来构建项目方便虽然方便,但依赖于每一个开发人员都去配置一遍项目的必要依赖,包括 Scala 插件的编译配置以及 Scala 的依赖类库,让每个人通过拷贝(Copy)之前的项目配置当然可以,但难免会出些纰漏。而从头开始所有相关配置项都配置一遍,又略显繁琐,那么,我们可不可以想办法来进一步简化类似的基于 Maven 的 Scala 项目创建和配置?
2024-12-11 20:48:50
1507
原创 scala的泛型
/ getMiddleEle(List(1,2,3,4,5)) ==> 5/2 = 2 ==> 下标为2的元素是:3。// getMiddleEle(List(1,2,3,4)) ==> 4/2 = 2 ==> 下标为2的元素是:3。// List[Int]:List是列表,[Int] 是说列表中的每一个元素都是int!// 类型参数 -----泛型(数据类型是变化的)// 用它来获取当前的列表的中间位置上的值。// 中间位置的下标 = 长度/2。// (1) 可以有多个。
2024-12-11 20:46:12
207
原创 用scala定义函数的方式
/简写2:用 _ 占位符.(Int,Int)=>Int 他表示一种类型:收到两个整数的参数,返回一个整型值。// var classRoom = "教室310"//字面量。//println("教室310")//字面量。//定义函数的方式2:字面量的方式 =>//教室310+教室309。//定义函数的方式1。//简写1:省略{}
2024-12-11 20:44:55
164
原创 scala的map集合
如果你需要使用可变集合,你需要显式的引入 import scala.collection.mutable.Map 类。在 Scala 中 你可以同时使用可变与不可变 Map,不可变的直接使用 Map,可变的使用 mutable.Map。查询 :get方法,输入key,如果找到,就返回包装数据,如果没有找到,就返回None。Map 有两种类型,可变与不可变,区别在于可变对象可以修改它,而不可变对象不可以。直接:map(key名)如果key不存在,就会报错。Map常用操作有增加,删除,修改,查询。
2024-12-11 20:42:21
229
原创 scala图书馆创建图书信息
4.检查某一本特定的书籍(如 “Python 从入门到实践”)是否在图书馆集合中,使用 contains 方法,并输出结果。1.创建一个可变 Set,用于存储图书馆中的书籍信息(假设书籍信息用字符串表示,如 “7.求出两个图书馆书籍集合的交集,使用 intersect 方法,并输出结果。8.求出当前图书馆相对于另一个图书馆的差集,使用 diff 方法,并输出结果。6.求出两个图书馆书籍集合的并集,使用 union 方法,并输出结果。5.创建另一个可变 Set,表示另一个图书馆的书籍集合。
2024-12-11 20:41:12
171
原创 scala的迭造器
无论底层集合的具体结构如何,只要能获取到迭代器,就可以使用相同的hasNext和next方法来。zip方法用于将两个迭代器的元素按顺序组合成一个新的迭代器,其中每个元素是一个包含两个迭代器对应位置元素的元组。如果两个迭代器的长度不同,zip操作会在较短的迭代器耗尽时停止。采用延迟计算的方式,它不会将整个集合加载到内存中,而是在每次调用next方法时才计算并返回下一个元素。返回一对迭代器,它们可以独立遍历原始迭代器中的元素序列。take 只处理当前开始的,指定数量的元素,返回一个新的迭代器。
2024-12-11 20:39:23
216
原创 package test29import scala.collection.mutable.ArrayBuffer// 1case class DreamItem(content:String,
dreamList += DreamItem("莫名其妙获得10000000000000",false,"2030-10-01",1)dreamList += DreamItem("有100套房子",false,"2030-10-01",1)dreamList += DreamItem("周游全世界",false,"2030-10-01",1)dreamList += DreamItem("月薪十万+",false,"2030-10-01",1)
2024-12-11 20:36:31
344
原创 package test35 object test1 { // 正则表达式 def main(args: Array[String]): Unit = { // 定义一个正则表达
/ 6.脱字符^ 如果在正则的最前面,表示要匹配的内容必须在字符串的开头。// 7.脱字符$ 如果在正则的最后面,表示要匹配的内容必须在字符串的结尾。// 8.英文的. : 表示除了之外的其他任意一个字符,一个字符一个点。// 2.[a-z]: 表示从a到z的26个字母中的任意的一个。// 3.[A-Z]: 表示从A到Z的26个字母中的任意的一个。// 4.1 [^ab]: 表示匹配一个字符,除a,b之外的。// 4.[0-9]: 表示从0到10中的任意的一个。// 9.\d: 表示0-9的一个数字。
2024-12-11 20:35:29
224
原创 //定义一个特质 //特质可以有抽象属性,具体属性,抽象方法,具体方法trait Beauty { //抽象属性(没有=) val hair:String //具体属性 var
println(s"${age}岁,${height}大高个,${hair}")val height = 180 //val 不可以修改,var可以修改。//var 修饰的,可以用override重写。//特质可以有抽象属性,具体属性,抽象方法,具体方法。println(s"嘴角微微扬起")//var 修饰的可以直接赋值。val hair = "短发"//具体属性可以重写(可选)//抽象方法 要具体实现。//抽象属性 要具体实现。//抽象属性(没有=)//抽象方法(没有=)//具体方法可以重写。
2024-11-12 14:33:43
439
原创 //构造函数中的参数,如果加了val,var 就是自动成为类的成员class Point(val x:Double,val y:Double){ override def toString: S
/Point(x,y)中的x,y不要加数据类型,它就表示函数的调用。//构造函数中的参数,如果加了val,var 就是自动成为类的成员。//val需要加在label前面,是因为label是这个子类的成员。//x,y前面不要加val,因为它会从piont中继承过来。
2024-11-12 14:33:05
413
原创 scala的set方法,可变与不可变
val books1 = mutable.Set("java程序设计","大数据项目分析技术","父与子")val books = mutable.Set("灰姑娘","红楼梦","平凡的世界")val rs = books.contains("平凡的世界")books += "勇敢的人先享受世界"books += "小王子"books -= "灰姑娘"
2024-11-12 14:31:39
288
原创 scala按照学生的分数的降序排序
println(s.name) //小花2 → 小花1 → 小花3 → 小花4。var s1 = new Stu16("小花1",100)var s2 = new Stu16("小花2",120)var s3 = new Stu16("小花3",90)var s4 = new Stu16("小花4",80)//按照学生的分数的降序排序。
2024-10-16 09:56:59
272
原创 scala,继承
println(s"${leg} 条腿的 ${age} 岁 的 Dog run......,它的父类有 ${super.leg} 条腿")// val ----- > override val xxx = 新值。// var ----- > 直接赋值 xxx = 新值。//多态:同一个方法,传入不同的对象,产生不同的结果。// d1.run()//自己改写的。//重写父类的同名方法:override。// d1.say() //继承的。
2024-10-16 09:55:45
272
原创 scala,抽象
/abstract:抽象类。有抽象方法的类,就是抽象类。抽象方法就是没有方法体的方法 def autoRun。println(s"小米的自动驾驶.....${sheel},${hasDriver}")println(s"小米汽车的自动泊车功能")println("小米 su7 的 run")// 抽象类:制定标准,让其他的类去实现!sheel = 3 //重写父类的属性。//把父类的抽象标准变为现实-具体!
2024-10-16 09:54:20
277
原创 scala:map函数
/学习一些常见的高阶函数(与数组,列表相关的)的用法。任务:把数组(1.2.3.4.5)~(2.4.6.8.10)println(arr(0)) //下标从0开始。//arr 就是一个数组。//Array:数组。
2024-10-08 17:38:59
218
原创 用scala求斐波那契数列的第n项
记: 0 1 1 2 3 5 8 13 21 34 55 ... 从第3项开始 f(n) = f(n-1) + f(n-2)2.递归情况(大事化小,自己调用自己): f(n) = f(n-1) + f(n-2)1.基本情况(直接能求的):f(0) = 0,f(1) = 1。问题:求 斐波那契数列的第n项。求斐波那契数列的第n项。
2024-10-08 14:21:50
141
原创 scala汉罗塔
/ println(addxy(x=300)) // x 传入 300+200。// println(addxy(y=300)) // x 传入 100+300。// println(args) //是一个集合,把所有的参数都装入。// println(addxy()) //x,y都不传入。//如果一个函数,没有参数,可以省略:定义 和 调用时的()//例子:支持传入数量不等的参数,求它们的和。//如果不传入参数,就使用对应的默认值。//支持传入数量不等的参数。
2024-10-08 14:17:29
215
原创 scala的主构造器
主构造器的参数可以直接作为类的成员变量使用,无需额外的声明。在上面的例子中, name 和 age 可以在类的方法中直接访问。- 可以通过在参数前添加访问修饰符来控制参数的访问级别。例如, private 可以使参数只能在类内部访问。在这个例子中, name 和 age 是 Person 类主构造器的参数。在 Scala 中,主构造器是类定义中的一部分,它与类名在同一行。这里的 parameters 就是主构造器的参数。1. 直接初始化成员变量。
2024-09-24 18:02:07
208
原创 scala的伴生类对象和伴生类
总之,Scala 的伴生类和伴生对象提供了一种方便的方式来组织相关的代码,并实现类似于其他语言中静态成员和单例模式的功能。- 伴生对象中的方法和属性可以直接通过伴生对象的名称访问,而不需要创建伴生类的实例。伴生对象是与伴生类同名的对象,它通常用于定义一些与伴生类相关的静态方法和属性。- 伴生对象在程序启动时自动实例化,而伴生类需要通过构造函数显式实例化。在 Scala 中,伴生类和伴生对象是一种特殊的关系。- 伴生对象可以用于初始化伴生类的一些静态状态。- 伴生类可以访问伴生对象的私有成员。
2024-09-24 17:58:12
341
原创 演示Scala lazy变量的惰性求值
为了验证lazy变量的惰性求值特性,我们可以在初始化代码块中添加一些额外的操作,比如打印一条消息或者执行一些耗时的操作。如果我们再次访问x,将不会再次执行初始化代码块,而是直接返回之前计算的结果。这是因为lazy变量的值一旦被计算,就会被缓存起来,后续访问会直接返回缓存的值。由于x是一个lazy变量,它的初始化代码块只有在第一次访问时才会被执行。惰性求值:在用到的时候才对表达式进行求值,而不是在定义时立即求值, 并且变量只有在首次访问时才会进行初始化,之后再次访问时会使用已经计算好的值。
2024-09-05 08:00:16
704
原创 一分钟教会你如何写Scala HelloWorld
4. 使用 scala HelloWorld 运行程序,你将在控制台看到“Hello, World!1·创建文件,新建以·Scala后缀的文本文档编写HelloWorld代码。3. 使用 scalac HelloWorld.scala 编译程序。2. 打开命令提示符或终端窗口,进入包含这个文件的目录。
2024-09-03 16:24:55
356
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人