8 HaiwiSong

尚未进行身份认证

我要认证

一切只为让自己变得更优秀!

等级
TA的排名 1w+

Spark源码分析之调度框架详解

文章目录原理概述源码分析Job提交Stage划分Task提交Executor端运行TaskSpark的调度框架分为资源调度和任务调度。Spark的资源调度是基于Yarn实现的,包含Driver和Executor资源的申请等,详细过程见博文 Spark源码分析之AM端运行流程(Driver) 和 Spark源码分析之CoarseGrainedExecutorBackend运行流程(Executor);本文主要讲述Spark任务调度框架的原理和源码分析。原理概述由于 Spark Scheduler内部原理

2020-06-13 16:20:12

PySpark源码分析之Driver端基于Py4j的通信详解

文章目录概述服务端启动Python客户端编程示例概述接上文 PySpark源码分析之AM端运行流程(Driver) 的最后部分可知,PySpark是通过Py4j来实现与Scala端JVM通信交互的(注:Py4j只用于Driver端Python调用JVM中方法;Executor端是直接通过socket通信的。),PySpark主要提供一层Python API的封装。其过程主要是JVM会开启一个Socket端口提供RPC服务,Python需要调用Spark API时,它会作为客户端将调用指令序列化成字节流发

2020-05-27 10:58:24

Spark源码分析之分区(Partition)

文章目录概述Spark的分区器(Partitioner)RDD分区数确认窄依赖中分区数宽依赖中分区数源RDD的分区数RDD的重新分区Spark分区编程示例概述我们知道Task是Spark计算的最小计算单位,一个Partition(分区)对应一个Task,因此Partition个数也是决定RDD并行计算的关键,合理设置Partition个数能够极大的提高Spark程序执行效率。首先我们看下RDD、Partition和task的关系如下图:那Spark中分区个数是如何确定的呢?当发生shuffle时候,

2020-05-15 09:27:42

Spark源码分析之CoarseGrainedExecutorBackend运行流程(Executor)

接上文 Spark源码分析之AM端运行流程(Driver) 分析完了在AM端Driver的运行流程,在最后我们看到AM向Yarn提交申请Executor容器请求,请求上下文参数如下图:Yarn分配运行Executor容器流程和Yarn分配运行Driver容器流程一样(流程分析见 Spark源码分析之任务提交流程(Client)),我们继续看启动Executor的launch_container...

2020-04-18 12:08:47

Spark源码分析之Rpc框架

文章目录概述基本概念组件原理Message消息通信架构SparkEnv的初始化概述在Spark中很多地方都涉及网络通信,比如 Spark各个组件间的消息互通、用户文件与Jar包的上传、节点间的Shuffle过程、Block数据的复制与备份等。Spark1.6之前,Spark的Rpc是基于Akka来实现的,Akka是一个基于scala语言的异步的消息框架,但由于Akka不适合大文件的传输,在Sp...

2020-04-16 15:21:57

PySpark源码分析之AM端运行流程(Driver)

文章目录先验知识PythonRunner启动Python过程基于Py4J的通信模型先验知识前面文章 Spark源码分析之ApplicationMaster运行流程 我们介绍了Java|Scala程序在AM端的运行流程,本文介绍Python程序在AM端的运行流程,首先Client看提交命令:spark-submit --master yarn \--deploy-mode cluster \...

2020-04-08 09:50:46

Spark源码分析之AM端运行流程(Driver)

文章目录先验知识Yarn启动AM流程AM启动Driver流程AM申请Executors流程先验知识接之前文章 Spark源码分析之任务提交流程 介绍了Client提交Spark任务的源码分析过程。本文继续分析ApplicationMaster的启动流程(源码Hadoop2.7.1),首先给出Client的提交的一些先决条件如下:提交命令:spark-submit --master yarn...

2020-04-06 10:41:58

Yarn源码分析之状态机机制

文章目录基本概念基本概念在Yarn中状态转移和事件驱动往往协同工作,一个处理请求首先会作为某种事件发送给集群,然后经事件调度后传给具体的事件处理器,在事件处理器中调用状态机完成状态转移处理逻辑(具体事件驱动的过程见另一篇《学习笔记之Yarn中事件驱动模型.md》)。状态机由一组状态组成,这些状态大体分为三类:初始状态、中间状态和最终状态。状态机首先由初始状态A开始运行,经过一系列的中间状态后...

2020-04-04 09:16:55

Yarn源码分析之事件模型

文章目录事件模型设计原理AsyncDispatcher的基本结构AsyncDispatcher的初始化AsyncDispatcher的启动注册事件处理器分发事件处理器调用事件过程参考上篇 Yarn源码分析之集群启动过程 我们介绍了Yarn的启动过程,捎带介绍了AsyncDispatcher,但感觉有必要单独详细分析下(源码版本:hadoop2.7.1)…事件模型设计原理为了更好的应对并发,Y...

2020-03-29 20:06:04

Yarn源码分析之集群启动流程

文章目录集群启动脚本分析ResourceManager启动流程初始化流程启动流程中央事件调度器-AsyncDispatcher本文以hadoop2.7.1的源码分析(主要是最新版本考虑更多因素,源码不够纯粹)集群启动脚本分析首先我们从启动hadoop集群说起,我们一般在单点hadoop启动集群一般直接使用 sbin/start-all.sh 或 sbin/stop-all.sh ,我们直接看...

2020-03-28 14:47:09

Spark源码分析之任务提交流程(Client)

文章目录提交命令任务提交流程任务提交初流程YarnClusterApplication提交集群流程提交过程用户Yarn-Cluster提交shell命令提交给SparkSubmit类的cmd命令提交给集群启动driver的命令任务运行结果上传到hdfs的文件整个任务运行日志提交命令假定Yarn-Cluster方式提交:./bin/spark-submit \--class org.apac...

2020-03-20 14:05:22

学习笔记之Kafka幂等和事务

文章目录Producer 幂等性Kafka为啥需要幂等性?Kafka的幂等性是如何实现的?幂等性引入之后解决了什么问题?幂等性的限制条件幂等性的实现原理幂等性整体流程消息重试对顺序消息的影响幂等性的使用Producer 事务Kafka引入事务的用途?基本概念事务解决的场景事务保证事务恢复的保证事务原子性的保证事务中 Offset 的提交保证用于事务特性的控制型消息事务流程事务原理流程图寻找 TC ...

2020-03-08 09:59:25

一文弄懂Kafka基础理论

文章目录概述docker安装Kafka版本演进Kafka架构架构Kafka支持高并发读写核心技术页缓存技术 + 磁盘顺序写零拷贝技术(zero-copy)性能测试元数据文件存储日志的清除及压缩策略日志清除策略日志压缩策略分区和副本分区副本的分布算法Leader副本的选举副本复制原理基本原理同步方式如何处理Replica恢复?副本HA的Purgatory机制同步源码分析Controller 控制器为...

2020-03-08 09:40:00

一文弄懂Flink基础理论

文章目录Flink概述Flink生态为什么选择Flink?系统架构JobManager运行架构常用的类型和操作程序结构介绍并行数据流Task and Operator Chains核心原理Window&TimeWindowTimeState状态管理按组织形式的划分按照数据的划分和扩张方式Checkpoint容错机制Savepoint保存点Savepoint 和 CheckpointFlin...

2019-10-22 20:03:58

Flink项目pom编译配置

开发flink项目pom编译基本配置,如下 <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>mave...

2019-10-22 19:43:02

Spark同步数据到线上数据库的一个坑

背景使用PySpark抽取数据同步到数据库时候(例如:clickhouse、mysql等数据库),使用RDD的foreachPartition、mapPartitions或mapPartitionsWithIndex等函数发现有的分区会执行多次,导致重复同步数据问题。原因及解决方案可以通过mapPartitionsWithIndex的函数打印partitionIndex,然后在日志查看的方式...

2019-08-23 17:09:10

一文弄懂HDFS基本原理和架构

文章目录概述HDFS架构(Hadoop1.x)ClientNameNode(Master)DataNode(Slave)Secondary NameNodeHDFS 副本存放策略NameNode工作原理SecondNameNode与NameNode交互DataNode与NameNode交互![在这里插入图片描述](https://img-blog.csdnimg.cn/20190609163327...

2019-06-09 16:38:13

一文弄懂Hive基本架构和原理

文章目录概述Hive架构Hive数据模型Hive SQL的编译Hive执行计划Hive Sql的MapReduce实现原理Join的实现原理Group By的实现原理Distinct的实现原理Hive文件压缩和文件存储**Hive建表指定文件格式**Hive建表指定压缩Hive动态设置压缩Hive中间数据压缩Hive最终数据压缩Hive Map和Reduce数量计算Map数量Reduce数量数据倾...

2019-06-07 19:28:39

Hive常见调优技巧

文章目录减少数据量并行化执行开启动态分区开启JVM重用防止数据倾斜MapJoin自动判断手动设置map阶段优化reduce阶段优化方法1方法2合并小文件减少数据量第一原则先降数据量再join并行化执行set hive.exec.parallel=true;set hive.exec.parallel.thread.number=8;hive默认job是顺序进行的,一个HQL拆分成多个j...

2019-06-04 20:28:24

一文弄懂L0、L1和L2正则化范式

文章目录正则化L0范数L1范数L2范数elastic net总结讨论几个问题为什么L1稀疏,L2平滑?实现参数的稀疏有什么好处吗?参数值越小代表模型越简单吗?正则式的应用场景正则化正则化的作用实际上就是防止模型过拟合,提高模型的泛化能力。正则化是结构风险最小化策略的实现,是在经验风险上加一个正则化项(regularizer)或惩罚项(penalty term)。正则化一般是模型复杂度的单调递...

2019-04-28 19:21:31

查看更多

勋章 我的勋章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 分享达人
    分享达人
    成功上传6个资源即可获取