我想要一些清晰的图片。
我有2000条记录但是我在master中限制了1000条记录,用于使用带有gridSize = 250的rownum进行分区,并在10台机器上运行5个从属分区。
我假设将创建1000/250 = 4步。
答案 0 :(得分:0)
由于您没有显示Partitioner
代码,我会尽量回答假设。
您不必假设步骤数量(我假设将创建1000/250 = 4个步骤),它将是您在java.util.Map<java.lang.String,ExecutionContext>
中创建的条目数量您从partition
Partitioner Interface方法返回。
partition
方法将gridSize
作为参数,由您决定是否使用此参数,如果您决定根据其他参数进行分区(而不是均匀分配计数),那么你可以做到这一点。最终,分区数将是返回映射中的条目数,ExecutionContext
中存储的值可用于在读取器中获取数据等。
接下来,您可以通过设置相应的TaskExecutor
和concurrencyLimit
值来选择要并行启动的步骤数,即您可以在partition
中创建100个步骤,但只想启动4个步骤并行步骤,并且可以通过分区器顶部的配置设置很好地实现。
回答#1:正如已经指出的那样,您必须使用在分区程序中创建的ExecutionContext
信息在阅读器中对数据进行编码。它不会自动发生。
回答#2:不确定你究竟是什么意思但是,完成后所有内容都会被释放,信息会保存在元数据中。
回答#3:正如已经指出的那样,所有步骤都将为所有数据一次创建。可以通过读取器和配置来控制哪些数据以及并行运行的数据的步骤。
希望它有所帮助!!