摘要:
spark内存按用途分为两大类:execution memory和storage memory。其中execution memory是spark任务用来进行shuffle,join,sort,aggregation等运算所使用的内存;storage memory是用来缓存和传播集群数据所使用的内存。 阅读全文
摘要:
checkpoint checkpoint(检查点)是Spark为了避免长链路,大计算量的Rdd不可用时,需要长时间恢复而引入的。主要就是将通过大量计算而获得的这类Rdd的数据直接持久化到外部可靠的存储体系中(一般为hdfs文件)。在以后再需要从这个Rdd获取数据时,直接从检查点获取数据从而避免了从 阅读全文
摘要:
触发Spark scheduler的入口是调用者代码中的action操作,如groupByKey,first,take,foreach等操作。这些action操作最终会调用SparkContext.runJob方法,进而调用DAGScheduler.runJob方法,从而被spark所调度使用。 用 阅读全文
摘要:
spark shuffle模块与hadoop的map-reduce模块功能类似,都是为了完成数据的洗牌,即要为每个分区的数据改变分区规则,重新分配分区。常见在诸如groupByKey,reduceByKey,repartition,join等操作都会触发shuffle过程。Spark的stage也是 阅读全文
摘要:
作为分布式应用,Spark的数据存储在不同机器上。这就涉及到数据的传输,元数据的管理等内容。而且由于Spark可以利用内存和磁盘作为存储介质,这还涉及到了内存和磁盘的数据管理。 Spark存储体系架构 Spark存储(主要由BlockManager来完成)主要完成了写入数据块,如果需要备份数据块,则 阅读全文
摘要:
在Spark中,对于网络调用的底层封装(粘包拆包,编解码,链路管理等)都是在common/network-common包中实现的(详见【common/network-common】)。在common/network-common包分析的时候我们提到了,来自网络的消息最终是通过调用上层代码的RpcHa 阅读全文
摘要:
由于gitbook网速不好,所以复制自https://zx150842.gitbooks.io/spark-1-6-1-source-code/content/,非原创,纯属搬运工,若作者要求,可删除。 这本书主要用来记录学习spark 1.6.1源码,希望通过阅读本书,对spark主要功能模块以及 阅读全文
摘要:
概述 Spark底层使用netty作为节点间通信的桥梁。其实现在common/network-common包中。common/network-common包主要是对netty进行了一层封装,主要是定义了一套消息格式,粘包拆包,链路生命周期对应方法实现等功能。我们首先来看一下network-commo 阅读全文
摘要:
1. 配置运行参数: Menu -> Run -> Edit Configurations -> 选择 + -> Application -Dspark.master=local 参数配置如下: VM options: -Dspark.master=local代表使用本地模式运行Spark代码,也可 阅读全文
摘要:
在springboot 1.5.9版本 阅读全文