Spark源码解读(2)——Worker启动过程
2016-07-20 18:05
387 查看
本文将讨论Spark以Standalone模式部署情况下,Worker的启动过程。
上文已经对Master的启动过程进行了较为详细的分析,Worker的启动过程大部分的代码都是和Master复用的,对于这部分不再赘述。因此对Worker启动过程的分析从onStart()方法开始
Worker会定时重试向Master注册,知道注册成功或者达到最大重试次数之后才会停止注册
需要注意的是registerWithMaster()方法在两种情况下会被调用:Worker启动,Master没有保存Worker的注册信息但是收到了Worker的心跳(有可能是由Worker心跳超时引起)
上面是对Worker启动过程的简单分析,如有错误欢迎各位同学拍砖。欢迎交流学习,QQ:1037727037
上文已经对Master的启动过程进行了较为详细的分析,Worker的启动过程大部分的代码都是和Master复用的,对于这部分不再赘述。因此对Worker启动过程的分析从onStart()方法开始
override def onStart() { assert(!registered) logInfo("Starting Spark worker %s:%d with %d cores, %s RAM".format( host, port, cores, Utils.megabytesToString(memory))) logInfo(s"Running Spark version ${org.apache.spark.SPARK_VERSION}") logInfo("Spark home: " + sparkHome) createWorkDir() shuffleService.startIfEnabled() webUi = new WorkerWebUI(this, workDir, webUiPort) webUi.bind() registerWithMaster() metricsSystem.registerSource(workerSource) metricsSystem.start() // Attach the worker metrics servlet handler to the web ui after the metrics system is started. metricsSystem.getServletHandlers.foreach(webUi.attachHandler) }这里可以看到Worker启动之后会想Master注册,registerWithMaster(),这部分逻辑相对简单,不再展开叙述
Worker会定时重试向Master注册,知道注册成功或者达到最大重试次数之后才会停止注册
需要注意的是registerWithMaster()方法在两种情况下会被调用:Worker启动,Master没有保存Worker的注册信息但是收到了Worker的心跳(有可能是由Worker心跳超时引起)
上面是对Worker启动过程的简单分析,如有错误欢迎各位同学拍砖。欢迎交流学习,QQ:1037727037
相关文章推荐
- java异或加解密及其改善
- 自定义ViewGroup(Android群英传)
- ny 8 一种排序(sort)
- python3的多线程操作
- 2016XTU算法专题个人赛1 题解
- Java基本语法-----java标识符
- Java基本语法-----java标识符
- word2013中取消句首字母自动大写
- LayoutParams的详解
- JavaScript中的逻辑运算操作对象
- 深入理解移动端像素知识与Viewport知识
- BZOJ3740 : pku2842 N-dimension Matching N维匹配
- Matrix深入
- 4-2 多项式求值 (15分)
- iOS开发(OC)——还在用UIWebView?该用WKWebView了
- iOS clone github 代码
- 堆(一)
- 积分公式对比
- Harbor配置ldap
- Chrome开发工具之Console