随笔分类 - Spark
Spark相关技术
摘要:Windows平台下IDEA+Spark本地开发环境搭建过程 1.安装Java,配置Java环境变量 2.安装Scala,配置Scala环境变量 3.安装Maven,配置Maven环境变量 4.IDEA下载与配置 5.在IDEA启动之前,安装scala插件(Configure->Plugins) 6
阅读全文
摘要:SparkSubmit -- main -- doSubmit // 解析参数 -- parseArguments // master => --master => yarn // mainClass => --class => SparkPi(WordCount) -- parse -- subm
阅读全文
摘要:
阅读全文
摘要:累加器用来把Executor端变量信息聚合到Driver端。在Driver程序中定义的变量,在Executor端的每个Task都会得到这个变量的一份新的副本,每个task更新这些副本的值后,传回Driver端进行merge。
阅读全文
摘要: 
阅读全文
摘要:Spark目前支持Hash分区和Range分区,和用户自定义分区。Hash分区为当前的默认分区。分区器直接决定了RDD中分区的个数、RDD中每条数据经过Shuffle后进入哪个分区,进而决定了Reduce的个数。
阅读全文
摘要:所谓的检查点其实就是通过将RDD中间结果写入磁盘 由于血缘依赖过长会造成容错成本过高,这样就不如在中间阶段做检查点容错,如果检查点之后有节点出现问题,可以从检查点开始重做血缘,减少了开销。 对RDD进行checkpoint操作并不会马上被执行,必须执行Action操作才能触发。 缓存和检查点区别
阅读全文
摘要:1、RDD Cache缓存 RDD通过Cache或者Persist方法将前面的计算结果缓存,默认情况下会把数据以缓存在JVM的堆内存中。但是并不是这两个方法被调用时立即缓存,而是触发后面的action算子时,该RDD将会被缓存在计算节点的内存中,并供后面重用。 缓存有可能丢失,或者存储于内存的数据由
阅读全文
摘要:RDD任务切分中间分为:Application、Job、Stage和Task Application:初始化一个SparkContext即生成一个Application; Job:一个Action算子就会生成一个Job; Stage:Stage等于宽依赖(ShuffleDependency)的
阅读全文
摘要: 
阅读全文
摘要:这里所谓的依赖关系,其实就是两个相邻RDD之间的关系 1、窄依赖表示每一个父(上游)RDD的Partition最多被子(下游)RDD的一个Partition使用,窄依赖我们形象的比喻为独生子女。 2、宽依赖表示同一个父(上游)RDD的Partition被多个子(下游)RDD的Partition依赖,
阅读全文
摘要:1.RDD只支持粗粒度转换,即在大量记录上执行的单个操作。将创建RDD的一系列Lineage(血统)记录下来,以便恢复丢失的分区。RDD的Lineage会记录RDD的元数据信息和转换行为,当该RDD的部分分区数据丢失时,它可以根据这些信息来重新运算和恢复丢失的数据分区。
阅读全文
摘要:1.从计算的角度, 算子以外的代码都是在Driver端执行, 算子里面的代码都是在Executor端执行。那么在scala的函数式编程中,就会导致算子内经常会用到算子外的数据,这样就形成了闭包的效果,如果使用的算子外的数据无法序列化,就意味着无法传值给Executor端执行,就会发生错误,所以需要在
阅读全文
摘要:本文内容:Spark配置、RPC框架、事件总线、度量系统 一.Spark配置: 1)系统属性中的配置 2)使用SparkConf配置的API 3)克隆SparkConf配置 二.Spark内置的RPC框架 1)RPC配置TransportConf 2)RPC客户端工厂TransportClientF
阅读全文
摘要:Spark学习 -本系列学习书籍《Spark内核设计的艺术:架构设计与实现》--耿嘉安 一.本文内容:概括性讲述Spark的设计理念和基本架构 二.Spark设计理念 1.Spark包含很多子模块,理解这些模块有助于我们掌握Spark的设计思想。Spark的模块按照重要程度可分为核心功能和扩展功能。
阅读全文
摘要:一.本文记录内容:使用Mac,对spark源码进行编译 二.前期准备:Java8、Scala2.12.11、Maven3.6.3安装配置完成;Spark3.0.0源码已下载 三.编译步骤: 1.修改源码中的./dev/make-distribution.sh 文件: 1)修改MVN="$MAVEN_
阅读全文