一、扫盲
这篇文章很好的解释了如下几个问题:
- spark on Yarn 是什么?
- pyspark application 的运行原理是什么?
- pyspark application 如何在 Yarn 运行?
二、实际
- 将python环境打包
cd path_to_python
*注意这里要进入python目录下打包,否则整个路径(就是python所在的路径)都会被打包,后面解压的时候,python前面会出现超长路径,不能正常解析报错
zip -r path_to_pythonzip/python_user.zip ./*
- 将python环境上传至hdfs
hadoop fs -put python_user.zip
- 修改spark配置文件
配置spark-defualts.config 文件,使得python上传后,在进行spark-submit时,会自动分发python环境的包到各个工作节点。
cp spark-defaults.conf spark-user.conf # 修改相关配置 spark.yarn.dist.archives path_to_hdfs/python_user.zip#python
* 注意最后面的 #python 不能删掉,他大概会在这个zip解压后的路径下找到python路径,然后命名为python。这涉及到配置文件中pyspark 的 python 能否找对
- 修改提交脚本
#!bin/bash spark-submit --master yarn \ --driver-memory 4G --executor-memory 12G \ --properties-file conf/spark-user.conf \ --py-files other_dependence.py main.py
三、运行结果
简单运行一下,输出python环境中的gensim版本