Dataflow 自动缩放:使用 DataflowPipelineOptions 设置
要通过 DataflowPipelineOptions 设置自动缩放,您需要使用以下几个选项:
-
设置 'workerMachineType' 选项,指定 Dataflow 工作器使用的机器类型。例如,可以将其设置为 'n1-standard-4',表示使用 n1 标准型机器。
-
设置 'numberOfWorkerHarnessThreads' 选项,指定 Dataflow 工作器使用的线程数。较高的线程数可以提高处理速度。
-
设置 'maxNumWorkers' 选项,指定 Dataflow 作业的最大工作器数量。根据您的需求和预算,可以设置适当的值。
-
设置 'autoscalingAlgorithm' 选项,指定自动缩放算法。可以选择 'THROUGHPUT_BASED' 或 'NONE'。'THROUGHPUT_BASED' 表示根据作业的吞吐量自动调整工作器数量,'NONE' 表示禁用自动缩放。
-
设置 'autoscalingTargetThroughput' 选项,指定自动缩放的目标吞吐量。对于 'THROUGHPUT_BASED' 算法,Dataflow 将根据此目标自动调整工作器数量。
下面是一个示例代码,演示如何使用 DataflowPipelineOptions 设置自动缩放:
import org.apache.beam.sdk.options.Default;
import org.apache.beam.sdk.options.Description;
import org.apache.beam.sdk.options.PipelineOptions;
import org.apache.beam.sdk.options.Validation.Required;
import org.apache.beam.sdk.options.ValueProvider;
public interface MyPipelineOptions extends PipelineOptions {
@Description("Worker machine type")
@Default.String("n1-standard-4")
String getWorkerMachineType();
void setWorkerMachineType(String value);
@Description("Number of worker harness threads")
@Default.Integer(4)
Integer getNumberOfWorkerHarnessThreads();
void setNumberOfWorkerHarnessThreads(Integer value);
@Description("Max number of workers")
@Required
Integer getMaxNumWorkers();
void setMaxNumWorkers(Integer value);
@Description("Autoscaling algorithm")
@Default.String("THROUGHPUT_BASED")
String getAutoscalingAlgorithm();
void setAutoscalingAlgorithm(String value);
@Description("Autoscaling target throughput")
@Default.Integer(1000)
Integer getAutoscalingTargetThroughput();
void setAutoscalingTargetThroughput(Integer value);
}
您可以在 Pipeline 代码中使用这些选项:
MyPipelineOptions options = PipelineOptionsFactory.fromArgs(args).withValidation().as(MyPipelineOptions.class);
options.setWorkerMachineType("n1-standard-8");
options.setNumberOfWorkerHarnessThreads(8);
options.setMaxNumWorkers(20);
options.setAutoscalingAlgorithm("THROUGHPUT_BASED");
options.setAutoscalingTargetThroughput(2000);
Pipeline pipeline = Pipeline.create(options);
...
请注意,自动缩放的效果取决于您的作业和数据的特性,以及所使用的机器类型和配置。建议在实际运行之前进行测试和优化。
原文地址: https://www.cveoy.top/t/topic/o6Zv 著作权归作者所有。请勿转载和采集!