use of org.locationtech.geowave.analytic.partitioner.Partitioner in project geowave by locationtech.
the class NNJobRunnerTest method init.
@Before
public void init() {
jjJobRunner.setMapReduceIntegrater(new MapReduceIntegration() {
@Override
public int submit(final Configuration configuration, final PropertyManagement runTimeProperties, final GeoWaveAnalyticJobRunner tool) throws Exception {
tool.setConf(configuration);
return ToolRunner.run(configuration, tool, new String[] {});
}
@Override
public Counters waitForCompletion(final Job job) throws ClassNotFoundException, IOException, InterruptedException {
Assert.assertEquals(SequenceFileInputFormat.class, job.getInputFormatClass());
Assert.assertEquals(10, job.getNumReduceTasks());
final ScopedJobConfiguration configWrapper = new ScopedJobConfiguration(job.getConfiguration(), NNMapReduce.class);
Assert.assertEquals("file://foo/bin", job.getConfiguration().get("mapred.input.dir"));
Assert.assertEquals(0.4, configWrapper.getDouble(Partition.MAX_DISTANCE, 0.0), 0.001);
Assert.assertEquals(100, configWrapper.getInt(Partition.MAX_MEMBER_SELECTION, 1));
try {
final Partitioner<?> wrapper = configWrapper.getInstance(Partition.PARTITIONER_CLASS, Partitioner.class, null);
Assert.assertEquals(OrthodromicDistancePartitioner.class, wrapper.getClass());
final Partitioner<?> secondary = configWrapper.getInstance(Partition.SECONDARY_PARTITIONER_CLASS, Partitioner.class, null);
Assert.assertEquals(OrthodromicDistancePartitioner.class, secondary.getClass());
final DistanceFn<?> distancFn = configWrapper.getInstance(CommonParameters.Common.DISTANCE_FUNCTION_CLASS, DistanceFn.class, GeometryCentroidDistanceFn.class);
Assert.assertEquals(FeatureCentroidDistanceFn.class, distancFn.getClass());
} catch (final InstantiationException e) {
throw new IOException("Unable to configure system", e);
} catch (final IllegalAccessException e) {
throw new IOException("Unable to configure system", e);
}
Assert.assertEquals(10, job.getNumReduceTasks());
return new Counters();
}
@Override
public Job getJob(final Tool tool) throws IOException {
return new Job(tool.getConf());
}
@Override
public Configuration getConfiguration(final PropertyManagement runTimeProperties) throws IOException {
return new Configuration();
}
});
jjJobRunner.setInputFormatConfiguration(new SequenceFileInputFormatConfiguration(new Path("file://foo/bin")));
jjJobRunner.setReducerCount(10);
runTimeProperties.store(MRConfig.HDFS_BASE_DIR, "/");
final DataStorePluginOptions pluginOptions = new DataStorePluginOptions();
GeoWaveStoreFinder.getRegisteredStoreFactoryFamilies().put("memory", new MemoryStoreFactoryFamily());
pluginOptions.selectPlugin("memory");
final MemoryRequiredOptions opts = (MemoryRequiredOptions) pluginOptions.getFactoryOptions();
final String namespace = "test_" + getClass().getName() + "_" + name.getMethodName();
opts.setGeoWaveNamespace(namespace);
final PersistableStore store = new PersistableStore(pluginOptions);
runTimeProperties.store(StoreParam.INPUT_STORE, store);
runTimeProperties.store(CommonParameters.Common.DISTANCE_FUNCTION_CLASS, FeatureCentroidDistanceFn.class);
runTimeProperties.store(Partition.PARTITIONER_CLASS, OrthodromicDistancePartitioner.class);
runTimeProperties.store(Partition.SECONDARY_PARTITIONER_CLASS, OrthodromicDistancePartitioner.class);
runTimeProperties.store(Partition.MAX_DISTANCE, Double.valueOf(0.4));
runTimeProperties.store(Partition.MAX_MEMBER_SELECTION, Integer.valueOf(100));
}
Aggregations