/** * Groups the taskModels into set of {@link ContainerModel} using the metadata of * the job from {@link GrouperMetadata}. * * @param taskModels the set of tasks to group into containers. * @param grouperMetadata provides the historical metadata of the samza job. * @return the grouped {@link ContainerModel} built from the provided taskModels. */ default Set<ContainerModel> group(Set<TaskModel> taskModels, GrouperMetadata grouperMetadata) { return group(taskModels); }
public Set<ContainerModel> group(Set<TaskModel> taskModels, GrouperMetadata grouperMetadata) { if (this.standbyTasksEnabled) { return generateStandbyTasks(this.taskNameGrouper.group(taskModels, grouperMetadata), replicationFactor); } else { return this.taskNameGrouper.group(taskModels, grouperMetadata); } }
@Override public TaskNameGrouper build(Config config) { return new GroupByContainerCount(config); } }
@Test(expected = IllegalArgumentException.class) public void testShouldFailWhenProcessorLocalityIsEmpty() { TaskNameGrouper taskNameGrouper = buildSimpleGrouper(3); GrouperMetadataImpl grouperMetadata = new GrouperMetadataImpl(new HashMap<>(), new HashMap<>(), new HashMap<>(), new HashMap<>()); taskNameGrouper.group(new HashSet<>(), grouperMetadata); }
@Test(expected = IllegalArgumentException.class) public void testGroupEmptyTasks() { buildSimpleGrouper(1).group(new HashSet()); }
@Override public TaskNameGrouper build(Config config) { return new GroupByContainerIds(new JobConfig(config).getContainerCount()); } }
private TaskNameGrouper buildSimpleGrouper(int containerCount) { return new GroupByContainerIdsFactory().build(buildConfigForContainerCount(containerCount)); }
private TaskNameGrouper buildSimpleGrouper() { return buildSimpleGrouper(1); }
@Test public void testBuddyContainerBasedGenerationForVaryingRF() { testBuddyContainerBasedGeneration(1); testBuddyContainerBasedGeneration(2); testBuddyContainerBasedGeneration(3); }
default Set<ContainerModel> group(Set<TaskModel> tasks, List<String> containersIds) { return group(tasks); } }
@Override public TaskNameGrouper build(Config config) { return new GroupByContainerCount(config); } }
public Set<ContainerModel> group(Set<TaskModel> taskModels, List<String> containersIds) { if (this.standbyTasksEnabled) { return generateStandbyTasks(this.taskNameGrouper.group(taskModels, containersIds), replicationFactor); } else { return this.taskNameGrouper.group(taskModels, containersIds); } }
@Test(expected = IllegalArgumentException.class) public void testGroupWithEmptyContainerIds() { Set<TaskModel> taskModels = generateTaskModels(5); buildSimpleGrouper(2).group(taskModels, Collections.emptyList()); }
default Set<ContainerModel> group(Set<TaskModel> tasks, List<String> containersIds) { return group(tasks); } }
@Override public TaskNameGrouper build(Config config) { return new GroupByContainerCount(config); } }
default Set<ContainerModel> group(Set<TaskModel> tasks, List<String> containersIds) { return group(tasks); } }
@Override public TaskNameGrouper build(Config config) { return new GroupByContainerCount(config); } }
default Set<ContainerModel> group(Set<TaskModel> tasks, List<String> containersIds) { return group(tasks); } }
@Override public TaskNameGrouper build(Config config) { return new GroupByContainerCount(new JobConfig(config).getContainerCount()); } }
/** * Group the taskModels into set of {@link ContainerModel}. * * @param taskModels the set of {@link TaskModel} to group into containers. * @param containersIds the list of container ids that has to be used in the {@link ContainerModel}. * @return the grouped {@link ContainerModel} built from the provided taskModels. */ @Deprecated default Set<ContainerModel> group(Set<TaskModel> taskModels, List<String> containersIds) { return group(taskModels); } }