Как запустить сценарий Bash в качестве действия инициализации при создании кластера Datapro c? - PullRequest
2 голосов
/ 27 февраля 2020

Мне бы хотелось, чтобы кластер Datapro c загрузил созданную мной пользовательскую библиотеку, которая не может быть установлена ​​в pip, поэтому пользователю потребуется клонировать ее из облачного репозитория и затем выполнить sudo python setup.py install. Я попытался создать скрипт bash; кластер был создан без каких-либо проблем, но я не думаю, что он запускал скрипт bash, потому что я не заметил никаких изменений.

Вот мой bash скрипт, который я хочу инициализировать в кластер:

#! /bin/bash

# download jars
gsutil -m cp gs://dataproc-featurelib/spark-lib/*.jar .

# download credential files
gsutil -m cp gs://mlflow_feature_pipeline/secrets/*.json .

# install feature_library
gcloud source repos clone feature_library --project=<project_id>
cd feature_library
sudo python3 setup.py install
cd ../

Вот как я настраиваю свой кластер:

gcloud beta dataproc clusters create featurelib-cluster \
    --zone=us-east1-b \
    --master-machine-type n1-highmem-16 \
    --worker-machine-type n1-highmem-16 \
    --num-workers 4 \
    --image-version 1.4-debian9 \
    --initialization-actions gs://dataproc-initialization-actions/python/pip-install.sh,gs://dataproc-featurelib/initialization-scripts/dataproc_featurelib_init.sh \
    --metadata 'PIP_PACKAGES=google-cloud-storage hvac cryptography mlflow sqlalchemy snowflake-sqlalchemy snowflake-connector-python snowflake' \
    --optional-components=ANACONDA \
    --enable-component-gateway \
    --project <project_id> \
    --autoscaling-policy=featurelib-policy \
    --tags feature-lib \
    --no-address \
    --subnet composer-us-east1 \
    --bucket dataproc-featurelib

1 Ответ

1 голос
/ 28 февраля 2020

Я решил эту проблему, авторизовав учетную запись службы. Пример Bash Сценарий ниже:

#! /bin/bash

# download jars
gsutil -m cp gs://dataproc-featurelib/spark-lib/*.jar .

# download credential files
gsutil -m cp gs://mlflow_feature_pipeline/secrets/*.json .

# authenticate
gcloud config set account <gserviceaccount_email_id>
gcloud auth activate-service-account <gserviceaccount_email_id> --project=dao-aa-poc-uyim --key-file=<path_to_key_file>

# install package
gcloud source repos clone feature_library --project=<project_id>
cd feature_library
python3 setup.py install
cd ../
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...