![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
spark
情深不仅李义山
路漫漫其修远兮,吾将上下而求索.
展开
-
Spark集群架构
文章目录Spark架构Spark执行任务流程Spark运行环境Spark on YARNSpark StandaloneSpark架构Spark可以运行在YARN上也可以运行Mesos上,无论运行在哪个集群管理架构上,Spark都是以主从架构运行程序。主节点会运行Driver进程,该进程会调用Spark程序的main方法,启动SparkContext;Executor就是从节点的进程,该进程负责执行Driver分发的具体的task;Work负责启动和管理这些Exector,一个Worker可以有多个Ex原创 2020-10-26 16:01:32 · 488 阅读 · 1 评论 -
SparkSQL概述
文章目录什么是SparkSQL什么是DataFrame什么是DataSetRDD,DataFrame和DataSet之间的关系什么是SparkSQLSpark SQL是Spark用来处理结构化数据的一个模块,它提供了2个编程抽象:DataFrame和DataSet,并且作为分布式SQL查询引擎的作用。Hive是将Hive SQL转换成MapReduce然后提交到集群上执行,大大简化了编写Map...原创 2020-04-25 20:32:58 · 297 阅读 · 0 评论 -
spark累加器
spark中有三大数据结构,它们分别是RDD(弹性分布式数据集)、累加器(分布式只写变量)和广播变量(分布式只读变量)。spark累加器就是定义在驱动程序的一个变量,但是在集群中的每一个任务都会有一份新的副本。在各个任务中更新副本的值都不会对驱动程序中的值产生影响,只有到最后所有的任务都计算完成后才会合并每一个任务的副本到驱动程序。累加器的提示如下:spark有系统累加器,同时也支持自定义累加...原创 2020-04-22 15:28:36 · 1766 阅读 · 0 评论 -
RDD缓存和CheckPoint
RDD缓存RDD的缓存是把RDD保存在内存中,为后续重用提供数据支持。RDD的缓存可以提高系统的容错性。RDD的缓存提供了两种方法。分别是persist方法和cache方法,那么这两个方法有什么区别呢?通过查看源码发现,cache方法最终也是调用persist方法:cache调用的是persist默认参数的方法,所以cache和不带参数的persist方法都是使用StorageLevel.M...原创 2020-04-22 00:08:11 · 236 阅读 · 0 评论 -
RDD的任务划分
RDD任务切分中间分为:Application、Job、Stage和Task。Application->Job->Stage-> Task每一层都是1对n的关系。1)Application:初始化一个SparkContext即生成一个Application一般一个spark程序就是一个任务。2)Job:一个Action算子就会生成一个Job,一个spark程序会有多个行动Ac...原创 2020-04-21 20:39:42 · 396 阅读 · 0 评论 -
RDD的依赖关系
文章目录Lineage(血统)窄依赖宽依赖DAG(有向无环图)Lineage(血统)在spark中,数据的处理和计算都是通过RDD的转换进行的。由于RDD是不可变的,在转换的过程中就会生成新的RDD。而这些RDD的顺序就形成了类似血缘的关系,新的RDD会依赖于旧的RDD。spark会将这一血缘关系记录下来,这样就能提高容错性能,当集群中有节点宕机后造成RDD部分数据丢失,就可以根据这个Line...原创 2020-04-21 18:21:19 · 794 阅读 · 0 评论 -
RDD中的函数和属性传递
在spark中,RDD的创建和初始化是在Driver中执行的,而实际操作是在Executor中进行。如果要涉及到传递一些方法或者属性的时候,那么就要序列化之后才能进行传递。下面用两个例子来进行说明:函数的传递先看代码:object SerializableTest { def main(args: Array[String]): Unit = { val conf...原创 2020-04-21 17:33:56 · 193 阅读 · 0 评论 -
RDD编程之RDD的创建
RDD创建在Spark中创建RDD的创建方式可以分为三种:从集合中创建RDD;从外部存储创建RDD;从其他RDD创建。创建RDD之前要先创建spark上下文对象:val conf = new SparkConf().setMaster("local").setAppName("WorldCount")val sc = new SparkContent(conf)(1)从内存中创建...原创 2020-04-08 23:19:07 · 557 阅读 · 0 评论 -
Spark Hello World以及RDD简述
RDD是什么RDD英文单词全称为Resilient Distributed Datase,叫做弹性分布式数据集,是Spark中最基本的数据抽象。代码中是一个抽象类,它代表一个不可变、可分区、里面的元素可并行计算的集合。不可变、可分区和可并行计算下面再详细叙述。RDD特点(1)分区spark可以把读进来的数据装进RDD里面,因为spark支持集群方式部署的,spark的Driver会把RD...原创 2020-04-08 00:00:16 · 333 阅读 · 0 评论 -
Spark on YARN任务提交流程
Spark on YARN是spark运行在yarn上,其中有yarn-client和yarn-cluster两种模式,它们的区别在于Driver运行的结点位置。yarn-client模式yarn-client模式下的spark的Driver运行在客户端,适用于交互、调试,希望立即看到app的输出。yarn-cluster模式yarn-cluster模式下的spark的Driver运行在...原创 2020-04-03 21:57:08 · 2526 阅读 · 0 评论