- 博客(27)
- 资源 (13)
- 收藏
- 关注
原创 Spark2.3.2源码解析: 10. 调度系统 Task任务提交 (三) TaskScheduler : Executor 任务提交
架构图: 代码提交时序图Standalone模式提交运行流程图: 首先写一个WordCount代码(这个代码,为了观察多个stage操作,我写了两个reducebykey 函数)源代码: 直接执行代码,查看spark执行程序时,将代码划分stage生成的DAG流程图 可知: WordCount 在stage划分的时...
2018-12-29 17:03:59 7365
原创 Spark 本地化计算参数调整分析
Spark在Driver上,对Application的每一个stage的task,进行分配之前,都会计算出每个task要计算的是哪个分片数据,RDD的某个partition;Spark的task分配算法,优先,会希望每个task正好分配到它要计算的数据所在的节点,这样的话,就不用在网络间传输数据; 但是呢,通常来说,有时,事与愿违,可能task没有机会分配到它的数据所在的节点,为...
2018-12-28 22:10:24 6316
原创 Spark复杂情况下的stage划分 reduceByKey leftOuterJoin union
为了研究复杂情况下的stage划分,故意写了一段复杂一点的代码进行测试。 代码:import org.apache.spark.{SparkConf, SparkContext}object WordDemo { //spark-submit --name 'WordDemo' --class WordDemo --master yarn --num-executors ...
2018-12-28 10:48:23 5571
原创 Spark2.3.2源码解析: 10. 调度系统 Task任务提交 (二) TaskScheduler : 本地化计算
架构图: Standalone模式提交运行流程图: 首先写一个WordCount代码(这个代码,为了观察多个stage操作,我写了两个reducebykey 函数)源代码: 直接执行代码,查看spark执行程序时,将代码划分stage生成的DAG流程图 可知: WordCount 在stage划分的时候,划分为三个stage ...
2018-12-25 16:00:02 5818
原创 Spark2.3.2源码解析:9.调度系统 DAGScheduler 之 Stage 划分源码详解
Stage划分的时候,大家应该都知道是从最后一个stage向根据宽窄依赖,递归进行stage划分。但是代码里面涉及的逻辑复杂。毕竟涉及到相互递归调用。让人似懂非懂。 反正我是炸毛了 o(╥﹏╥)o本文专门用一篇文章详细论述DAGScheduler 的 stage 划分流程为了更容易理解,本文采用 debug模式+实例+源码的方式进行讲解首先写一个WordCount代码(这个代码,为...
2018-12-22 12:49:16 8734 2
原创 Spark2.3.2源码解析: 10. 调度系统 Task任务提交 (一) DAGScheduler 之 stage 提交
一个Spark Application分为stage级别和task级别的调度, task来源于stage,所有本文先从stage提交开始讲解task任务提交。 架构图:Standalone模式提交运行流程图:首先写一个WordCount代码(这个代码,为了观察多个suffle操作,我写了两个reducebykey 函数)源代码: 直接执行代码,查看...
2018-12-22 12:11:52 5919 1
原创 Spark2.3.2源码解析: 8. RDD 源码解析 (二) textFile 返回的RDD实例是什么
本文主要目标是分析RDD的实例对象,到底放了什么。从代码val textFile = sc.textFile(args(0)) 开始:直接看textFile 源码:你会发现调用的是hadoop的api,通过 hadoopFile 读取数据,返回一个hadoopRDD对象 hadoopRDD 返回的结果,其实就是1 val...
2018-12-21 16:13:40 5944
原创 Spark2.3.2源码解析: 7.3. SparkContext源码分析(二) :调度系统 DAGScheduler
简介: 本质上在Actions算子中通过SparkContext执行提交作业的runJob操作,触发了RDD DAG的执行。 所以本文从runJob方法进行解析 从而引出DAGScheduler、TaskScheduler 。。。。 代码部分: 提交流程图:调度流程: 源码解析: 直...
2018-12-20 17:35:34 6165 3
原创 Spark2.3.2源码解析: 8. RDD 源码解析 (一) RDD 类分析
全称: 弹性分布式数据集1)有一个分片列表,就是能被切分,和Hadoop一样,能够切分的数据才能并行计算。 一组分片(partition),即数据集的基本组成单位,对于RDD来说,每个分片都会被一个计算任务处理,并决定并行计算的粒度。用户可以在创建RDD时指定RDD的分片个数,如果没有指定,那么就会采用默认值。默认值就是程序所分配到的CPU Core的数目。每个分配的存储是由Bloc...
2018-12-19 18:40:45 5792
翻译 Spark配置参数详解
Spark提供三个位置用来配置系统:Spark属性:控制大部分的应用程序参数,可以用SparkConf对象或者Java系统属性设置 环境变量:可以通过每个节点的 conf/spark-env.sh脚本设置。例如IP地址、端口等信息 日志配置:可以通过log4j.properties配置Spark属性Spark属性控制大部分的应用程序设置,并且为每个应用程序分别配置它。这些属性可以直接...
2018-12-18 16:41:38 10030
原创 Spark2.3.2源码解析: 4.2.Yarn cluster 模式 SparkSubmit源码分析(二)ApplicationMaster
准备工作:启动脚本 --name spark-test --class WordCount --master yarn --deploy-mode cluster /A/spark-test/spark-test.jar /tmp/zl/data/data.txt 执行jar包 spark-test.jar 代码 核心: val c...
2018-12-18 14:36:12 9667
翻译 在YARN上运行Spark API
启动命令格式:$ ./bin/spark-submit --class path.to.your.Class --master yarn --deploy-mode cluster [options] <app jar> [app options]实例:$ ./bin/spark-submit --class org.apache.spark.exam...
2018-12-18 11:39:55 7792
原创 Spark2.3.2源码解析: 7.2. SparkContext源码分析(二) :TaskSchedulerImpl
代码部分: 启动脚本 --name spark-test --class WordCount --master yarn --deploy-mode cluster /A/spark-test.jar /mysqlClean.sql 执行jar包 spark-test.jar 代码 核心: // 创建SparkCo...
2018-12-12 17:47:33 6211
翻译 Spark基础知识详解
Apache Spark是一种快速通用的集群计算系统。 它提供Java,Scala,Python和R中的高级API,以及支持通用执行图的优化引擎。 它还支持一组丰富的高级工具,包括用于SQL和结构化数据处理的Spark SQL,用于机器学习的MLlib,用于图形处理的GraphX和Spark Streaming。Spark优点:减少磁盘I/O:随着实时大数据应用越来越多...
2018-12-12 17:45:38 13891 3
原创 Spark2.3.2源码解析: 7.1. SparkContext源码分析(一) : SparkEnv
SparkContext 是通往 Spark 集群的唯一入口,可以用来在 Spark 集群中创建 RDDs 、 累加器( Accumulators )和广播变量( Broadcast Variables ) 。 SparkContext 也是整个 Spark 应用程序( Application ) 中 至关重要的一个对象,可以说是整个 Application 运行调度的核心 (不是指资源调...
2018-12-12 15:19:42 5925
原创 Spark2.3.2源码解析: 6. RDD 依赖关系:宽依赖与窄依赖
Spark中RDD的高效与DAG(有向无环图)有很大的关系,在DAG调度中需要对计算的过程划分Stage,划分的依据就是RDD之间的依赖关系。RDD之间的依赖关系分为两种,宽依赖(wide dependency/shuffle dependency)和窄依赖(narrow dependency) 1.窄依赖窄依赖就是指父RDD的每个分区只被一个子RDD分区使用,子RDD分区通常...
2018-12-12 11:27:01 6115
原创 Spark2.3.2源码解析: 5. SparkConf源码分析
在执行代码的时候,首先要声明:SparkConf,本文以SparkConf进行分析,逐步展开。 val conf = new SparkConf() 类中的方法(org.apache.spark.SparkConf)Modifier and Type Method and Description SparkConf clone()...
2018-12-11 16:43:57 6368
翻译 Spark2.1 内存管理详解
本文中阐述的原理基于 Spark 2.1 版本,阅读本文需要读者有一定的 Spark 和 Java 基础,了解 RDD、Shuffle、JVM 等相关概念。在执行 Spark 的应用程序时,Spark 集群会启动 Driver 和 Executor 两种 JVM 进程,前者为主控进程,负责创建 Spark 上下文,提交 Spark 作业(Job),并将作业转化为计算任务(Task),在各...
2018-12-11 14:16:23 6712 1
翻译 Spark弹性分布式数据集RDD:基于内存集群计算的容错抽象
摘要 我们提出的弹性分布式数据集(RDDs),是一个让程序员在大型集群上以容错的方式执行基于内存计算的分布式内存抽象。RDDs受启发于两类使用当前计算框架处理不高效的应用:迭代算法和交互式数据挖掘工具。这二者在内存中保存数据性能能够提高一个数量级。为了有效容错,RDDs提供一种受限的共享内存,基于粗粒度转换(transformations)而非细粒度地更新共享状态。尽管如此,RDD...
2018-12-11 10:00:10 6602
原创 Spark2.3.2源码解析: 4.1.Yarn cluster 模式 SparkSubmit源码分析(一)
因为所有的任务提交代表都是从SparkSubmit开始,所以先从开始看源码,但是这个估计会有点复杂,先通读一下。 准备工作:启动脚本 --name spark-test --class WordCount --master yarn --deploy-mode cluster /A/spark-test/spark-test.jar /tmp/zl/data/data.txt...
2018-12-07 23:56:45 9675 2
原创 Phoenix4.7 操作手册
Phoenix操作手册 Phoenix简介Phoenix最早是saleforce的一个开源项目,后来成为Apache基金的顶级项目。Phoenix是构建在HBase上的一个SQL层,能让我们用标准的JDBC APIs而不是HBase客户端APIs来创建表,插入数据和对HBase数据进行查询。put the SQL back in NoSQLPhoenix完全使用Jav...
2018-12-07 10:29:17 7504 1
原创 更改CentOS7默认yum源为阿里云
1、首先备份系统自带yum源配置文件/etc/yum.repos.d/CentOS-Base.repo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 2、下载ailiyun的yum源配置文件到/etc/yum.repos.d/ wget...
2018-12-07 10:06:13 5462
原创 Mysql5.7 ,Linux 环境安装
Mysql5.7 ,Linux 环境安装1、下载mysql-5.7.8-rc-linux-glibc2.5-x86_64.tar.gz链接:https://pan.baidu.com/s/1z4z8g6hzJWtNSqX96HxR8Q 提取码:mkp8 2、解压安装包:进入安装包所在目录,执行命令:tar -xzvf mysql-5.7.8-rc-linux-glibc2.5-...
2018-12-07 09:53:59 5366
原创 Spark2.3.2源码解析: 3.启动worker节点启动流程源码分析
本文启动worker节点启动流程分析 启动命令:${SPARK_HOME}/sbin/start-slave.sh spark://sysadmindeMacBook-Pro.local:7077 查看start-slave.sh 执行脚本:/workspace/spark-2.3.2/sbin/spark-daemon.sh start org.apache....
2018-12-06 15:20:50 6117
原创 Spark2.3.2源码解析: 2.启动master节点流程源码分析
本文主要说明在启动master节点的时候,代码的流程走向。 授予文件执行权限chmod755 两个目录里的文件:/workspace/spark-2.3.2/bin --所有文件/workspace/spark-2.3.2/sbin 启动脚本:start-master.sh 脚本最终执行的是:"${SPARK_HOME}/sbin"/spark-da...
2018-12-05 23:34:00 6588 2
原创 Spark2.3.2源码分析:1.代码阅读环境准备
准备工作(仅针对于mac环境) ‘版本 软件 版本 操作系统 MAC Jdk 1.8 Maven 3.3.9+ Scala 2.10.6 Spark ...
2018-12-05 16:49:41 6472 7
原创 MAVEN编译报错: 警告: [options] 未与 -source 1.7 一起设置引导类路径
异常:ERROR] 警告: [options] 未与 -source 1.7 一起设置引导类路径 [ERROR] /workspace/spark-2.2.2/common/network-common/src/main/java/org/apache/spark/network/client/TransportClient.java:144: 错误: -source 1.7 中不...
2018-12-04 18:09:18 35439
jdk-8u251-macosx/linux/windows 多版本下载
2020-06-28
Flink基础教程.pdf
2019-05-28
深入理解计算机系统(原书第3版)PDF 计算机科学丛书 [美] 兰德尔 E.布莱恩特
2019-03-08
Java虚拟机规范(Java SE 8版) 带书签
2018-10-26
Thinking in UML(2 edition)
2014-06-24
《谁说菜鸟不会数据分析》入门篇-简版电子书
2014-06-24
[逻辑思维训练500题II].于雷.扫描版
2014-06-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人