Spark源码解读 deploy模块(一)

Spark源码分析随笔:(deploy模块)

 

本模块包含3个文件夹,分别为

1.        Master

2.        Worker

3.        Client

以及其他少量文件,我们先将他们解决掉。

 

1.  一个类文件ApplicationDescription用来描述用户传来的应用

      其中包含5val描述信息,分别是

name(String)     application的名字

cores(Int) 核数

memoryPerSlave(Int)  每个slave的内存大小

command(Command)ß<<<<<<<<<<<<<Command类 

sparkHome(String)

 

1个var变量 user =System.getProperty(“user.name”,”<unknown>”)

override toString方法:在name前加上”ApplicationDescription”字段

2command

mainClass(String)

arguments:Seq[String]

environment:Map[String,String]

 

3DeployMessage.scala   (关键文件)

定义了trait(特质)    DeployMessage以及其他

14个类  和  3个对象(全部都extends DeployMessage )

包括:

WorkerMaster发送的信息集合

ü   RegisterWorker  worker的注册信息

ü   ExecutorStateChanged  app执行状态的装换信息

ü   Heartbeat(workerId:String)  每个worker的心跳检测

 

 

Masterworker发送的信息集合

ü   RegisteredWorker(masterWebUiUrl) 已经注册的worker信息

ü   RegisterWorkerFailed(message)  worker注册失败返回的消息

ü   KillExecutor(appId:String,execId:Int)   结束掉某个app任务

ü   LaunchExecutor    开始某个app的执行

 

 

Clientmaster发送的信息集合

ü   RegisterApplication(appDescription:ApplicationDescription)  Client向Master提交app

 

 

Masterclient发送的信息集合

ü   RegisteredApplication(appId)  已经成功注册的app

ü   ExecutorAdded(id,workerId,host,cores,memory)    添加worker

ü   ExecutorUpdated(id,state,message)  更新执行状态

ü   appKilled    发送已经结束掉的app信息

 

 

Client的内部消息

Object StopClient     结束当前Client

 

MasterWebUI ToMaster

Object RequestMasterState   请求当前Master的状态信息

 

Master 返回给MasterWebUI的消息

MasterState(host,port,workers,activeApps,completeApps)

              Defuri = “spark://”+host+”:”+port      返回Master自己当前的状态

 

 

WorkerWebUI ToMaster

Object RequestWorkerState   请求当前Worker的状态信息

 

Worker 返回给MasterWebUI的消息

WorkerState(host,port,workerId,executors,finishedExecutors,masterUrl,cores,memory,coresUsed,memoryUsed,masterWebUiUrl)

              Defuri = “spark://”+host+”:”+port      返回Master自己当前的状态

 

 

4.ExecutorState   (Object)

       extendsEnumeration("LAUNCHING","LOADING", "RUNNING", "KILLED","FAILED", "LOST")

      def isFinished()

5.jsonProtocol (Object   )

       定义了json文件格式的协议

6.LocalSparkCluster(Class)

其中this(numworkers,coresPerWorkers,memoryPerWorker)

       localIpAddress

       masterActorSystems

       workerActorSystem

       start()

       stop()

7.WebUI (Object)

       定义了日期时间的输出格式formatDate

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值