一、背景说明
单机执行pyspark(python on spark)非常简单,只要在脚本所在服务器上部署个python环境或Anaconda这种集成运行环境,再通过python3命令执行就完了。
而想将python提交到spark集群中运行,则有两种方法,一种是在每个spark结点上部署python环境,在spark低版本与python集成没那么完善的时候,集群结点数又不多的情况下,的确可以这么干(实际上我就这么干过),这种方式比较大的优势是每次执行pyspark任务时,不用分发python环境,会比接下来说的第二种方法快那么一丢丢。而缺点就显而易见的,就是太难维护了:python环境增加依赖时,需求每个结点都安装依赖;集群添加新spark结点时,又要另外部署python环境。这不是扯蛋吗?
在经历了第一种方式的折磨后,终于用上了第二种方法,就是先将python环境打包放到HDFS中,然后稍微修改一下执行脚本,即可方便地以集群的方式执行pyspark脚本了。
以下以使用Anaconda为例构建python虚拟环境,其他虚拟环境大同小异。
二、构建python虚拟环境
1、到anaconda官网下载anaconda;(我下载的是Anaconda3-2019.10-Linux-x86_64.sh);
2. 在该目录下,执行Anaconda3-2019.10-Linux-x86_64.sh ,安装A