前言
上一篇使用yarn api的提交spark任务比较麻烦, 这次我们使用livy来提交spark任务。livy的使用十分简单,功能上比yarn api还要强大,支持提交spark代码片断,session共享
安装
- 下载livy,下载完成后进行解压。
- 配置conf/livy.conf文件,设置livy.spark.master = yarn。其他的配置项目,可以根据你的需要来配置,包括host和port等等
livy.spark.master = yarn
- 配置conf/livy-env.sh文件,主要是配置你spark的目录,当然你也可以配置一些环境变量,如HADOOP_USER_NAME
export SPARK_HOME=/usr/local/apache/spark-2.3.1-bin-hadoop2.6
- 启动
start-dfs.sh
start-yarn.sh
bin/livy-server start
- 访问页面 http://localhost:8998/
使用
livy提供了不少的api,可以参考官方文档http://livy.apache.org/docs/latest/rest-api.html
新建session
post http://localhost:8998/sessions
查看session状态
get http://localhost:8998/sessions
提交代码片断
post http://localhost:8998/sessions/0/statements
如果在同一个session,提交的代码片断是同享的,相当于你在同一个spark-shell里面进行操作
查看代码运行结果
get http://localhost:8998/sessions/0/statements/0
杀掉session
delete http://localhost:8998/sessions/0
提交spark任务
post http://localhost:8998/batches
查看spark任务结果
get http://localhost:8998/batches
下面是刚才运行开始的session和提交的spark任务,在yarn任务列表中可以看到。
总结
livy在使用上十分的简单,除提供rest api,还提供了jar,有兴趣的同学可以试试。