修改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、更新源码,如在启动类里,随便打印一条输出语句即可;如:

wKioL1mJI53D01zwAABhK7mReZE731.png-wh_50

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

wKiom1mJI8bwqimMAAGXLlYRRco566.png-wh_50

wKioL1mJI8bz9LeQAAB3QXAtatc951.png-wh_50

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

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

wKiom1mJI-TSiDpFAABNjIGdAUM622.png-wh_50

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

wKioL1mJJAOB9eKXAAAv4JBjT-0389.png-wh_50

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

wKiom1mJJAbzh5SZAAYW48pfS5I901.png-wh_50

 

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

wKioL1mJJAfxEFJsAALAT-apFXM473.png-wh_50

 

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

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

wKioL1mJJAiD67LiAABtbUPvkHA312.png-wh_50

H、重新启动marathon服务,

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

wKiom1mJJAjSbcB-AABA3HUBLJA510.png-wh_50

wKiom1mJJAmCX5pGAABqJUAgpb8946.png-wh_50

方案三:

前一段时间,遇到一些麻烦,在公司里下载marathon源码后导入intellij idea始终失败,原因是,个别jar包始终下载失败;

解决措施:

   周末在家里,本着不放弃的态度,重新导入marathon源码,居然成功了;

原因 :很有可能是因为公司使用的电信运营商与家里使用的电信运营商不是同一家,jar包下载成功。当然,也没具体查。

 

目前,

1、window上使用intellijidea修改marathon源码

2、marathon源码上传到服务器上

3、进入到marathon根目录下,

这里需要对build.sbt进行修改,不同的marathon源码版本,build.sbt是不一样的;

主要对两方面进行里修改

第一、   注释掉mesos-simulation变量,原因

  1. 编译打包时会尝试进行mesos的模拟,而这个过程,很有可能失败,

  2. 节省编译打包时间

第二、   注释掉此文件里,进行test的命令

情况一:如果该文件里,存在testSettings变量的话,将此变量的声明注释掉,以及使用到此变量的地方,也注释掉

情况二:如果该文件里,没有testSetting变量的话,我是将build.sbt文件里,凡是含有test单词的地方,全部注释掉了。

4、具体命令如下:

sbt-assembly工具,进行打包;

   #sbt clean compile assembly

结束后,会在marathon源码的根目录下的target/scala-2.11中打包好目标jar包

 wKiom1mVMPzQ31dkAAE8W4WytNg086.png-wh_50













本文转自故新51CTO博客,原文链接: http://blog.51cto.com/xingej/1954376,如需转载请自行联系原作者






相关文章
|
7月前
|
存储 缓存 NoSQL
Harbor高可用集群设计及部署(基于离线安装方式一)
基于Harbor离线安装方式的高可用方案设计及部署。
159 0
|
1月前
|
资源调度 JavaScript Shell
6.6k star!推荐一款轻松创建隔离环境的命令行及容器工具!
6.6k star!推荐一款轻松创建隔离环境的命令行及容器工具!
|
5月前
|
Shell Docker 容器
利用shell脚本[带注释的]部署单节点多实例es集群(docker版)
利用shell脚本[带注释的]部署单节点多实例es集群(docker版)
68 0
|
7月前
|
关系型数据库 应用服务中间件 数据库
Harbor高可用集群设计及部署(基于离线安装方式二)
基于Harbor离线安装方式的高可用方案设计及部署。
208 0
|
存储 jenkins Java
搭建部署jenkins,服务器需要什么配置?底层原理是什么?
搭建部署jenkins,服务器需要什么配置?底层原理是什么?
1406 0
|
分布式计算 安全 Hadoop
环境篇 ES 集群安装准备工作|学习笔记
快速学习环境篇 ES 集群安装准备工作
66 0
|
分布式计算 前端开发 Hadoop
环境篇 ES 集群的配置|学习笔记
快速学习环境篇 ES 集群的配置
284 0
|
存储 Kubernetes Cloud Native
Kubernetes运行有状态应用程序的注意事项
Kubernetes运行有状态应用程序的注意事项
107 0
|
负载均衡 Perl
KUBERNETES02_集群安装逻辑、前置环境、搭建一主两从、部署dashboard访问页面(二)
KUBERNETES02_集群安装逻辑、前置环境、搭建一主两从、部署dashboard访问页面(二)
138 0
KUBERNETES02_集群安装逻辑、前置环境、搭建一主两从、部署dashboard访问页面(二)
|
Kubernetes 数据可视化 容器
KUBERNETES02_集群安装逻辑、前置环境、搭建一主两从、部署dashboard访问页面(四)
KUBERNETES02_集群安装逻辑、前置环境、搭建一主两从、部署dashboard访问页面(四)
138 0
KUBERNETES02_集群安装逻辑、前置环境、搭建一主两从、部署dashboard访问页面(四)