利用web管理spark任务

由于最近学习了Play Framework这个web开发框架,接口的设计和api非常炫酷。由于是scala写的,所以这个框架对于和大数据框架结合来说个人觉得最非常适合。

每次写的saprk 程序都要先上传在登录到Linux 机器上提交,登录通道机/ 跳板机 每次都要密码,如果修改了代码,还要重新上传。所以在想能否设计一个接口程序,将提交任务间接操作,从而实现免登录操作,一键提交任务。

总体思路:

利用Restful api +akka+ java Process

根据官方提供的api 我们可以拿到很多运行时的数据,根据接口数据进行自定义的展示和监控,这里项目用到的是spark master的接口<pre>http://yourhost:8080/json</pre>

  • 利用 java Process的api 可以实现调用用户指定的command,从而实现提交任务,使用该api的好处是可以用流的方式读取日志,用正在判断当前任务是否运行结束,最后返回匹配结果。

  • 首页的监控主要是用了hadoop的jmx接口数据
    <pre>http://yourhost:50070/jmx?qry=Hadoop:service=NameNode,name=FSNamesystem</pre>

hadoop metrics指标说明
<pre>http://hadoop.apache.org/docs/r2.5.2/hadoop-project-dist/hadoop-common/Metrics.html</pre>

spark-submit-ui

基于playframwork开发,web管理spark应用的程序

你需要安装SBT和Java以及PlayFramowrk。这个项目基于2.2.x 版本开发,需要PlayFramowrk 2.2或更高版本。

测试环境

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

根据不同的测试环境可能需要做不同的调整与修改

主要功能

  • hadoop metrics 数据监控
  • spark 集群状态信息展示
  • 完善的spark app 提交与管理
  • 任务状态监控,状态推送

并下载并安装Play Framework 编译环境

Installing Play

修改配置文件,将集群地址替换为你的

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

编译与运行

<pre> activator run </pre>
然后去 http://localhost:9000 查看正在运行的服务器。
如果运行有这个界面提示,点击Apply this script now 初始化数据表

项目默认使用H2数据库

这是Play 内嵌的一个数据库 H2
H2数据库

如果想要换成Mysql或者是其他的存储可以参考指引
<b>MySQL 数据库引擎连接属性
配置文件 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>

其他

通过界面管理,kill或者rerun任务


如果你的提交参数或配置导致异常,可以在提交时查看相关的错误输出

首页

让大数据开发更加简单~
项目地址:https://github.com/kingekinge/spark-submit-ui

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容