zoukankan      html  css  js  c++  java
  • Spark---架构原理

    Spark核心组件

    1、Driver

    我们编写的Spark程序就在Driver上
    Spark集群节点之一,就是你提交的Spark程序的机器

    2、Master

    Master是个进程
    Master其实主要负责资源的调度和分配,还有集群的监控,等职责

    3、Worker

    Worker是个进程
    主要是负责是2个:一个是用自己的内存,存储RDD的某个或者某些pardition。
    另一个是启动其他进程和线程,对RDD上的Pardition进行版型的处理和计算

    4、Executor

    4、Task

    Executor是一个进程
    Executor和Task,其实就是还行负责,对RDD的Partition进行并行的计算
    也就是执行我们对RDD定义的,比如:map,flatMap,reduce等算子操作

    1:Driver程序启动后,会做一些初始化的操作,在这个过程中,就会发送请求到Master上,进行Spark应用程序的注册,说白了,就是让Master知道,有一个新的Spark程序要运行。

    2:Master,在接收到了Spark应用程序的注册申请之后,会发送请求给Worker,进行资源的调度和分配。说白了,说穿了,资源分配就是Executor的分配。

    3:Executor启动之后,会向Driver进行反注册,这样,Driver就知道,哪些Executor是为他进行服务的了。

    4:Driver注册了一些Executor之后就可以开始正式执行我们的spark应用程序了。首先第一步就是,创建RDD,读取数据源(HDFS),然后HDFS文件被读取到多个worker节点中去,形成内存中的分布式数据集,也就是初始RDD。

    5:Drvier会根据我们对RDD定义的操作,提交一大堆task去executor上。,Executor接收到task之后,会启动多个线程来执行task.

    task就会对RDD的partition数据执行指定的算子操作,形成新的RDD的partition.

  • 相关阅读:
    LRU(Least Recently Used最近最少使用)的c++实现(顺序表)
    linux下的性能分析profiling(动态)
    实习的具体内容
    x86_64 Ubuntu 14.04 LST安装gcc4.1.2 转载
    Gem5全系统模式下运行SPLASH-2 Benchmarks使用alpha ISA
    gem5 运行x86全系统仿真
    Linux操作系统下三种配置环境变量的方法——转载
    找实习小结
    multi2sim,booksim简介
    破壳(2)之触摸
  • 原文地址:https://www.cnblogs.com/yeszero/p/6991782.html
Copyright © 2011-2022 走看看