worker的一般工作流程

  1. 第一步,创建driver的工作目录

  2. 第二步,下载用户上传的jar到drive的目录,并返回它在worker本地的路径,如果下载jar包的过程中出现了任何异常,那么会抛出exection异常

    用Hadoop jar的Path 拿到了Hadoop配置
    获取了HDFS的filesystem 创建本地目录
    如果jar不存在,用hdfs拷贝到本地目录当中

  3. 第三步,构建ProcessBuilder
    传入了driver的启动命令,需要的内存大小等信息,通过Processbuild启动drive线程
    drive执行完以后,driverRunner线程会发送一个状态给worker,然后worker实际上会将DriveStateChanged消息发送给master,master会进行状态改变处理
    将driver从本地缓存移除 将drive加入完成的driver队列 将driver的内存和CPU释放出来

  4. fetchAndRunExecutor方法 封装一个processBuilder
    重定向输出流到文件,分别定向到本地工作目录到stdout文件和stderr文件中
    调用process的wait方法,启动executor进程
    executor执行完之后拿到返回状态
    想executorRunner线程所属的worker actor,发送executorStateChange消息

猜你喜欢

转载自blog.csdn.net/weixin_41624046/article/details/88065178