Spark分析之Master

override def preStart() {
    logInfo("Starting Spark master at " + masterUrl)
    webUi.bind()    //绑定WEBUI
    masterWebUiUrl = "http://" + masterPublicAddress + ":" + webUi.boundPort
    context.system.scheduler.schedule(0 millis, WORKER_TIMEOUT millis, self, CheckForWorkerTimeOut) //定时检查超时未发送心跳的Worker

    masterMetricsSystem.registerSource(masterSource)
    masterMetricsSystem.start()
    applicationMetricsSystem.start()
    //用作master recover
    persistenceEngine = RECOVERY_MODE match {
    case "ZOOKEEPER" =>
        logInfo("Persisting recovery state to ZooKeeper")
        new ZooKeeperPersistenceEngine(SerializationExtension(context.system), conf)
    case "FILESYSTEM" =>
        logInfo("Persisting recovery state to directory: " + RECOVERY_DIR)
        new FileSystemPersistenceEngine(RECOVERY_DIR, SerializationExtension(context.system))
    case _ =>
        new BlackHolePersistenceEngine()
    }
      //用作master的leader选举
    leaderElectionAgent = RECOVERY_MODE match {
    case "ZOOKEEPER" =>
        context.actorOf(Props(classOf[ZooKeeperLeaderElectionAgent], self, masterUrl, conf))
    case _ =>
        context.actorOf(Props(classOf[MonarchyLeaderAgent], self))
    }
}

override def receive = {  case RegisterWorker

   case RequestSubmitDriver

   case RegisterApplication

   case Heartbeat

   case ExecutorStateChanged

   ......}

Master的主要功能总结:

1、Master的Leader选举;

2、对Driver、Worker、Application的管理

  1)Driver:RequestSubmitDriver/RequestKillDriver/RequestDriverStatus/DriverStateChanged

  2)Worker:RegisterWorker/Heartbeat/WorkerSchedulerStateResponse/CheckForWorkerTimeOut/ExecutorStateChanged

  3)Application:RegisterApplication

Spark分析之Master

时间: 2024-08-10 23:29:53

Spark分析之Master的相关文章

Spark分析之Master、Worker以及Application三者之间如何建立连接

Master.preStart(){ webUi.bind() context.system.scheduler.schedule(0 millis, WORKER_TIMEOUT millis, self, CheckForWorkerTimeOut) //定时任务检测是否有DEAD WORKER需要移除 case CheckForWorkerTimeOut => { timeOutDeadWorkers() } /** Check for, and remove, any timed-out

Spark分析之Worker

override def preStart() { webUi = new WorkerWebUI(this, workDir, Some(webUiPort)) webUi.bind() //创建并绑定UI registerWithMaster() //注册到Master } def tryRegisterAllMasters() { for (masterUrl <- masterUrls) { logInfo("Connecting to master " + master

Spark分析之Standalone运行过程分析

一.集群启动过程--启动Master $SPARK_HOME/sbin/start-master.sh start-master.sh脚本关键内容: spark-daemon.sh start org.apache.spark.deploy.master.Master 1 --ip $SPARK_MASTER_IP --port $SPARK_MASTER_PORT --webui-port $SPARK_MASTER_WEBUI_PORT 日志信息:$SPARK_HOME/logs/ 14/0

Spark分析之DAGScheduler

DAGScheduler的主要功能1.接收用户提交的job;2.将job根据类型划分为不同的stage,并在每一个stage内产生一系列的task,并封装成TaskSet;3.向TaskScheduler提交TaskSet; 以如下示例描述Job提交过程: val sc = new SparkContext("local[2]", "WordCount", System.getenv("SPARK_HOME"), Seq(System.geten

Spark分析之Job Scheduling Process

经过前面文章的SparkContext.DAGScheduler.TaskScheduler分析,再从总体上了解Spark Job的调度流程 1.SparkContext将job的RDD DAG图提交给DAGScheduler: 2.DAGScheduler将job分解成Stage DAG,将每个Stage的Task封装成TaskSet提交给TaskScheduler:窄依赖以pipeline方式执行,效率高: 3.TaskScheduler将TaskSet中的一个个Task提交到集群中去运行:

Spark分析之Dependency

在Spark中,每一个RDD是对于数据集在某一状态下的表现形式,比如说:map.filter.group by等都算一次操作,这个状态有可能是从前一状态转换而来的: 因此换句话说一个RDD可能与之前的RDD(s)有依赖关系:RDD之间存在依赖关系: 根据依赖关系的不同,可以将RDD分成两种不同的类型:宽依赖和窄依赖. 窄依赖:一个父RDD的partition至多被子RDD的某个partition使用一次: 宽依赖:一个父RDD的partition会被子RDD的partition使用多次,需要sh

[大数据从入门到放弃系列教程]第一个spark分析程序

文章施工中,由于部分网站会在我还没有写完就抓取到这篇文章,导致你看到的内容不完整,请点击这里: 或者复制访问 http://www.cnblogs.com/blog5277/p/8580007.html 来查看更完整的内容 [大数据从入门到放弃系列教程]第一个spark分析程序 原文链接:http://www.cnblogs.com/blog5277/p/8580007.html 原文作者:博客园--曲高终和寡 *********************分割线******************

小记--------spark的Master的Application注册机制源码分析及Master的注册机制原理分析

原理图解: Master类位置所在:spark-core_2.11-2.1.0.jar的org.apache.spark.deploy.master下的Master类 //截取了部分代码 //处理Application注册的请求 case RegisterApplication(description, driver) => //如果master的状态是standby,也就是当前这个master,是standby master,不是active master //那么Application来请求

Spark系列(五)Master主备切换机制

Spark Master主备切换主要有两种机制,之中是基于文件系统,一种是基于Zookeeper.基于文件系统的主备切换机制需要在Active Master挂掉后手动切换到Standby Master上,而基于Zookeeper的主备切换机制可以实现自动切换Master. 切换流程图 流程说明: Standby Master模式 1. 使用持久化引擎读取持久化的storeApps.storeDrivers.storeWorkers,持久化引擎有FileSystemPersistenceEngin