前言
本次部署是在单台机器10.57.17.215上部署,只部署了spark和livy;通过配置livy加载本地文件jar;然后通过livy rest api提交spark任务;
一、前置条件
1.安装spark: (部署参考:https://zyongjava.github.io/2019/12/24/Spark%E9%9B%86%E7%BE%A4%E9%83%A8%E7%BD%B2/)
2.安装hadoop(可选,没有使用本地文件测试)
二、安装部署
1)下载安装包
http://livy.incubator.apache.org/download/
2) 创建配置文件livy.conf
1 | cd apache-livy-0.7.0-incubating-bin/conf |
livy.conf
中修改内容如下:
1 | # What host address to start the server on. By default, Livy will bind to all network interfaces. |
3) 创建配置文件livy-env.sh
1 | cd apache-livy-0.7.0-incubating-bin/conf |
livy-env.sh
中新增内容如下:
1 | export SPARK_HOME=/usr/lib/spark |
4) 创建配置文件spark-blacklist.conf
1 | cd apache-livy-0.7.0-incubating-bin/conf |
spark-blacklist.conf
中修改内容如下(注释掉下面2行内容),让客户端可以配置这2个参数:
1 | # Disallow overriding the master and the deploy mode. |
5)启动程序
1 | cd apache-livy-0.7.0-incubating-bin |
6)验证测试
1 | http://10.57.17.215:8998/ui |
三、REST调用
API文档地址:http://livy.incubator.apache.org/docs/latest/rest-api.html
1)调用测试类
1 | import com.alibaba.fastjson.JSON; |
2)httpclient工具类
1 | import org.apache.commons.collections.MapUtils; |
3)实体对象
1 | import java.util.List; |
四、异常问题
问题:requirement failed: Local path /home/admin/apps/jars/etl.jar cannot be added to user sessions.
解决办法:修改livy.conf
配置
1 | livy.file.local-dir-whitelist = /home/admin/apps/jars/ |
五、代码地址
https://github.com/zyongjava/pomelo/tree/master/src/main/java/livy