• Spark Standalone运行过程


    以下内容参考http://www.cnblogs.com/luogankun/p/3912956.html

    一、集群启动过程--启动Master

    二、集群启动过程--启动Worker
    Worker运行时,需要注册到指定的master url

    Worker启动之后主要做了两件事情:
      1)将自己注册到Master(RegisterWorker);
      2)定期发送心跳信息给Master;

    Worker向Master发送注册信息:
    Master侧收到RegisterWorker通知:
    Worker在收到Master发来的注册成功信息后,定期向Master发送心跳信息
    Master在接收到Worker发送来的心跳信息后更新最后一次心跳时间
    Master定期移除超时未发送心跳信息给Master的Worker节点

    三、Application提交过程
    A、提交Application
    spark-shell属于application,在启动SparkContext的createTaskScheduler创建SparkDeploySchedulerBackend的过程中创建
    会向Master发送RegisterApplication请求
    B、 Master处理RegisterApplication的请求
    在Master侧其处理的分支是RegisterApplication;Master在收到RegisterApplication请求之后,Master进行调度:
    如果有worker已经注册上来,发送LaunchExecutor指令给相应worker
    C、启动Executor
    Worker在收到LaunchExecutor指令之后,会启动Executor进程
    D、注册Executor
    启动的Executor进程会根据启动时的入参,将自己注册到Driver中的SchedulerBackend
    E、运行Task
    SchedulerBackend收到Executor的注册消息之后,会将提交到的Spark Job分解为多个具体的Task,然后通过LaunchTask指令将这些Task分散到各个Executor上真正的运行。

    每当有新的application注册到master,master都要调度schedule函数将application发送到相应的worker,在对应的worker启动相应的ExecutorBackend,最终的Task就运行在ExecutorBackend中。

  • 相关阅读:
    AFN 控制字符报错(无法解析)
    HTTP POST请求报文格式分析与Java实现文件上传
    xcrun
    Makefile选项CFLAGS,LDFLAGS,LIBS
    Xcode 编译错误
    iOS 11 适配
    机器学习算法之决策树
    Python extend 和 append 的区别
    Python warning_function name should be lowercase
    使用matplotlib绘制导数图像
  • 原文地址:https://www.cnblogs.com/liutoutou/p/4056999.html
Copyright © 2020-2023  润新知