• Spark


    1 spark是做什么的

      数据处理:用来快速处理数据。

      迭代计算:有效应对多步的数据处理逻辑。

    2 常用进程

      JDBCServer:常驻Spark的应用,通过连接JDBCServer,执行sql语句。

      JobHistory:单节点进程,用于展示历史应用的执行情况。

    3 核心概念

    3.1 application:spark用户程序,用户提交一次应用为一个app,一个app产生一个sparkcontext。

    3.2 job:一个app可被划分为多个job,划分标记为action动作,有collectcount等。

    3.3 stage:每个job被划分多层stage,划分标记为shffle过程,stage按照父子关系依次执行。

    3.4 task:具体的执行任务单位,被分发到executor上执行具体任务。

    3.5 ClusterManager集群资源管理服务,包含主节点和多个运行节点,支持运行模式有StandalonemesosYarn。

    3.6 Driver:运行app的大脑,负责job的初始化,将job转换成task并提交执行。

    3.7 DAGScheduler:是一个面向Stage层面的调度器,按照Stage提交task集合给TaskScheduler。

    3.8 TaskScheduler:提交task给Executor运行,并管理执行结果。

    3.9 BlockManager:管理app运行周期的中间数据。

    3.10 Executor:是app运行在worker node上的一个进程,负责运行task,生命周期同app。

    4 运行过程

    1)构建SparkApplication运行环境(启动SparkContext)

    2)SparkContext向资源管理器(ClusterManager)申请运行Executor资源,并启动StandaloneExecutorBackend。

    3)Executor向SparkContext注册。

    4)SparkContext启动应用程序DAG调度,Stage划分,TaskSet生成。

    5)TaskScheduler调度TaskSet,将task分发给Executor运行。

    6)task在Executor上运行,运行完毕释放所有资源。

  • 相关阅读:
    什么是Azkaban?
    设计模式 应用场景
    初识Nginx
    C++著名程序库的比较和学习经验(STL.Boost.GUI.XML.网络等等)
    C++对象模型笔记之程序设计模型
    深度探索C++对象模型之C++对象模型笔记
    对于数据库设计者而言,在设计表属性类型时应该考虑哪些问题?
    Thread 多线程 同步
    Thread sleep()休眠
    Java 多线程(Thread)学习
  • 原文地址:https://www.cnblogs.com/guobm/p/10612001.html
Copyright © 2020-2023  润新知