Даже если вы указываете флаг "--autoscalingAlgorithm = NONE", вы также используете Streaming Engine , который является типом автоматического масштабирования.
Я провел тест, используя это Быстрый запуск , при использовании Streaming Engine:
mvn -Pdataflow-runner compile exec:java \
-Dexec.mainClass=org.apache.beam.examples.WordCount \
-Dexec.args="--project=support-data-ez \
--stagingLocation=gs://datacert/staging/ \
--output=gs://datacert/output \
--runner=DataflowRunner \
--autoscalingAlgorithm=NONE \
--numWorkers=90 \
--workerMachineType=n1-highmem-4
--enableStreamingEngine=true \
"
Я экспериментировал с тем же поведением.
Вы также должны убедиться, что квота была достигнута.
При превышении квоты поток данных сбрасывает флаг "--numWorkers = 90" и будет определять соответствующее количество работников. Итак, учтите и этот фактор.
mvn -Pdataflow-runner compile exec:java \
-Dexec.mainClass=org.apache.beam.examples.WordCount \
-Dexec.args="--project=support-data-ez \
--stagingLocation=gs://datacert/staging/ \
--output=gs://datacert/output \
--runner=DataflowRunner \
--autoscalingAlgorithm=NONE \
--numWorkers=58 \
--workerMachineType=n1-standard-1
--enableStreamingEngine=false \
Как вы можете видеть при использовании количества рабочих (или процессоров), которые не превышают мою квоту и отключив функцию Streaming Engine, я смог использовать всех указанных рабочих.