摘要:
1. 任务概述 任务提交与执行过程: 1) build operator DAG:此阶段主要完成RDD的转换及DAG的构建; 2) split graph into stages of tasks:此阶段主要完成finalStage的创建与Stage的划分,做好Stage与Task的准备工作后,最后 阅读全文
摘要:
8.初始化管理器BlockManager 无论是Spark的初始化阶段还是任务提交、执行阶段,始终离不开存储体系。Spark为了避免Hadoop读写磁盘的I/O操作成为性能瓶颈,优先将配置信息、计算结果等数据存入内存,这极大地提升了系统的执行效率。正是因为这一关键决策,才让Spark能在大数据应用中 阅读全文
摘要:
1.前期准备 1.1系统和yum源镜像准备 需要的条件: ① 至少三台刚装上Centos7.0系统的物理机或者虚拟机; ② CentOS-7.0-x86_64-bin-DVD1.iso镜像,用于制作本地yum源; 注意:本文三台物理机或虚拟机的操作系统镜像是CentOS-7-x86_64-Minim 阅读全文
摘要:
12. Spark环境更新 在SparkContext的初始化过程中,可能对其环境造成影响,所以需要更新环境,代码如下: SparkContext初始化过程中,如果设置了spark.jars属性,spark.jars指定的jar包将由addJar方法加入httpFileServer的jarDir变量 阅读全文
摘要:
9. 启动测量系统MetricsSystem MetricsSystem使用codahale提供的第三方测量仓库Metrics。MetricsSystem中有三个概念: Instance:指定了谁在使用测量系统; Source:指定了从哪里收集测量数据; Sink:指定了从哪里输出测量数据; Spa 阅读全文
摘要:
4. Hadoop相关配置及Executor环境变量的设置 4.1 Hadoop相关配置信息 默认情况下,Spark使用HDFS作为分布式文件系统,所以需要获取Hadoop相关配置信息的代码如下: 获取的配置信息包括: 将Amazon S3文件系统的AccessKeyId和SecretAccessK 阅读全文
摘要:
5. 创建任务调度器TaskScheduler TaskScheduler也是SparkContext的重要组成部分,负责任务的提交,并且请求集群管理器对任务调度。TaskScheduler也可以看作任务调度的客户端。创建TaskScheduler的代码如下: createTaskScheduler 阅读全文
摘要:
6.创建和启动DAGScheduler DAGScheduler主要用于在任务正式交给TaskSchedulerImpl提交之前做一些准备工作,包括:创建Job,将DAG中的RDD划分到不同的Stage,提交Stage,等等。创建DAGScheduler的代码如下: DAGScheduler的数据结 阅读全文
摘要:
7. TaskScheduler的启动 第五节介绍了TaskScheduler的创建,要想TaskScheduler发挥作用,必须要启动它,代码: TaskScheduler在启动的时候,实际调用了backend的start方法,即同时启动了backend。local模式下,这里的backend是l 阅读全文
摘要:
2. 创建执行环境SparkEnv SparkEnv是Spark的执行环境对象,其中包括众多与Executor执行相关的对象。由于在local模式下Driver会创建Executor,local-cluster部署模式或者Standalone部署模式下Worker另起的CoarseGrainedEx 阅读全文