1. 程式人生 > >修改marathon源碼後,如何編譯,部署到集群中?

修改marathon源碼後,如何編譯,部署到集群中?

mesos、 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源碼後,如何編譯,部署到集群中?