Как создать собственное изображение dataproc на основе предварительного просмотра - PullRequest
0 голосов
/ 20 февраля 2019

Я пытался создать собственное изображение Dataproc в GCP.Он отлично работает с базовым изображением в стабильной версии (например, 1.3.24).Однако, если я укажу базовое изображение, которое находится в режиме предварительного просмотра (например, 1.4.0), я получу следующие сообщения об ошибках:

, если указать одно из следующих значений как --dataproc-version,

  • 1.4.0-deb9
  • 1.4.0
  • 1.4

Я получу RuntimeError: ('Cannot find dataproc base image with dataproc-version=%s.', '<the specified version>')

, если указать одно изследующее как --dataproc-version

  • 1.4.0-RC8
  • 1.4.0-RC8-deb9

Я получаю generate_custom_image.py: error: argument --dataproc-version: Invalid version: <the specified version>.

Поэтому вопросМожно ли создать собственное изображение Dataproc на основе предварительного выпуска?Если да, то как мне указать --dataproc-version?

Большое вам спасибо

Ответы [ 3 ]

0 голосов
/ 21 февраля 2019

Согласно исходному коду generate_custom_image.py

47 # Old style images: 1.2.3
48 # New style images: 1.2.3-deb8
49 _VERSION_REGEX = re.compile(r"^\d+\.\d+\.\d+(-.{4})?$")

Только 1.4.0-deb9 может соответствовать регулярному выражению, но 1.4.0-RC10-deb9 не будет соответствовать.

Если вы хотите использовать предварительный выпуск, вам нужно изменить регулярное выражение в generate_custom_image.py

Обновление: я отправил запрос на извлечение для изображения dataproc cumstom

0 голосов
/ 24 февраля 2019

Спасибо за сообщение и исправление этого!Обратите внимание, что версия Python была изменена с 3,7 до 3,6 в последней версии образа в соответствии с this .

0 голосов
/ 20 февраля 2019

При использовании CLI я получаю следующую ошибку:

ОШИБКА: (gcloud.dataproc.clusters.create) INVALID_ARGUMENT: Не удалось разрешить версию изображения '1.4'.Принятые версии изображений: [0.1, 0.2, 1.0, 1.0-deb9, 1.1, 1.1-deb9, 1.2, 1.2-deb9, 1.3, 1.3-deb9, предварительный просмотр].См. https://cloud.google.com/dataproc/docs/concepts/versioning/dataproc-versions для получения дополнительной информации о версиях изображений.

Итак, если я использую preview, он работает и создает один с 1.4.0-RC10-deb9:

gcloud dataproc clusters create cluster-name --image-version preview

РЕДАКТИРОВАТЬ: в отношении пользовательских изображений

После проверки того, что скрипт делает, он извлекает изображения с использованием этого фильтра .Если мы просто перечислим все из них, мы увидим доступные, такие как:

$ gcloud compute images list --project cloud-dataproc
...
dataproc-1-4-deb9-20190213-000000-rc01                cloud-dataproc                                                   READY

Один из возможных способов выбрать этот - заменить строки 122-123 из generate_custom_image.py на:

filter_arg = "--filter=name:dataproc-1-4-deb9-20190213-000000-rc01"

и вызовите скрипт с фиктивной версией для регулярного выражения:

python generate_custom_image.py --dataproc-version 1.2.0 ...
...