
Spark
文章平均质量分 67
超新星X
大丈夫抱经世之才,岂可空老于林泉之下
展开
-
【Spark】源码分析之spark-submit
在客户端执行脚本sbin/spark-submit的时候,通过cat命令查看源码可以看出,实际上在源码中将会执行bin/spark-class org.apache.spark.deploy.SparkSubmit 。在IDEA导入的Spark-Core的源码进行分析。首先Spark会把初始化的参数使用SparkSubmitArguments进行封装,之后对SparkSubmitAction类型进...原创 2018-06-12 20:13:31 · 846 阅读 · 4 评论 -
【Spark】算子
1. mapWith mapWith(i => i*10)((a,b) => b+2)(拿到分区号)(a是每次取到的RDD中的元素,b接收i*10的结果) 2. flatMapWith类似mapWith,区别在于flatMapWith返回的是一个序列3. mapPartitions每次取到的是分区号val rdd1 = sc.parallelize(Array(1,2,3,4,5,6...原创 2018-06-02 11:59:26 · 491 阅读 · 0 评论 -
【Spark】源码分析之SparkContext
一、概述SaprkContext非常重要,是Spark提交任务到集群的入口SparkContext中没有main方法,在SparkContext主构造器中,主要做一下四件事情:1. 调用createSparkEnv()创建SparkEnv,SparkEnv中能够得到ActorSystem对象,用于创建Actor2. 创建TaskSchedule(用于创建Task),对任务提交的url进行模式匹配,...原创 2018-06-12 21:11:45 · 382 阅读 · 0 评论 -
【Spark】源码分析之RDD的生成及stage的切分
一、概述整体的逻辑:RDD的生成从saveAsTextFile()方法入手。saveAsTextFile() --> saveAsHadoopFile() --> 封装hadoopConf,并传入saveAsHadoopDataset()方法 --> 拿到写出流SaprkHadoopWriter,调用self.context.runJob(self,writeToFile) --...原创 2018-06-13 10:07:58 · 573 阅读 · 0 评论 -
【Spark】Spark2.x版的新特性
一、API 1. 出现新的上下文接口:SparkSession,统一了SQLContext和HiveContext,并且为SparkSession开发了新的流式调用的configuration API 2. 统一了DataFrame和DataSet。DataFrame相当于DataSet[Row],以及DataSet的增强聚合API 3. 增强了累加器accumulator的功能...原创 2018-06-14 19:33:14 · 2061 阅读 · 0 评论 -
【Spark】Spark性能优化之Whole-stage code generation
一、技术背景 Spark1.x版本中执行SQL语句,使用的是一种最经典,最流行的查询求职策略,该策略主要基于 Volcano Iterator Model(火山迭代模型)。一个查询会包含多个Operator,每个Operator都会实现一个接口,提供一个next()方法,该方法返回Operator Tree的下一个Operator,能够让查询引擎组装任意Operator,而不需要去考虑每个O...原创 2018-06-15 14:05:09 · 5140 阅读 · 0 评论 -
【Spark】Spark核心之弹性分布式数据集RDD
1. RDD概述 1.1 什么是RDD (1) RDD(Resilient Distributed Dataset)弹性分布式数据集,它是Spark的基本数据抽象,它代表一个不可变、可分区、里面的元素可并行计算的集合。 (2) 具有数据流模型的特点:自动容错、位置感知性调度、可伸缩性。 (3) 查询速度快:在执行多个查询时,可以显示的将工作集缓存到内存中,后续的查询能够重用缓存的...原创 2018-06-15 18:20:32 · 1285 阅读 · 0 评论 -
【Spark】编程实战之模拟SparkRPC原理实现自定义RPC
1. 什么是RPC RPC(Remote Procedure Call)远程过程调用。在Hadoop和Spark中都使用了PRC,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。简单来说,就是有A、B两台机器,A机器可以调用B机器上的程序。2. Spark 的RPC Master和Worker的启动流程: (1) 启动Master,会启动一个定时...原创 2018-06-15 21:06:05 · 403 阅读 · 0 评论