Можно ли в любом случае использовать вытесняемый экземпляр для заданий потока данных? - PullRequest
2 голосов
/ 09 февраля 2020

Очевидно, что выкупаемый экземпляр дешевле, чем не выкупаемый. Ежедневно в моем организационном проекте выполняется 400-500 заданий потока данных. Из которых некоторые работы чувствительны ко времени, а другие нет. Таким образом, есть ли способ, которым я мог бы использовать вытесняемый экземпляр для работы без временных ограничений, что обойдется мне дешевле для общего выполнения конвейера. В настоящее время я выполняю задания потока данных с указанной ниже конфигурацией.

        options.setTempLocation("gs://temp/");
        options.setRunner(DataflowRunner.class);
        options.setTemplateLocation("gs://temp-location/");
        options.setWorkerMachineType("n1-standard-4");
        options.setMaxNumWorkers(20);
        options.setWorkerCacheMb(2000);

Я не могу найти какие-либо параметры конвейера с настройкой вытесняемого экземпляра.

1 Ответ

4 голосов
/ 09 февраля 2020

Да, это можно сделать с помощью Гибкое планирование ресурсов в облачном потоке данных ( документы ). Обратите внимание, что есть несколько вещей, которые следует учитывать:

  • Отложенное выполнение : задания планируются и не выполняются сразу (вы можете увидеть новый QUEUED status для ваших заданий потока данных). Они запускаются оппортунистически, когда ресурсы доступны в течение шестичасового окна . Это делает FlexRS подходящим для снижения затрат на не критичных ко времени рабочих нагрузок . Кроме того, обязательно проверьте свой код перед отправкой задания.
  • Пакетные задания : на данный момент он принимает только пакетные задания и требует включения автомасштабирование :

    Вы не можете установить autoscalingAlgorithm = НЕТ

  • Переполнение потока данных : необходимо включить . При этом данные не сохраняются на постоянных дисках, подключенных к виртуальным машинам. Таким образом, когда происходит вытеснение и ресурсы требуются обратно, нет необходимости перераспределять данные.
  • Области : согласно предыдущему элементу, только области , где Dataflow Shuffle имеет значение поддерживается . Список здесь , сведения о новых регионах будут объявлены в заметках о выпуске . На данный момент зона автоматически выбирается внутри региона.
  • Типы машин : FlexRS в настоящее время поддерживает n1-standard-2 (по умолчанию) и n1-highmem-16.
  • SDK : требуется 2.12.0 или новее для Java или Python.
  • Квота : квота зарезервирована заранее (т. е. задания в очереди также используют квоту).

Чтобы запустить it, используйте --flexRSGoal=COST_OPTIMIZED и убедитесь, что остальные параметры соответствуют требованиям FlexRS.

A единая ставка дисконтирования применяется к заданиям FlexRS, данные о ценах можно сравнить в по ссылке .

Обратите внимание, что вы можете увидеть отказ от бета-версии в документации, не относящейся к Engli sh, но, как поясняется в примечаниях к выпуску , это Обычно доступны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...