我正在尝试启动 Amazon EMR 6.14.0 集群。
这是我的引导脚本set_up.sh:
#!/usr/bin/env bash
set -e
python3.11 -m pip install geopandas==0.14.0
但是,Amazon EMR 集群无法启动并有日志
ERROR: Could not find a version that satisfies the requirement geopandas==0.14.0 (from versions: 0.1.0.dev-a7b594e, 0.1.0.dev-a91e8ab, 0.1.0.dev-abb4137, 0.1.0.dev-c770a5c, 0.1.0.dev-fea5c40, 0.1.0.dev-1edddad, 0.1.0.dev-2be7de8, 0.1.0.dev-2d642e0, 0.1.0.dev-3ebcae0, 0.1.0.dev-6c816f0, 0.1.0.dev-40ec104, 0.1.0.dev-53f669a, 0.1.0.dev-120d5ee, 0.1.0.dev-189a35c, 0.1.0.dev-7788a17, 0.1.0.dev-8144a45, 0.1.0.dev-120828c, 0.1.dev0, 0.1.0, 0.1.1, 0.2, 0.2.1, 0.3.0, 0.4.0, 0.4.1, 0.5.0, 0.5.1, 0.6.0rc1, 0.6.0, 0.6.1, 0.6.2, 0.6.3, 0.7.0, 0.8.0, 0.8.1, 0.8.2, 0.9.0, 0.10.0, 0.10.1, 0.10.2)
ERROR: No matching distribution found for geopandas==0.14.0
geopandas 确实有 0.14.0 版本,位于 https://pypi.org/project/geopandas/0.14.0/
有什么想法吗?谢谢!
事实证明,Amazon EMR 6.14.0 默认使用 Python 3.7。
基于EMR上的自定义Python3版本,将引导脚本set_up.sh更改为
后#!/usr/bin/env bash
set -e
# Install Python 3.11.6
PYTHON_VERSION=3.11.6
sudo yum -y remove openssl-devel*
sudo yum -y install gcc openssl11-devel bzip2-devel libffi-devel tar gzip wget make expat-devel
wget https://www.python.org/ftp/python/${PYTHON_VERSION}/Python-${PYTHON_VERSION}.tgz
tar xzvf Python-${PYTHON_VERSION}.tgz
cd Python-${PYTHON_VERSION}
./configure \
--enable-loadable-sqlite-extensions \
--with-dtrace \
--with-lto \
--enable-optimizations \
--with-system-expat \
--prefix=/usr/local/python${PYTHON_VERSION}
sudo make altinstall
sudo /usr/local/python${PYTHON_VERSION}/bin/python3.11 -m pip install --upgrade pip
# Install geopandas 0.14.0
/usr/local/python${PYTHON_VERSION}/bin/python3.11 -m pip install geopandas==0.14.0
我可以安装geopandas 0.14.0并成功启动Amazon EMR集群。