Spark集群,多个版本Python/Python Package管理
来源:互联网 发布:淘宝网用别人身份证 编辑:程序博客网 时间:2024/06/05 04:37
文章转载自:http://blog.csdn.net/gongbi917/article/details/52369025
仅用于个人学习备忘收藏,转载请注明原文地址
进年来,越来越多的数据科学家、分析人员、数据工程师运用Python语言进行数据分析和机器学习。Spark在0.7版本开始支持Python语言(PySpark)。
相比于Scala/Java, Python语言更适合互动的探索性分析,拥有内置的图形化工具以及丰富的机器学习库。Scala/Java的优势在于平台独立,代码和第三方库易于打包到Jar文件,更好的执行效率。当我们使用PySpark时则会失去以上优势,尤其是在集群环境管理不同的Python版本和第三方库。
具体问题:
- 不同的数据分析人员/开发团队需要不同版本的Python版本执行PySpark。
- 同一Python版本下,需要安装多个Python库,甚至需要不同版本的库。
针对问题2的一个解决办法是将Python依赖库打包成*.egg文件,在运行pyspark或者spark-submit时使用–py-files加载egg文件。此解决方案的问题在于许多Python库都包含native code,编译时对平台依赖,并且对于一些复杂依赖的库(如Pandas),编译失败。
如果不使用*.egg文件,则需要安装不同Python版本极其所需库在集群中的每一台机器,然后在运行Spark时指定所需Python的路径。
解决方案
使用Anaconda管理多个Python环境在集群中的每一个节点
1. Anaconda 安装 https://www.continuum.io
- 1
- 2
(此安装包默认为python3.5, 注意anaconda在每个节点的安装路径需要一致)
2. 创建多个Anaconda Python环境
创建,每行命令最后的参数anaconda
是指定安装所有anaconda python package
- 1
- 2
复制anaconda环境, 并在此环境中安装python thrift package
- 1
使用指定的Python环境运行Spark
Client Mode: PYSPARK_PYTHON = /opt/anaconda/bin/conda/py27b/python
Cluster Mode: spark.yarn.appMasterEnv.PYSPARK_PYTHON = /opt/anaconda/bin/conda/py27b/python
设置Spark默认Python环境
修改spark-env.sh
- Spark集群,多个版本Python/Python Package管理
- Spark集群,多个版本Python/Python Package管理
- Spark集群,多个版本Python/Python Package管理
- python多版本安装package
- 使用 pyenv 管理多个python版本
- Python学习:pythonbrew管理多个版本的python
- 在ubuntu下pyenv管理python的多个版本
- 使用 pyenv 管理多个版本 python 环境
- Linux Python 多版本管理
- Centos 多版本python管理
- spark 集群运行python作业
- Python多个版本安装!
- 配置多个python版本
- jupyter 多个python版本
- <SPARK-轉載> spark 集群运行python作业
- 多版本Python共存时pip给指定版本的python安装package的方法
- 多版本Python共存时pip给指定版本的python安装package的方法
- pyenv-python版本管理
- HR4982是一种便于使用的内部集成了译码器的微特步进电机驱动器
- 我们真的需要前端框架吗??
- osi模型
- VIM插件: NERDTREE[树形目录]
- 牛客练习赛8
- Spark集群,多个版本Python/Python Package管理
- sqoop常见错误
- tom JVM 内存溢出解决办法
- 设计模式<一>适配器模式
- 点天灯
- 中国省市区脚本
- flume+kafka收集业务日志
- 【转】英文单词训练
- 二分查找(while循环)