小记---------spark架构原理&主要组件和进程

spark的主要组件和进程
 
    driver (进程):
    我们编写的spark程序就在driver上,由driver进程执行
 
    master(进程):
    主要负责资源的调度和分配,还有集群的监控
 
    worker(进程):
    主要负责
    1.用自己的内存 存储RDD的某个或某些partition;
    2.启动其它进程和线程,对RDD上的partition进行版型的处理和计算
 
    executor(进程):
    负责对RDD的partition进行并行计算,也就是执行我们对RDD栋定义,比如map/flatmap/reduce等算子操作
 
task(线程):
    对RDD的partition数据执行指定的算子操作
 
spark架构原理大致步骤:
  1. driver进程启动之后,会做初始化的操作,在这个过程中会发送请求到Master上,进行spark应用程序的注册,其实就是让master知道,有一个新的spark应用程序要运行
  2. master在接收到spark应用程序的注册申请之后,会发送请求给worker,进行资源的调度和分配;其实就是资源的分配就是对executor的分配
  3. worker接收到master的请求后会为spark应用启动executor
  4. executor启动之后,会向driver进行反注册,这样driver就知道哪些executor是为它进行服务的
  5. driver注册了一些executor之后,就可以开始正式执行我们的spark应用程序了,首先第一步就是创建初始RDD,读取数据源
  6. HDFS文件内容被读取到多个worker节点上,形成内存中的分布式数据集,也就是初始RDD
  7. 然后worker进程上就会出现一些RDD的partition
  8. driver会根据我们对RDD定义的操作,提交一大堆task去executor
  9. executor接收到task后,会启动多个线程来执行task
  10. task就会对RDD的partition数据执行指定的算子操作,然后形成新的RDD的partition
此时一个循环就结束了,接下来会对新的RDD partition 那么driver又会提交新的task去操作直到这个spark应用执行完毕 
上一篇:Spark基本架构及原理


下一篇:Orchard源码:Logging