利用web管理spark任務(wù)

由于最近學(xué)習(xí)了Play Framework這個(gè)web開發(fā)框架,接口的設(shè)計(jì)和api非常炫酷。由于是scala寫的,所以這個(gè)框架對(duì)于和大數(shù)據(jù)框架結(jié)合來(lái)說(shuō)個(gè)人覺得最非常適合。

每次寫的saprk 程序都要先上傳在登錄到Linux 機(jī)器上提交,登錄通道機(jī)/ 跳板機(jī) 每次都要密碼,如果修改了代碼,還要重新上傳。所以在想能否設(shè)計(jì)一個(gè)接口程序,將提交任務(wù)間接操作,從而實(shí)現(xiàn)免登錄操作,一鍵提交任務(wù)。

總體思路:

利用Restful api +akka+ java Process

根據(jù)官方提供的api 我們可以拿到很多運(yùn)行時(shí)的數(shù)據(jù),根據(jù)接口數(shù)據(jù)進(jìn)行自定義的展示和監(jiān)控,這里項(xiàng)目用到的是spark master的接口<pre>http://yourhost:8080/json</pre>

  • 利用 java Process的api 可以實(shí)現(xiàn)調(diào)用用戶指定的command,從而實(shí)現(xiàn)提交任務(wù),使用該api的好處是可以用流的方式讀取日志,用正在判斷當(dāng)前任務(wù)是否運(yùn)行結(jié)束,最后返回匹配結(jié)果。

  • 首頁(yè)的監(jiān)控主要是用了hadoop的jmx接口數(shù)據(jù)
    <pre>http://yourhost:50070/jmx?qry=Hadoop:service=NameNode,name=FSNamesystem</pre>

hadoop metrics指標(biāo)說(shuō)明
<pre>http://hadoop.apache.org/docs/r2.5.2/hadoop-project-dist/hadoop-common/Metrics.html</pre>

spark-submit-ui

基于playframwork開發(fā),web管理spark應(yīng)用的程序

你需要安裝SBT和Java以及PlayFramowrk。這個(gè)項(xiàng)目基于2.2.x 版本開發(fā),需要PlayFramowrk 2.2或更高版本。

測(cè)試環(huán)境

  • JDK8
  • Center OS 6.5
  • Spark 1.5.2
  • Hadoop 2.6.0
  • Scala 2.11

根據(jù)不同的測(cè)試環(huán)境可能需要做不同的調(diào)整與修改

主要功能

  • hadoop metrics 數(shù)據(jù)監(jiān)控
  • spark 集群狀態(tài)信息展示
  • 完善的spark app 提交與管理
  • 任務(wù)狀態(tài)監(jiān)控,狀態(tài)推送

并下載并安裝Play Framework 編譯環(huán)境

Installing Play

修改配置文件,將集群地址替換為你的

文件路徑在
<pre>conf/web-site.conf</pre>

編譯與運(yùn)行

<pre> activator run </pre>
然后去 http://localhost:9000 查看正在運(yùn)行的服務(wù)器。
如果運(yùn)行有這個(gè)界面提示,點(diǎn)擊Apply this script now 初始化數(shù)據(jù)表

項(xiàng)目默認(rèn)使用H2數(shù)據(jù)庫(kù)

這是Play 內(nèi)嵌的一個(gè)數(shù)據(jù)庫(kù) H2
H2數(shù)據(jù)庫(kù)

如果想要換成Mysql或者是其他的存儲(chǔ)可以參考指引
<b>MySQL 數(shù)據(jù)庫(kù)引擎連接屬性
配置文件 conf/application.conf
</b>
<pre>
db.default.driver=com.mysql.jdbc.Driver
db.default.url="jdbc:mysql://localhost/playdb"
db.default.user=playdbuser
db.default.pass="a strong password" </pre>

其他

通過(guò)界面管理,kill或者rerun任務(wù)


如果你的提交參數(shù)或配置導(dǎo)致異常,可以在提交時(shí)查看相關(guān)的錯(cuò)誤輸出

首頁(yè)

讓大數(shù)據(jù)開發(fā)更加簡(jiǎn)單~
項(xiàng)目地址:https://github.com/kingekinge/spark-submit-ui

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容