spree
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=…