[hadoop&spark]在hadoop集群上定制python环境

1、首先,在linux服务器上准备好需要的python环境(个人文件夹下只支持500m):

conda create -y -n pyspark_env -c conda-forge conda-pack python=3.6
conda activate pyspark_env
pip install -i https://mirrors.aliyun.com/pypi/simple/ pyspark==2.3.2 numpy pandas jieba
conda pack -f

将打包好的pyspark_env.tar.gz传到本机电脑上。

2、在hadoop平台上创建一个新任务,选择使用script任务,双击新加的script任务,在负责执行脚本的对应属性上增加如下代码:

./exec-hdfs-cmd.sh hdfs dfs -put pyspark_env.tar.gz hdfs:///user/xxxxx/pyenvs/

并增加节点属性:
user.to.proxy='abc'
azkaban.argument.script.user.execute=false

并在该任务对应的文件夹下上传sh文件和pyspark_env.tar.gz,其中sh文件内容如下:

#! /bin/bash
cmd_stmt=$@

echo "executeing command $cmd_stmt"
eval $cmd_stmt

这里就将python环境文件上传到hadoop系统上了。

3、创建需要使用该python环境的任务(spark),双击spark任务,并在节点属性上增加如下两行:

conf.spark.yarn.dist.archives=hdfs:///user/xxxxx/pyenvs/pyspark_env.tar.gz#py3
conf.spark.yarn.appMasterEnv.PYSPARK_PYTHON=py3/bin/python3.6

此时,该spark任务就有定制的python环境了。

posted @ 2021-04-06 10:37  justDoIT&  阅读(454)  评论(0编辑  收藏  举报