随笔分类 -  Spark

摘要:资源参数调优 了解完了Spark作业运行的基本原理之后,对资源相关的参数就容易理解了。所谓的Spark资源参数调优,其实主要就是对Spark运行过程中各个使用资源的地方,通过调节各种参数,来优化资源使用的效率,从而提升Spark作业的执行性能。以下参数就是Spark中主要的资源参数,每个参数都对应着 阅读全文
posted @ 2019-11-29 18:12 花未全开*月未圆 阅读(239) 评论(0) 推荐(0)
摘要:Spark SQL中的Catalyst 的工作机制 答:不管是SQL、Hive SQL还是DataFrame、Dataset触发Action Job的时候,都会经过解析变成unresolved的逻辑执行计划,然后利用元数据信息对unresolved的逻辑执行计算进行分析,得到逻辑执行计划,然后对逻辑 阅读全文
posted @ 2019-11-29 17:46 花未全开*月未圆 阅读(498) 评论(0) 推荐(0)
摘要:Spark中的延迟调度 Spark的Task的调度过程有五个本地性级别:PROCESS_NODE、NODE_LOCAL、NO_PREF、RACK_LOCAL、ANY。在理想的状态下,我们肯定是想所有的Task的调度都是PROCESS_NODE级别的,这样的话所有的Task都是在数据所在的机器上进行计 阅读全文
posted @ 2019-11-29 17:11 花未全开*月未圆 阅读(538) 评论(0) 推荐(0)
摘要:在使用spark-submit提交一个Spark应用之后,Driver程序会向集群申请一定的资源来启动东若干个Executors用来计算,当这些Executors启动后,它们会向Driver端的SchedulerBackend进行注册,告诉Driver端整个每一个Executor的资源情况。 那么在 阅读全文
posted @ 2019-11-29 17:09 花未全开*月未圆 阅读(757) 评论(1) 推荐(0)
摘要:一言以蔽之: 累加器就是只写变量 通常就是做事件统计用的 因为rdd是在不同的excutor去执行的 你在不同excutor中累加的结果 没办法汇总到一起 这个时候就需要累加器来帮忙完成 广播变量是只读变量 正常的话我们在driver定义一个变量 需要序列化 才能在excutor端使用 而且是每个t 阅读全文
posted @ 2019-11-29 17:06 花未全开*月未圆 阅读(276) 评论(0) 推荐(0)
摘要:面试题引出: 简述Spark的宽窄依赖,以及Spark如何划分stage,每个stage又根据什么决定task个数? Stage:根据RDD之间的依赖关系的不同将Job划分成不同的Stage,遇到一个宽依赖则划分一个Stage。 Task:Stage是一个TaskSet,将Stage根据分区数划分成 阅读全文
posted @ 2019-10-20 20:18 花未全开*月未圆 阅读(1808) 评论(0) 推荐(0)
摘要:一、分区的概念 分区是RDD内部并行计算的一个计算单元,RDD的数据集在逻辑上被划分为多个分片,每一个分片称为分区,分区的格式决定了并行计算的粒度,而每个分区的数值计算都是在一个任务中进行的,因此任务的个数,也是由RDD(准确来说是作业最后一个RDD)的分区数决定。 二、为什么要进行分区 数据分区, 阅读全文
posted @ 2019-09-08 23:40 花未全开*月未圆 阅读(277) 评论(0) 推荐(0)
摘要:一、RDD的概述 1.1 什么是RDD? RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数据抽象,它代表一个不可变、可分区、里面的元素可并行计算的集合。RDD具有数据流模型的特点:自动容错、位置感知性调度和可伸缩性。RDD允许用户在执 阅读全文
posted @ 2019-09-08 23:25 花未全开*月未圆 阅读(294) 评论(0) 推荐(0)