zoukankan      html  css  js  c++  java
  • [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环境了。

  • 相关阅读:
    哲学的初步认识7
    随机法解决TSP问题
    哲学的初步认识6
    dfs+dp思想的结合------hdu1078
    动态规划3-------poj1050
    动态规划2-----hdu1069
    动态规划1-----------poj1080
    js中Math.round、parseInt、Math.floor和Math.ceil小数取整小结【转】
    美术馆
    无刷新评论
  • 原文地址:https://www.cnblogs.com/mj-selina/p/14620756.html
Copyright © 2011-2022 走看看