spark任务进度实时更新与聚合

新博客文章地址

spree

spark任务进度实时更新与聚合_第1张图片

spree从spark web ui中获取正在运行的任务状态,从history server中获取已经运行结束的状态信息并将这些数据写入MongoDB,可以实现动态任务更新。

因为把运行日志进行了聚合,所以查看线上正在运行的任务也不再需要ssh端口转发,只要把该页面配置个代理就OK了

spree安装部署

环境

已安装git,npm

安装Spree

git clone --recursive https://github.com/hammerlab/spree.git
cd spree/ui   # the Spree Meteor app lives in ui/ in this repo.
meteor        # 安装meteor后运行

开启后可以访问http://localhost:3000

这里写图片描述

安装Meteor

将会被安装在~/.meteor

启动脚本在/usr/local/bin/meteor,因此可以直接输入meteor使用

curl https://install.meteor.com/ | sh

安装slim

启动脚本在/usr/bin/slim

npm install -g slim.js
slim

如果在启动meteor前启动slim,则会报错,因为连不到mongoDB:

/usr/local/lib/node_modules/slim.js/node_modules/mongodb/lib/server.js:228
        process.nextTick(function() { throw err; })
                                      ^
AssertionError: null == { [MongoError: connect ECONNREFUSED 127.0.0.1:3001]
  name: 'MongoError',
  message: 'connect ECONNREFUSED 127.0.0.1:3001' }

使用spree

spark1.5以上版本可以使用packages(需要网络)

spark-shell/spark-submit 
--packages org.hammerlab:spark-json-relay:2.0.0 
--conf spark.extraListeners=org.apache.spark.JsonRelay 
--conf spark.slim.host=xxx  #启动slim的节点,默认为localhost

通用版本

获取JsonRelay

wget https://repo1.maven.org/maven2/org/hammerlab/spark-json-relay/2.0.0/spark-json-relay-2.0.0.jar

JsonRelay加入driver的classpath(或是加入spark-env.sh)的class-path中

--driver-class-path /path/to/spark-json-relay-2.0.0.jar

运行时提交参数

spark-shell/spark-submit 
--jars /usr/install/spark/lib/spark-json-relay-2.0.0.jar 
--conf spark.extraListeners=org.apache.spark.JsonRelay
--conf spark.slim.host=192.168.47.214

通用参数

加入jar包,将JsonRelay注册成SparkListener

--jars /path/to/spark-json-relay-2.0.0.jar
--conf spark.extraListeners=org.apache.spark.JsonRelay

指向启动slim的实例; 默认为: localhost:8123

--conf spark.slim.host=…
--conf spark.slim.port=…

运行效果

更多运行截图

项目地址

你可能感兴趣的:(spark,spree)