AWS EMR:Zeppelin 从 python 2.7 获取 numpy 版本而不是更高版本
Posted
技术标签:
【中文标题】AWS EMR:Zeppelin 从 python 2.7 获取 numpy 版本而不是更高版本【英文标题】:AWS EMR: Zeppelin taking numpy version from python 2.7 instead of higher version 【发布时间】:2021-10-20 18:01:26 【问题描述】:我的 EMR (5.26.0) 集群上有 python 2.7(默认)和 python 3.6,下面是我的引导脚本。我正在安装 numpy 版本 1.18.5
,我可以看到它正在安装在引导日志中。但是在 python3 包中,我看到它正在选择来自 Python 2.7 的 numpy 1.14.5
。如果您看到下面的屏幕截图,我可以看到版本 1.18.5
dist。 python包目录中的文件,但二进制文件用于但实际的numpy版本有1.14.5
的文件。
我正在使用 zeppelin notebook,并通过设置以下变量将我的解释器 python 和 pyspark 属性更改为使用 python 3,但是
PYSPARK_PYTHON = '/usr/bin/python3'
PYSPARK_DRIVER_PYTHON = '/usr/bin/python3'
# In zeppelin interpretor
zeppelin.pyspark.python='/usr/bin/python3'
#!/usr/bin/env bash
python3 -m pip uninstall botocore --user
python3 -m pip uninstall boto3 --user
sudo python3 -m pip install --upgrade pip
sudo python3 -m pip install botocore==1.13.38 --user
sudo python3 -m pip install h5py
sudo python3 -m pip install keras==2.3.0
sudo python3 -m pip install keras_applications==1.0.8 --no-deps
sudo python3 -m pip install keras_preprocessing==1.1.2 --no-deps
sudo python3 -m pip install tqdm
sudo python3 -m pip install s3fs
sudp python3 -m pip install ipaddress==1.0.23
sudo python3 -m pip install netaddr==0.7.19
sudo python3 -m pip install matplotlib
sudo python3 -m pip install pyarrow
sudo python3 -m pip install boto3
sudo python3 -m pip install torch==1.6.0
sudo python3 -m pip install --upgrade scipy==1.4.1
sudo python3 -m pip install torchvision
sudo python3 -m pip install pydot
sudo python3 -m pip install xlrd
sudo python3 -m pip install xlwt
sudo python3 -m pip install pandas
sudo python3 -m pip install scikit-learn
sudo python3 -m pip install scikit-multilearn
sudo python3 -m pip install wrapt==1.12.0
sudo python3 -m pip install tensorflow==2.3.0
sudo python3 -m pip install tensorflow-gpu==2.0.0
sudo python3 -m pip install numpy==1.18.5
另外,当我列出包时,我看到它列出了1.18.5
,但是 numpy version 命令显示1.14.5
。
如何强制 Python 选择更高版本的 numpy?
【问题讨论】:
您使用哪种模式?纱线客户端或纱线集群? 集群模式@zjffdu 【参考方案1】:终于让它与 emr-5.31.0 及以下引导配置一起使用,5.31+ 默认为 Python 3 和 numpy 1.16.5,即使 env 中存在 python 2。所以我得到了默认的更高版本的 numpy,它解决了我的交叉依赖问题。
sudo python3 -m pip install h5py==2.10.0
sudo python3 -m pip install keras==2.3.1
sudo python3 -m pip install keras_applications==1.0.8 --no-deps
sudo python3 -m pip install keras_preprocessing==1.1.0 --no-deps
sudo python3 -m pip install tqdm==4.40.0
sudo python3 -m pip install s3fs
sudo python3 -m pip install ipaddress==1.0.23
sudo python3 -m pip install netaddr==0.7.19
sudo python3 -m pip install matplotlib
sudo python3 -m pip install pyarrow==0.12.1
sudo python3 -m pip install boto3
sudo python3 -m pip install torch==1.6.0
sudo python3 -m pip install --upgrade scipy==1.4.1
sudo python3 -m pip install torchvision
sudo python3 -m pip install pydot==1.4.1
sudo python3 -m pip install xlrd
sudo python3 -m pip install xlwt
sudo python3 -m pip install pandas==1.2.0
sudo python3 -m pip install scikit-learn
sudo python3 -m pip install scikit-multilearn
sudo python3 -m pip install wrapt==1.12.0
sudo python3 -m pip install tensorboard==2.1.0
sudo python3 -m pip install tensorflow==2.1.0
sudo python3 -m pip install tensorflow-estimator==2.1.0
【讨论】:
那么,您使用的是 python 2 的 numpy 版本吗?可以分享configs.json吗? , PYSPARK_PYTHON" 是 "/usr/bin/python" ? EMR 5.31 带有 numpy 1.16,在 spark 解释器中我设置了这些属性"PYSPARK_PYTHON":"/usr/bin/python3"
"PYSPARK_DRIVER_PYTHON":"/usr/bin/python3"
以上是关于AWS EMR:Zeppelin 从 python 2.7 获取 numpy 版本而不是更高版本的主要内容,如果未能解决你的问题,请参考以下文章
SparkSession 应用程序源代码配置属性未覆盖 AWS EMR 默认值上的 JupyterHub 和 Zeppelin
是否可以通过 IAM 角色限制从 EMR (zeppelin) 访问 S3 数据?
如何让 Zeppelin 在 EMR 集群上干净地重新启动?