- 博客(68)
- 收藏
- 关注
原创 mapreduce的工作原理
Shuffle的本义是洗牌、混洗,把一组有一定规则的数据尽量转换成一组无规则的数据,越随机越好。MapReduce中的Shuffle更像是洗牌的逆过程,把一组无规则的数据尽量转换成一组具有一定规则的数据。为什么MapReduce计算模型需要Shuffle过程?我们都知道MapReduce计算模型一般包括两个重要的阶段:Map是映射,负责数据的过滤分发;Reduce是规约,负责数据的计算归并。Reduce的数据来源于Map,Map的输出即是Reduce的输入,Reduce需要通过Shuffle来获取数据。从M
2025-03-31 19:41:53
473
原创 hadoop集群的常用命令
改名 mv spark-2.2.0-bin-hadoop2.7.tgz spark-2.2.0。这里我用5台机器,1个Master资源调度,3个Worker处理任务,1个Cient提交任务。解压 tar -zxvf spark-2.2.0-bin-hadoop2.7.tgz。Hadoop生态圈里面的一个资源调度框架,Spark是可以基于Yarn来计算的,最流行。进入到 /opt/bigdata/spark-2.2.0/conf/下。一种资源调度框架,支持docker,前景最好。
2025-03-31 19:40:10
181
原创 spark
(7)查看 Master 资源监控 Web UI 界面: http://master:8080(如果master不行用master IP地址)(具体原因是没在Windows里配置文件)(9)查看 slave1 的 Master 资源监控 Web UI,稍等一段时间后,slave1节点的 Master 状态。(6)启动slave2的单独Master节点,此时slave1节点MAster状态处于备用状态。(1)修改配置文件(在local基础上修改配置文件)(3)修改spark-env.sh 文件添加如下配置。
2025-03-17 19:35:54
100
原创 spark
Shark( Hive on Spark): Shark基本上就是在Spark的框架基础上提供和Hive一样的H iveQL命令接口,为了最大程度的保持和Hive的兼容性,Shark使用了Hive的API来实现queryParsing和 Logic Plan generation,最后的PhysicalPlan execution阶段用Spark代替Hadoop MapReduce。由于RDD的特性,Spark不适用那种异步细粒度更新状态的应用,例如web服务的存储或者是增量的web爬虫和索引。
2025-03-12 09:08:17
256
原创 spark
本文将详细介绍Spark的一些基本命令及其使用示例,帮助开发者更好地理解和应用Spark。sortBy(func, [ascending], [numTasks]):使用func先对数据进行处理,按照处理后结果排序。distinct([numTasks]):对RDD中元素执行去重操作,参数表示任务的数量,默认值和分区数保持一致。filter(func):过滤,返回一个新的RDD,由func的返回值为true的那些元素组成。在Spark中,转换操作是指从一个RDD到另一个RDD的操作。
2025-03-03 19:46:24
134
原创 Spark 2
会把aaa、这三个字符写入a.txt文件,并把之前的内容全部覆盖掉(等价于先删除了a.txt的内容,再写入aaa)会把文件的最尾部的内容显示在屏幕上,并且不断刷新,只要文件有更新,就可以看到最新的文件内容。命令是:tar -cvf test.tar 1.txt 2.txt 3.txt。-x 表示解压文件。示例1:把1.txt,2.txt,3.txt压缩到test.tar文件中。格式:tar -cvf 压缩包.tar 文件1 文件2 文件3。-c 建立一个压缩文件,把多个文件或文件夹压缩到一个新的文件中。
2025-02-24 14:50:33
221
原创 Spark 基本命令
波浪线,当前用户的home目录,比如root用户home目录是/root。rm -rf ./bbb 将目录及以下所有递归逐一删除,无需用户确认。相对路径:当前相对当前工作目录开始的路径,会随着当前路径变化而变化。rm -rf /* 将根目录及以下所有递归逐一删除,无需用户确认。mkdir -p:创建目录,如果父级目录不存在,就建立一个新目录。删除文件无需用户确如 rm -f +文件名 (慎用!ll -a 命令,显示当前的目录下的文件,包括隐藏文件。ll 命令,用来显示当前的目录下的文件。
2025-02-24 14:48:36
106
原创 Spark
特点:提高处理能力:通过将任务分散到多个节点上并行计算,能够大大提高数据处理的速度和效率,从而可以在短时间内处理海量数据,满足大数据时代对数据处理的实时性和高效性要求。1.硬件资源有限:单机系统的计算能力、存储容量和内存空间都受限于单台计算机的硬件配置。1.无法处理大规模数据:随着业务的发展和数据量的增长,单机系统很快就会遇到存储和处理能力的瓶颈,无法应对海量数据的存储和分析需求。3.应用场景简单:主要用于个人办公、简单的游戏娱乐或小型企业的基本业务处理,如文字处理、单机游戏、简单的库存管理等。
2025-02-24 14:41:07
397
原创 vi的基本使用
1.如果这个文件不存在,此时就是新建文件,编辑器的左下角会提示:new file。d(一个小d)加←删除左侧一个单词,d(一个小d)加→删除右侧一个单词。vi编辑器有三种工作模式,分别为:命令模式,输入模式,底线模式。2.如果文件已存在,此时就打开这个文件,进入命令模式。底线命令模式:以:开始,通常用于文件的保存和退出。2.nyy(n+两个小y)复制当前行往下n行内容。2.ndd(n+两个小d)用来删除当前行往下n行。nyy(n+两个小y)复制当前行往下n行内容。1.yy(两个 y)复制光标所在行的内容。
2025-02-24 14:28:57
280
原创 Scala
如果我们真得在前面的项目配置上进行工作的话,spring-boot-starter-scala-user 可以编译成功,可以打包成功,可以发布成功,但是,在整个过程中 Maven 无法识别 Scala 代码。所以,如果要让基于 spring-boot-starter-scala 的想法可以实现,我们需要将 scala-maven-plugin 从 spring-boot-starter-scala 项目中移到 spring-boot-starter-scala-user 项目。是不是更加简洁和方便了?
2024-12-15 09:04:55
415
原创 Scala
Spark本身就是使用Scala语言开发的,spark和flink的底层通讯都是基于的高并发架构akka开发,然而akka是用scala开发的,Scala与Spark可以实现无缝结合,因此Scala顺理成章地成为了开发Spark应用的首选语言。最简单的方法:右键项目,在弹出的菜单中,选择Add Framework Surport ,在左侧有一排可勾选项,找到scala,勾选即可。打开菜单 [File] → [Settings] → [Plugins],搜索scala,点击[install]
2024-12-15 09:04:11
100
原创 Scala
Scala中算术操作符(+、-、*、/、%)的作用和Java是一样的,位操作符(&、|、>>、<<)也是一样的。特别强调的是,Scala的这些操作符其实是方法。注:使用关键字var或val声明变量时,后面紧跟的变量名称不能和Scala中的保留字重名,而且变量名可以以字母或下划线开头,且变量名是严格区分大小写的。Scala有两种类型的变量,一种是使用关键字var声明的变量,值是可变的;声明变量时,我们可以不给出变量的类型,因为在初始化的时候,Scala的类型推断机制能够根据变量的初始化的值自动推算出来。
2024-12-15 09:03:18
122
原创 Scala
函数式编程相对于面向对象编程,更加抽象,好处是,代码可以非常简洁,更多采用常量而不是变量来解决问题,这样额外带来的好处:在线程并发时,可以减少甚至杜绝多线程并发安全问题,特别适合于应用在处理高并发场景、分布式场景下的问题。例如,Scala中的每个值都是一个对象,包括基本数据类型(即布尔值、数字等)在内,连函数也是对象。表现为可以重载操作符,跟Python很像,在一定程度上Scala是Java和Python生的孩子,只不过遗传基因比较大的卵子是Java提供的,而比较小的那颗精子则是Python提供的。
2024-12-15 09:02:36
315
原创 Scala
Scala中的函数与其他语言中的函数类似,包含函数名、参数列表、函数体和返回值类型。这个函数的名称是add,参数列表为x和y,类型均为Int,返回值类型也是Int。另一个值得注意的Scala特性是它支持类型推断,这使得编译器能够推断代码中变量和表达式的类型,无需显式的类型注释。这些类型的值可以通过字面量表示。Scala中函数的返回值可以使用return语句显式返回,也可以使用函数体中最后一个表达式的值隐式返回。其中,functionName是函数的名称,param1、param2等是函数的参数列表。
2024-12-15 09:00:56
107
原创 Scala
创建一个副本(默认为浅拷贝,即拷贝对象的引用,拷贝中数据改变原值也会改变)collect 通过执行一个并行计算(偏函数),得到一个新对象。PartialFunction(入参,出参) 即只处理指定数据。在序列中查找第一个符号偏函数定义的元素,并执行偏函数计算。聚合计算,是柯理化方法,参数是两个方法。类型,值,顺序都要匹配,不比较长度。取下标对应的值,必须为Int类型。并数组,结果由冒号右边类型决定。冒号跟着集合,在数组前或后加值。合并集合,并返回一个新的数组。序列中是否包含指定对象。不分区计算,串型计算。
2024-12-15 08:59:50
397
原创 Scala
在现代软件开发中,Scala 以其强大的功能性和面向对象的特性,成为了许多开发者的选择。Gradle 作为 Java 生态系统中一个流行的构建工具,支持通过插件扩展其功能,包括对 Scala 项目的支持。通过本文的详细介绍,你应该已经了解了如何在 Gradle 中配置 Scala 插件的基本步骤和操作。Scala 插件为 Gradle 提供了对 Scala 项目的全面支持,使得构建和管理 Scala 项目变得简单和高效。配置好 Scala 插件和依赖后,你可以使用 Gradle 的命令来构建和测试项目。
2024-12-15 08:59:03
105
原创 Scala
val/var map = Map((键, 值), (键, 值), (键, 值), (键, 值)...)val/var map = Map(键->值, 键->值, 键->值...) // 推荐,可读性更好。diff表示对两个列表取差集,例如: a1.diff(a2),表示获取a1在a2中不存在的元素。val/var 变量名 = Set(元素1, 元素2, 元素3...)定义一个不可变集,保存以下元素:1,1,1,1,1,3,2,4,8。scala中的集也分为两种,一种是不可变集,另一种是可变集。
2024-12-15 08:57:37
423
原创 Scala
Scala语言是开发Spark应用程序的主要编程语言,它可以运行在Window、Linux、Unix、 Mac OS X等系统上。可以看到,Scala已经被安装到了/opt/目录下。在Scala的bin目录下,是Scala的编辑器和执行程序。在本实验环境中,scala安装包位于:/data/software/scala-2.11.11.tgz。Scala是一种JVM语言,使用 Scala 之前必须先安装 JDK。在本实验中,我们指定scala的安装路径位于:/opt/2、查看Scala环境变量配置。
2024-12-15 08:56:48
125
原创 Scala
IntelliJ IDEA 是一款功能强大的集成开发环境(IDE),支持多种编程语言,包括 Scala。启动 IntelliJ IDEA,选择 “New Project”,然后选择 “Scala” 作为项目类型。sbt(Simple Build Tool)是 Scala 的构建工具,类似于 Java 的 Maven 或 Gradle。在 Scala REPL 中,你可以输入任何 Scala 代码并立即执行。选择 “Scala” 和 “sbt” 作为项目模板,然后点击 “Next”。
2024-12-15 08:55:42
105
原创 Scala
Scala中的数组分为定长数组和变长数组,定义定长数组,需要使用new关键字,而定义变长数组时,则需要导包import scala.collection.mutable.ArrayBuffer。默认情况下,Scala 使用不可变Set集合,若想使用可变的Set集合,则需要引入scala.collection.mutable.Set包。在Scala中,获取元组中的值是通过下划线加脚标(例如:tuple._1,tuple._2)来获取的,元组中的元素脚标是从1开始的。然而,列表与数组不同的是,列表是不可变的。
2024-12-15 08:54:56
73
原创 scala
4)Scala在设计时,马丁·奥德斯基是参考了Java的设计思想,可以说Scala是源于Java,同时马丁·奥德斯基也加入了自己的思想,将函数式编程语言的特点融合到JAVA中, 因此,对于学习过Java的同学,只要在学习Scala的过程中,搞清楚Scala和Java相同点和不同点,就可以快速的掌握Scala这门语言。一般来说,学 Scala 的人,都会 Java,而 Scala 是基于 Java 的,因此我们需要将 Scala和 Java 以及 JVM 之间的关系搞清楚,否则学习 Scala 你会蒙圈。
2024-12-15 08:53:42
106
原创 scala
spark本身就是Scala语言开发的,Scala语言自然就是我们学习Spark的首选语言。Byte,Short,Int,Long,Char,String,Float,Double,Boolean(true,false两种取值),Unit作为没有返回值的的函数类型。4.spark自带REPL解释器,spark配置好后,直接键入scala就可以进入scala解释器进行scala语言的学习,以下是spark的环境变量配置项。3.Scala解释器REPL(read,eval,print,loop的缩写)。
2024-12-15 08:52:29
328
原创 Scala
scala是一门纯面向对象编程语言,里面没有static,void这种关键字,也就意味着在scala当中没有和java一样的静态内容一说,scala为了弥补没有静态内容的缺陷,提供了一个object类型的类,类中声明的属性和方法都是静态内容。scala编程与java语言之间都有相互借鉴的地方,而scala是起源于java的,所以代码的运行机制与java基本一致,因此scala中可以无缝的衔接javad代码。== 如果没有重写equals方法,代表比较两个对象的地址值,重写方法后,代表比较两个对象的值。
2024-12-09 08:16:59
92
原创 Scala
println((4>5) && test(num)>0) // 前面为false 后面为true 短路与 后面的判断不再进行 只输出false。println((40) // 前面为true 后面为true 短路或 不再进行后面的判断 输出 true。println((4>5) || test(num)>0) // 前面为false 后面为true 正常输出 test方法被调用!println(isNotEmpty(s2)) // false 表示为空。
2024-12-09 08:16:23
91
原创 Scala
Scala与Java语言类似,如果有Java基础,学习起Scala语言是比较顺手的,特别是在Java8上引入了Lambda 表达式新特性,与Scala的函数式编程语言就更加相似了。在 Scala 命令行中执行的好处是简单方便,可以快速得到结果,还可以看到返回的类型,如上面的1+1运算,可以看到返回的结果为Int类型,对于初学者比较友好,所以我们接下来主要是在命令行中执行。说明:上表列出的数据类型都是对象,Scala没有Java中的原生类型,在Scala是可以对数字等基础类型调用方法的。
2024-12-09 08:15:44
260
原创 Scala
下面是一个完整的例子,展示如何创建和使用一个简单的自定义注解,并通过它影响编译时的行为。请注意,在 Scala 中,注解可以直接应用于类、方法、字段等,而不需要像 Java 一样显式地指定目标元素的类型。此外,Scala 的注解支持多重应用,即可以同时应用多个相同或不同的注解。MyAnnotationMacro 定义了一个宏,该宏在注解被处理时会修改被注解的类或方法的行为。MyAnnotationApp 中创建了一个带有注解的类 AnnotatedClass,并输出了宏处理后的代码。
2024-12-09 08:14:39
89
原创 Scala
在窗口中找到并点击“高级系统设置”,点击“环境变量”,在下面的“系统环境变量”(不是用户环境变量)的方框下方查看是否有“变量名”输入“JAVA_HOME”,点击“确定”。在“系统环境变量”中找到“Path”这个环境变量,双击进入,点击右侧的“新建”,输入“%JAVA_HOME%\bin”,回车,点击“确定”,然后所有窗口都点“确定”。(3)在下面的“系统环境变量”的方框下方查看是否有“变量名”输入“SCALA_HOME”,选择Scala安装的根目录,点击“确定”,然后所有窗口都点“确定”。
2024-12-09 08:14:05
306
原创 Scala
Scala是一种多范式的编程语言,它将面向对象和函数式编程结合在一个简洁的高级语言中,Scala运行于Java平台(Java虚拟机),并兼容现有的Java程序。注意::: 操作符是右结合的,如9 :: 5 :: 2 :: Nil相当于 9 :: (5 :: (2 :: Nil))//在scala中每个表达式都有值,scala中有个Unit类,写做(),相当于Java中的void。//在scala中{}中课包含一系列表达式,块中最后一个表达式的值就是块的值。
2024-12-09 08:13:27
391
原创 Scala
所谓的不可变集合,指的是集合被创建好之后,长度不可变,且其中的元素也不能改变。如果对不可变集合中的元素进行增删操作,那么不会改变原集合,而是会产生一个新的集合。所谓的可变集合,指的是集合创建好之后,依然可以对元素进行增删操作,并且不会产生新集合,而是修改原集合。// Array类中提供了+:和:+的方式来对数组进行扩容,本质上都是产生一个新的数组。// :+ 在数组的末尾来新添元素,构成一个新的数组。// +: 在数组的头部来新添元素,构成一个新的数组。// 创建数组,数组的所有元素默认为10。
2024-12-09 08:12:43
399
原创 Scala
由于Scala是运行在JVM平台上的,所以安装Scala之前必须配置好JDK环境(JDK版本要求不低于1.5!原文链接:https://blog.youkuaiyun.com/weixin_51996831/article/details/123184569。JDK环境下载路径:https://www.oracle.com/java/technologies/downloads/安装完成后,需要进行环境变量的配置,右键我的电脑—属性—-高级系统设置就会看到下面的界面。一.Scala的下载与安装。
2024-12-09 08:11:28
229
原创 Scala
3)我们的scala里面变量的修饰符一共有两个,一个是var 一个是val,如果是var修饰的变量,那么这个变量的值是可以修改的。如果是val修饰的变量,那么这个变量的值是不可以修改的。scala类型转换遵循的基本原则和java中的一致 , 高精度的类型转换成低精度的时候有可能出现精度丢失问题,低精度的数据可以直接隐式的转换成高精度的数据。scala中的数据类型和java中数据类型最大的区别就是scala中的数据类型都是对象 , 也就是scala中没有原生的数据类型!
2024-12-09 08:10:45
419
原创 scala
先检查 Global Libraries 里面有没有 Scala SDK,如果没有点击 + 号添加,笔者这里在上面 3.2新建 Scala 项目时,IDEA默认添加了。这里 Scala 版本和 IDEA 版本有关系,笔者的IDEA版本是2018年的,不能使用Scala 3,笔者使用的是Scala 2.X 版本。选择项目 scala-maven-demo,点击 + 号添加 Scala SDK。在 main 目录下新建 scala 目录,用来存放 scala 代码。打开 Project Structure。
2024-12-09 08:10:04
394
原创 Scala
先检查 Global Libraries 里面有没有 Scala SDK,如果没有点击 + 号添加,笔者这里在上面 3.2新建 Scala 项目时,IDEA默认添加了。这里 Scala 版本和 IDEA 版本有关系,笔者的IDEA版本是2018年的,不能使用Scala 3,笔者使用的是Scala 2.X 版本。选择项目 scala-maven-demo,点击 + 号添加 Scala SDK。在 main 目录下新建 scala 目录,用来存放 scala 代码。打开 Project Structure。
2024-12-09 08:09:23
257
原创 Scala
在某些情况下,字符串的拼接不好用,比如JSON格式(JavaScript Object Notation),特殊标记的JavaScript对象。在 Scala 中,String 是一个不可变的字符串对象,所以该对象不可被修改。原文链接:https://blog.youkuaiyun.com/weixin_43923463/article/details/125666922。在 Scala 中,字符串的类型实际上就是 Java中的 String类,它本身是没有 String 类的。//TODO 字符串拼接。
2024-12-09 08:08:36
211
原创 scala
现在有很多不错的代码片段管理工具,比如 Mac 系统上的 Dash(https://kapeli.com/dash),它可以帮助我们一站式索引技术文档并管理代码片段,有了像 Dash 这样的工具,我们就可以将基于 Maven 的 Scala 项目配置文件整理成一个代码片段(Snippet)进行管理。然后在使用的时候直接在 Maven 的 pom.xml 中输入该代码片段的标志信息,mvn.scala.cfg`Dash 将会自动将我们配置的代码片段的内容展开并替换现有 pom.xml 的内容。
2024-12-09 08:07:57
202
原创 scala
这让Scala得以使用为Java1.4、5.0或者6.0编写的巨量的Java类库和框架,Scala会经常性地针对这几个版本的Java进行测试。Scala可以与Java互操作。你可以从Scala中调用所有的Java类库,也同样可以从Java应用程序中调用Scala的代码。Scala还包含了若干函数式语言的关键概念,包括高阶函数(Higher-Order Function)、柯里化(Currying)、嵌套函数(Nested Function)、序列解读(Sequence Comprehensions)等等。
2024-12-09 08:07:23
298
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人