- 博客(13)
- 收藏
- 关注
原创 【Spark】 Spark为啥更高效?
一 Spark为啥比Hadoop MapReduce有更快的执行速度? 1)RDD的编程模型更简单。 MapReduce编程模型是面向过程编程,RDD编程模型是面向对象(RDD)编程。 2)DAG切分的多阶段计算过程更快速。 MapReduce简单粗暴的根据shuffle将大数据计算分成Map和Reduce两个阶段。 Spark会更细腻一点,将前一个Reduce和后一个Map连接起来,当做一个阶段持续计算,形成一个更加优雅、高效的计算模型。这种多个计算阶段依赖的方案可以有效减少对HDFS的访问,减少作业的调
2021-08-30 11:08:14
505
原创 【Spark】配置项调优
配置项可以分为三大类:硬件资源类、Shuffle类和Spark SQL类。 一 硬件资源类 1.1 cpu相关配置 主要是配置 并行度 和 并行计算任务。 1.1.1 并行度 并行度,是从数据触达,明确数据划分的粒度,确定分布式数据集被划分为多少份。 1.1.2 并行计算任务 并行计算任务,是从计算任务、CPU出发,指的是任一时刻整个集群能够同时计算的任务数量。 1.2 内存相关配置 1.2.1 堆内存储与堆外存储的平衡 堆外内存的传递门:**** 总之,与JVM堆内内存相比,堆外内存的优势是:可以更精确的
2021-08-23 21:34:33
557
原创 【Spark】Shuffle机制
一 Shuffle机制 运行在不同stage、不同节点上的task如何进行数据传递?这个数据传递过程通常被称为Shuffle机制。 该机制除了数据传递,还负进行各种类型的计算(如聚合、排序等),并且数据量一般会很大。 二 Shuffle面临的一些问题 2.1 map()端数据分区问题 如何确认数据分区个数? 用户可以自定义分区个数。 用户没定义的话,默认分个数是parent RDD的分区个数的最大值。 如何对map()端的输出数据进行分区? map task输出的每个<K,V>记录,都根据Key
2021-08-22 20:55:32
299
原创 【大数据之路】第5章 实时技术
5.1 简介 为什么要有实时数据? 以便实时监控当前业务状态并作出运营决策,引导业务往好的方向发展 什么是流式数据处理? 流式数据处理技术是指业务系统每产生一条数据,就会立刻被采集并实时发送到流式任务中进行处理,不需要定时调度任务来处理数据 流式数据处理的特征 ...
2021-04-12 08:21:07
239
原创 【英语学习】01-02 interview
面试中谈起以往经验可以多举例子,常用语: a good example that comes to my mind is …… ex:A good example that comes to my mind is when I was involved with a campaign to promote and sell a new range of clothes. I loved doing it and it was…… 谈团队合作 Could you give me an example of g
2021-03-28 16:15:48
293
原创 【Scala】学习笔记六——读取外部数据
1.读取文件及网络数据 object ReadFileApp extends App { val file=scala.io.Source.fromFile("E:\\data\\hello.txt") //读取指定文件 //一行一行读取文件 def readLine: Unit ={ for(line&lt;-file.getLines()){ print...
2018-11-08 16:20:20
611
原创 【Scala】学习笔记五——隐式转换
隐式转换:为一个已经存在的东西,添加一个功能需求(比如:为一个已经存在的类添加一个新的方法) 满足上述需求,Java使用的是动态管理,Scala使用的是隐式转换 一个例子: //定义了两个类Man和Superman,现在的需求是Man的对象也可以拥有fly()方法 object ImplicitApp extends App { val man=new Man("Nina") //定义隐...
2018-11-08 16:02:30
150
原创 【Scala】学习笔记四——模式匹配 match
一、最基本的模式匹配 例子: //格式为: //变量 match{ // case value1=>代码 // case value2=>代码 // …… // case _=>代码 //} def judgeGrade(grade:String): Unit ={ grade match{ case "A"=>println("E...
2018-11-05 19:11:59
428
原创 【Scala】学习笔记三——面向对象
一、面向对象的概 (Object Oriented——OO) 1.封装:将属性、方法封装到类中 2.继承:父类和子类之间的关系 3.==多态:==父类引用指向子类对象 多态是面向对象编程的精髓所在,是开发框架的基础 二、类的定义和使用 //main方法 def main(args: Array[String]): Unit = { val person=new Person() ...
2018-11-04 11:04:55
213
原创 【Spark】学习笔记二——RDDs
一、一些对象 1.Driver Program:包含程序的main()方法,RDDs的定义和操作,它管理很多节点,我们称之为executors 2.SparkContext:Driver Program通过SparkContext对象访问Spark,SparkContext对象代表和一个集群的连接 3.在shell中SparkContext对象自动创建好了,就是sc,可以在shell中直接使用sc...
2018-10-26 15:57:39
534
原创 【Spark】学习笔记
Spark是一个快速且通用的集群计算框架 一、Spark的特点 1.Spark是快速的: Spark扩充了流行的MapReduce计算框架 Spark是基于内存的计算 2.Spark是通用的: Spark的涉及容纳了其他分布式系统拥有的功能:批处理、迭代式计算、交互查询和流处理等 其优势是:降低了维护的成本 3.Spark是高度开放的: Spark提供了Python、Java、Scala、SQL的...
2018-10-26 14:45:47
505
原创 【scala】学习笔记二——集合
一、List 1.List[T]:T是泛型,指的是list中的类型,scala会自行推导,因此可以不指明T 2.List的声明与定义: scala&amp;amp;amp;amp;gt; val a=List(1,2,3,4) a: List[Int] = List(1, 2, 3, 4) 3.连接操作符 1):: scala&amp;amp;amp;amp;gt; val b=0::a //把0插在了a前面形成了b b: List[Int] = Li...
2018-10-23 20:24:45
223
原创 【scala】学习笔记一
[scala]学习笔记一 一、scala的特点: 1.Scalable编程语言 (可伸缩的,既可以是脚本语言,又可以为大型服务器所使用) 2.纯正的面向对象的语言 3.函数式语言 4.无缝的Java互操作 二、scala函数式的编程思想: 1.纯函数,不具有副作用 2.引用透明 3.函数是一等公民:一切都是计算,函数式编程中只有表达式和变量!函数也是表达式 三、变量 1.val:定义常量(immu...
2018-10-22 22:16:22
197
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人