【发布时间】:2021-05-02 14:46:34
【问题描述】:
为了加快集群实例化时间,我创建了一个自定义映像,其中所有附加依赖项都使用可用于 dataproc 映像 1.5.34-debian10 的 miniconda3 安装。 (我按照这里的步骤:GCP Dataproc custom image Python environment 以确保我使用了正确的 python 环境)。
但是,当我使用 --optional-components ANACONDA,JUPYTER 启动我的集群时,我的自定义依赖项被删除,我只剩下 anaconda 和 jupyter 的基本安装。我假设 anaconda 安装正在覆盖我的自定义依赖项。有什么方法可以确保我的依赖项不会被覆盖?如果没有,是否可以将 anaconda 和 jupyter 安装为我的自定义 dataproc 映像的一部分?
我使用以下命令创建自定义图像:
python3 generate_custom_image.py \
--image-name test-dataproc-image-1 \
--dataproc-version 1.5.34-debian10 \
--customization-script ./pip-install.sh \
--zone <my_zone> \
--gcs-bucket <my_gcs_bucket> \
--subnet <my_subnet> \
--metadata 'PIP_PACKAGES="dask[distributed] dask-yarn==0.8 google-cloud-pubsub==2.4.1 kneed==0.7.0 google-cloud-secret-manager==2.4.0 pandas-gbq==0.15.0 pyarrow==3.0.0 leidenalg==0.8.4 cdlib==0.2.0 bigquery==0.0.12 google-cloud-storage==1.37.1 facebook_business pyemd==0.5.1 pysftp==0.2.9 gensim==4.0.1 wordcloud==1.8.1 spacy==2.3.0 https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-2.3.0/en_core_web_sm-2.3.0.tar.gz --ignore-installed PyYAML"'
--no-smoke-test
下面是我的自定义脚本 pip-install.sh 的内容:
which python
# Activate miniconda3 optional component.
cat >>/etc/google-dataproc/dataproc.properties <<EOF
dataproc.components.activate=miniconda3
EOF
export BDUTIL_DIR=/usr/local/share/google/dataproc/bdutil
bash /usr/local/share/google/dataproc/bdutil/components/activate/miniconda3.sh
source /etc/profile.d/effective-python.sh
# Now this is /opt/conda/default/bin/python
which python
apt update
apt install python3-pip -y
python -m pip install --upgrade ${PACKAGES}
【问题讨论】:
-
apt install python3-pip -y对我来说似乎不正确,你不需要安装它,你想使用/opt/conda/default/bin/pip。 -
自定义镜像中新增了自定义Anaconda/Miniconda的可复用脚本,你可以试试github.com/GoogleCloudDataproc/custom-images/blob/master/…
-
谢谢,customize_conda.sh 脚本有效。我不确定如何将问题标记为已回答,我应该添加一个指向您评论的答案吗?
-
很高兴知道它有效。让我发布一个答案。
标签: python-3.x anaconda google-cloud-dataproc