INFO-python/pysaprk环境对接

适用模块
离线开发
具体说明
如果客户有额外的依赖包需求,需由客户自行提供相应的conda打包文件,网易侧负责配置对接使用
具体说明
中台对接python conda 虚拟环境
注意事项
conda 环境使用 conda install 进行额外模块的安装,不要使用 pip install,用 pip 安装可能会在 conda 打包后丢失某些系统依赖导致不可用
使用示例
场景一、中台环境部署python环境
1、采用conda 构建 python虚拟环境
a、在azkaban exec节点上执行以下操作,用azkaban 运维账号执行 (目的是使安装的目录有读取权限)
b、执行 curl -k https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-py39_4.9.2-Linux-x86_64.sh > Miniconda3-py39_4.9.2-Linux-x86_64.sh
INFO-python/pysaprk环境对接 - 图1
c、执行安装命令 bash Miniconda3-py39_4.9.2-Linux-x86_64.sh 设置安装目录为/usr/easyops/miniconda3
INFO-python/pysaprk环境对接 - 图2
d、conda创建虚拟环境,并安装必要包
注释:
指定python=3.9 不然可能会在后续 conda pack时失败(小版本会随时间变化,比如3.9.18 \ 3.9.17)
部署目录授权azkaban 授权并切换azkaban 账号执行后续操作
初始化环境变量:source /usr/easyops/miniconda3/etc/profile.d/conda.sh
安装虚拟化环境:conda create -y -n pyspark_env -c conda-forge pyarrow pandas conda-pack python=3.9
INFO-python/pysaprk环境对接 - 图3
2、配置mammut
配置样例
INFO-python/pysaprk环境对接 - 图4
INFO-python/pysaprk环境对接 - 图5
activate_cmd样例 . /usr/easyops/miniconda3/etc/profile.d/conda.sh && conda activate pyspark_env (注意:符号 . 后需要一个空格)
执行conda env list, conda create 命令-n 参数值pyspark_env 对应的路径
INFO-python/pysaprk环境对接 - 图6
deactivate_cmd:conda deactivate 固定内容
version:执行conda activate pyspark_env进入环境后执行 python --version
INFO-python/pysaprk环境对接 - 图7
3、同步重启mammut、azkaban 服务
场景二、对接其他环境已打包的虚拟环境
1、conda 导出包拷贝到azkaban执行节点
conda-pack -n python3-demo -o python3-demo.tar.gz
解压到指定的部署目录,比如 /usr/easyops/pyspark_env,该目录需提前创建并给azkaban用户授权
tar zxvf python3-demo.tar.gz -C /usr/easyops/pyspark_env/
2、配置mammut
配置样例
INFO-python/pysaprk环境对接 - 图8
env_path:包解压的目标路径如:/usr/easyops/pyspark_env/
activate_cmd 例如:source ${env_path}/bin/activate
deactivate_cmd 例如:source ${env_path}/bin/deactivate
version:执行source ${env_path}/bin/activate 后执行 python --version
3、同步重启mammut、azkaban 服务
场景三、新版pysaprk使用示例
注:该环境使用的压缩包可使用方案一打包的环境,或方案二其他环境打包的环境、或EasyData-V8.0-Update01升级包目录带的
INFO-python/pysaprk环境对接 - 图9
1、mammut新增配置组以及配置如下:
INFO-python/pysaprk环境对接 - 图10
2、同步重启mammut、azkaban 服务,平台验证
INFO-python/pysaprk环境对接 - 图11
3、验证示例:代码见本文附件1
INFO-python/pysaprk环境对接 - 图12
场景四、旧版pysaprk使用示例
1、准备python环境
参照场景一或场景二 生成python虚拟环境
2、打包环境 (建议tar.gz格式)
切换至anaconda3/envs目录下
示例:tar -zcvf pyspark3.6.tar.gz pyspark3.6
3、上传环境至hdfs
文件比较大,无法通过猛犸的web页面上传,只能通过hadoop客户端上传
hdfs dfs -put pyspark3.6.tar.gz /user/项目名/xxx/
4、配置pyspark任务
如下所示将传参信息打印并查询hive表数据 验证示例:代码见本文附件2:
INFO-python/pysaprk环境对接 - 图13
INFO-python/pysaprk环境对接 - 图14
INFO-python/pysaprk环境对接 - 图15
INFO-python/pysaprk环境对接 - 图16
INFO-python/pysaprk环境对接 - 图17
spark配置参数说明(需要传递给spark的参数需要设置前缀conf.):
conf.spark.yarn.dist.archives=hdfs://easyops-cluster/user/bdms/pyspark3.6.tar.gz#envs
实际压缩包名称根据自己打包环境决定
压缩的文件会被提取到executor到工作目录下面去,后面到#envs表示,这个文件被解压成到文件名称
conf.spark.yarn.appMasterEnv.PYSPARK_PYTHON=envs/pyspark3.6/bin/python3.6
指定python的环境

作者:林帅