溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

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

發(fā)布時(shí)間:2020-07-18 09:32:13 來(lái)源:網(wǎng)絡(luò) 閱讀:1623 作者:故新 欄目:軟件技術(shù)

首先,marathon源碼是由scala語(yǔ)言編寫(xiě),由sbt進(jìn)行項(xiàng)目構(gòu)建的;與spark不同,spark是由maven進(jìn)行項(xiàng)目構(gòu)建;

方案一:使用intellij idea導(dǎo)入marathon源碼【目前不可行】

A、使用intellij idea導(dǎo)入marathon源碼

B、更新源碼

C、利用intellij idea 進(jìn)行編譯,打包

D、上傳服務(wù)器上,替換$marathon_home/target/scala-2.11里的包marathon-assembly-1.4.3.jar

E、重新啟動(dòng)marathon服務(wù),發(fā)現(xiàn)報(bào)找不到主類

此問(wèn)題,折騰了一下午,始終沒(méi)解決掉,由于時(shí)間比較近,就暫時(shí)不再繼續(xù)查找原因,等后期會(huì)繼續(xù)分析原因。

 

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

這種方案,并不是很好,比較麻煩,只是其中一個(gè)方案而已;

目前我的需求是,研究分析marathon源碼,主要是分析marathon是如何創(chuàng)建task的過(guò)程;

因此,并不是非常關(guān)心如何編譯打包marathon源碼的具體過(guò)程。

關(guān)鍵步驟如下:

A、https://github.com/mesosphere/marathon  下載源碼到window

B、使用intellij idea導(dǎo)入marathon源碼

C、更新源碼,如在啟動(dòng)類里,隨便打印一條輸出語(yǔ)句即可;如:

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

D、這里僅僅編譯marathon源碼即可,無(wú)需打包

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

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

編譯,大概需要1分鐘左右吧

找到編譯好的class文件路徑,如下所示:

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

E、利用Xftp工具,將服務(wù)器上,

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

F、利用好壓將marathon-assembly-1.4.3.jar打開(kāi),將Main$.class,Main.class 直接拖進(jìn)去,如果提示的話,選擇全部替換即可

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

 

可以查看一下時(shí)間,查看是否更新成功

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

 

G、重新利用Xftp工具將marathon-assembly-1.4.3.jar jar包重新上傳服務(wù)器上,替換舊的jar包,最好所有部署marathon的節(jié)點(diǎn),全部要替換,不然,源碼不同步了;

利用scp命令,傳輸?shù)狡渌?jié)點(diǎn)上去,

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

H、重新啟動(dòng)marathon服務(wù),

我這里是用腳本執(zhí)行的,命令如下:

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

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

方案三:

前一段時(shí)間,遇到一些麻煩,在公司里下載marathon源碼后導(dǎo)入intellij idea始終失敗,原因是,個(gè)別jar包始終下載失??;

解決措施:

   周末在家里,本著不放棄的態(tài)度,重新導(dǎo)入marathon源碼,居然成功了;

原因 :很有可能是因?yàn)楣臼褂玫碾娦胚\(yùn)營(yíng)商與家里使用的電信運(yùn)營(yíng)商不是同一家,jar包下載成功。當(dāng)然,也沒(méi)具體查。

 

目前,

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

2、marathon源碼上傳到服務(wù)器上

3、進(jìn)入到marathon根目錄下,

這里需要對(duì)build.sbt進(jìn)行修改,不同的marathon源碼版本,build.sbt是不一樣的;

主要對(duì)兩方面進(jìn)行里修改

第一、   注釋掉mesos-simulation變量,原因

  1. 編譯打包時(shí)會(huì)嘗試進(jìn)行mesos的模擬,而這個(gè)過(guò)程,很有可能失敗,

  2. 節(jié)省編譯打包時(shí)間

第二、   注釋掉此文件里,進(jìn)行test的命令

情況一:如果該文件里,存在testSettings變量的話,將此變量的聲明注釋掉,以及使用到此變量的地方,也注釋掉

情況二:如果該文件里,沒(méi)有testSetting變量的話,我是將build.sbt文件里,凡是含有test單詞的地方,全部注釋掉了。

4、具體命令如下:

sbt-assembly工具,進(jìn)行打包;

   #sbt clean compile assembly

結(jié)束后,會(huì)在marathon源碼的根目錄下的target/scala-2.11中打包好目標(biāo)jar包

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





向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI