利用web管理spark任务

作者: 张鱼猫 | 来源:发表于2017-03-14 00:29 被阅读750次

由于最近学习了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

相关文章

  • 利用web管理spark任务

    由于最近学习了Play Framework这个web开发框架,接口的设计和api非常炫酷。由于是scala写的,所...

  • Spark的两种内存管理机制:静态内存管理与统一内存管理

    在利用Spark开发各类计算任务时,Executor内存的配置永远是重中之重,因此了解Spark的内存管理机制是非...

  • Spark Web UI详解

    spark Web UI的各tab页分别进行介绍: Jobs在提交spark任务运行后,日志中会输出trackin...

  • spark技术

    spark技术 1.spark core 基于RDD提供操作接口,利用DAG进行统一的任务规划 2.spark S...

  • Spark基础解析

    spark内置模块 Spark Core:实现了Spark的基本功能,包含任务调度、内存管理、错误恢复、与存储系统...

  • spark任务进度实时更新

    spree spree从spark web ui中获取正在运行的任务状态,从history server中获取已经...

  • 2019-03-16 Spark基本架构及运行原理

    Spark Core: 包含Spark的基本功能,包含任务调度,内存管理,容错机制等,内部定义了RDDs(弹性分布...

  • Spark组件简介

    Spark Core: 包含Spark基本功能,包括任务调度,内存管理,容错机制等 内部定义了RDDs(弹性分布式...

  • Spark运行架构(Python版)

    spark运行架构包括集群资源管理器(Cluster Manager)、任务控制节点(Driver)、运行作业任务...

  • aws spark集群web功能

    0 spark集群web功能被攻击 在使用aws提供的spark集群时,经常会用到spark集群的web功能,以便...

网友评论

  • yoga_haha:项目不错,Spark版本有点地低哦

本文标题:利用web管理spark任务

本文链接:https://www.haomeiwen.com/subject/lgjqnttx.html