Spark3000门徒第13课Spark内核架构解密总结

昨晚听了王家林老师的第13课Spark内核架构解密,课堂笔记如下:

executor中线程池并发执行和复用,Spark executor, backed by a threadpool to run tasks.

默认一个work为一个Application只开启一个executor。一个worker里executor是多点好还是少点好,看具
体情况。

Worker:管理当前Node机器资源,并接受Master的指令来分配具体的计算资源Executor(使用ExecutorRunner
在新的进程中分配),是工头不是工人,使用Proxy来管理Executor。

job是包含task的一系列作业,action来触发,action不会产生RDD,只会run job.

Stage内部:计算逻辑完全一样, 只是计算的数据不同罢了。

Sparkcontext是核心,创建DAGSchedular,TaskScheduler,SchedulerBackend.

SparkContext通过DAGScheduler将job中RDD形成的DAG有向无环图划分为不同的Stage ,TaskScheduler会将不同Stage中的一系列的Task发送到对应的Executor去执行,而Stage内部:计算逻辑完全一样, 只是计算的数据不同罢了。

后续课程可以参照新浪微博 王家林_DT大数据梦工厂:http://weibo.com/ilovepains

王家林  中国Spark第一人,微信公共号DT_Spark

时间: 2024-10-22 01:59:22

Spark3000门徒第13课Spark内核架构解密总结的相关文章

Spark内核架构解密(DT大数据梦工厂)

只有知道内核架构的基础上,才知道为什么要这样写程序? 手工绘图来解密Spark内核架构 通过案例来验证Spark内核架构 Spark架构思考 ==========Spark Runtime的几个概念============ 下载下来运行,基本都是standalone模式,如果掌握了standalone,则yarn和mesos,以后不做特别说明,一律是standalone模式 application=driver+executor,executor是具体处理数据分片,里面是线程池并发的处理数据分片

spark内核架构解密(13)

本期主要介绍下spark的内核架构.spark的应用程序总体来说,主要包括两部分,一部分是Driver,其包括了SparkConf和SparkContext,另一部分就是Executor,运行具体的业务逻辑. 应用程序的提交有两种方式, 1.Driver进程运行在客户端,对应用程序进行监控. 2.主节点指定某个worker节点启动Driver,负责整个应用的监控. Driver一般运行在一台专门用来提交spark程序的机器上,这台机器一般一定和spark cluster在同样的网络环境中(因为D

Spark3000门徒第14课spark RDD解密总结

今晚听了王家林老师的第14课spark RDD解密,课堂笔记如下: Spark是基于工作集的应用抽象,RDD:Resillient Distributed Dataset是基于工作集的,spark可以对结果重用. 位置感知:spark比hadoop更精致. RDD是lazy的,是分布式函数式编程的抽象,RDD可以看做一个只读的List或者Array.产生的中间结果怎么办? 不能让 他立即计算,采用Lazy级别,只对数据处理做标记.所以RDD操作是有向的,链式的,所以Stage有1000个步骤,不

Spark3000门徒第12课Spark HA实战总结

今晚听了王家林老师的第12课Spark HA实战,课堂笔记以及作业如下: Spark HA需要安装zookeeper,推荐稳定版3.4.6. 1.下载zookeeper3.4.6,2.配置环境变量3.创建data logs4.vi conf/zoo.cfg5 data目录中创建myid spark-env.sh 配置HA : export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zo

Spark3000门徒第七课Spark运行原理及RDD解密总结

今晚听了王家林老师的第七课Spark运行原理及RDD解密,课后作业是:spark基本原理,我的总结如下: 1 spark是分布式 基于内存 特别适合于迭代计算的计算框架 2 mapReduce就两个阶段map和reduce,而spark是不断地迭代计算,更加灵活更加强大,容易构造复杂算法. 3 spark不能取代hive,hive做数据仓库存储,spark sql只是取代hive的计算引擎 4 spark中间数据可以在内存也可以在磁盘 5 partition是一个数据集合 6 注意:初学者执行多

Spark3000门徒第9课IDEA中开发Spark实战总结

今晚听了王家林老师的第9课IDEA中开发Spark实战,课后作业是:在Idea中编写广告点击排名的程序并提交集群测试, IDEA社区版本就够用,Ultimate没必要还要钱 程序如下: object WordCountCluster { def main(args: Array[String]){ /** * 第一步:创建spark的配置对象SparkConf,设置Spark程序的运行时的配置信息 * */ val conf = new SparkConf() //创建SparkConf对象 c

Spark3000门徒第10课Java开发Spark实战总结

今晚听了王家林老师的第10课Java开发Spark实战,课后作业是:用Java方式采用Maven开发Spark的WordCount并运行在集群中 先配置pom.xml <groupId>com.dt.spark</groupId> <artifactId>SparkApps</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging

Spark3000门徒第六课精通Spark集群搭建总结

今晚听了王家林老师的第六课精通Spark集群搭建和测试,课后作业是:搭建自己的spark环境并成功运行pi,我的总结如下: 1 硬件环境: 至少8GB内存,推荐金士顿内存,虚拟机推荐Ubuntu kylin版本,可以安装各种办公软件包括搜狗输入法.上网方式:Nat,root权限登录,避免权限问题 2.软件环境: RedHat 6.4  spark 1.6.0   hadoop 2.6.0   scala 2.11.8 3 /etc/hosts ip-hostname对应关系 spark.even

Spark3000门徒第8课IDE中开发Spark实战总结

今晚听了王家林老师的第8课IDE中开发Spark实战,课后作业是:在Eclipse中编写广告点击排名的程序并测试,程序如下: object WordCountCluster { def main(args: Array[String]){ /** * 第一步:创建spark的配置对象SparkConf,设置Spark程序的运行时的配置信息 */ val conf = new SparkConf() //创建SparkConf对象 conf.setAppName("First App")