使用REST接口调用Spark——Apache Livy使用笔记

0x0 Livy安装与运行

登录官网:http://livy.incubator.apache.org/
下载最新版 livy。
1. 解压
2. 配置:在conf/livy-env.sh中添加:

export SPARK_HOME=path/to/spark
export HADOOP_CONF_DIR=/etc/hadoop/conf
  1. 进入bin文件执行
#前台模式,可观察程序运行日志
./livy-server
#后台模式
./livy-server start

启动服务。
注意:如果报错说无法创建日志文件,则创建相应的日志文件的路径,然后重启livy。

0x1 使用

当成功启动livy服务后,打开浏览器,输入:
localhost:8998
登录livy页面,可见如下页面:
这里写图片描述

livy支持两种两种任务提交方案:
1、交互式:说白了,就是把原本在spark-shell里面执行的语句,通过http请求发送到livy服务端,然后livy在服务端开启spark-shell执行你传过来的语句;
2、批处理式:说白了,帮你做spark-submit的工作,同样通过http请求吧参数发到livy服务端。

1.1 交互式使用方法

工具采用postman,首先新建一个session(其实就是开启一个spark application):请求方式post,请求URL为 livy-ip:8998/sessions
请求体类似如下格式:

{
    "kind": "spark",
    "conf" : {
        "spark.cores.max" : 4,
        "spark.executor.memory" : "512m"
    }
}

这里写图片描述
就是利用postman发送一个post请求,请求体是json格式,json中可以指定appName,申请多少内存,申请多少cpu等信息。
然后会受到响应:
这里写图片描述
可以看到,开启了一个session,他的id=1。
接下来,我们可以向该session发送scala语句进行执行,请求方式post,请求URL为 livy-ip:8998/sessions/{id}/statements:
这里写图片描述
可以得到一个响应:
这里写图片描述
可以看到,这里的id=0,是指该statments的id
然后在发送另一个请求来查看输出,请求方式get,请求url为livy-ip:8998/sessions/1/statements/0:
这里写图片描述
可以得到响应:
这里写图片描述
其中,output中的data就是输出的具体数据,progress是指进度,有时候查出来progress小于1,说明任务还没执行完。

未完待续

猜你喜欢

转载自blog.csdn.net/gx304419380/article/details/79868404
今日推荐