python操作livy:将python环境作为archives包传递给spark

为什么要用Livy

Livy是一个用于与Spark交互的开源REST接口。

通过Livy可以将上层应用系统与底层的大数据平台连接起来,比如在前段界面点一个“开始运算”,来启动大数据平台执行运算。

其中发送命令告诉大数据平台开始运算的功能就是由Livy来负责的。

使用Livy之前,都是用xshell登录到hadoop-master的容器里,执行spark-submit xxx命令来执行计算。这种方法是纯粹手动的方式,不能做成系统级别的应用。

Livy提交python程序

livy有session和batch两种方式。如果已经写好了python程序,直接选用batch模式即可。

通过livy可以用rest api的方式调用pyspark的程序。

通常的操作是进入到hadoop-master里,然后在hadoop-master里用curl来测试API,然后在8988界面里查看状态。

传递python环境

复杂一点的程序,都会用到大量的python包,如何通过livy的方式将python包作为参数传递给spark呢?

 

方法如下:

1. 将python包上传到HDFS上。

2. 通过livy里的conf参数指定driver的python环境变量spark.yarn.appMasterEnv.PYSPARK_PYTHON

pyspark需要的python环境包可以通过archives的方式传进去,并在conf里指定python的路径:

curl -X POST --data '{"file": "hdfs:///test_code/pi_v1.py","args":["2"],"archives":["hdfs:///test_model/py3env.zip#py3"], "conf":{"spark.yarn.appMasterEnv.PYSPARK_PYTHON":"py3/py3env/bin/python3"}}' -H "Content-Type:  application/json" localhost:8998/batches

成功:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值