首页 > 代码库 > 修改marathon源码后,如何编译,部署到集群中?

修改marathon源码后,如何编译,部署到集群中?

首先,marathon源码是由scala语言编写,由sbt进行项目构建的;与spark不同,spark是由maven进行项目构建;

方案一:使用intellij idea导入marathon源码【目前不可行】

A、使用intellij idea导入marathon源码

B、更新源码

C、利用intellij idea 进行编译,打包

D、上传服务器上,替换$marathon_home/target/scala-2.11里的包marathon-assembly-1.4.3.jar

E、重新启动marathon服务,发现报找不到主类

此问题,折腾了一下午,始终没解决掉,由于时间比较近,就暂时不再继续查找原因,等后期会继续分析原因。

 

方案二:直接替换marathon-assembly-1.4.3.jar里的class文件

这种方案,并不是很好,比较麻烦,只是其中一个方案而已;

目前我的需求是,研究分析marathon源码,主要是分析marathon是如何创建task的过程;

因此,并不是非常关心如何编译打包marathon源码的具体过程。

关键步骤如下:

A、https://github.com/mesosphere/marathon  下载源码到window

B、使用intellij idea导入marathon源码

C、更新源码,如在启动类里,随便打印一条输出语句即可;如:

技术分享

D、这里仅仅编译marathon源码即可,无需打包

技术分享

技术分享

编译,大概需要1分钟左右吧

找到编译好的class文件路径,如下所示:

技术分享

E、利用Xftp工具,将服务器上,

技术分享

F、利用好压将marathon-assembly-1.4.3.jar打开,将Main$.classMain.class 直接拖进去,如果提示的话,选择全部替换即可

技术分享

 

可以查看一下时间,查看是否更新成功

技术分享

 

G、重新利用Xftp工具将marathon-assembly-1.4.3.jar jar包重新上传服务器上,替换旧的jar包,最好所有部署marathon的节点,全部要替换,不然,源码不同步了;

利用scp命令,传输到其他节点上去,

技术分享

H、重新启动marathon服务,

我这里是用脚本执行的,命令如下:

技术分享

技术分享



本文出自 “XEJ分布式工作室” 博客,请务必保留此出处http://xingej.blog.51cto.com/7912529/1954376

修改marathon源码后,如何编译,部署到集群中?