12. June 2017

Custom Scaleout Infrastructure

Orbit can process image quantification on your local computer or via a scaleout infrastructure. As scaleout infrastructure Orbit supports out of the box Spark.
However, you can easily use your own infrastructure, if you are willing to do some Java coding.

The scaleout infrastructure implementation is defined in the OrbitImageAnalysis.jar /resources/config.properties, e.g.

ScaleOut=com.actelion.research.orbit.imageAnalysis.dal.ScaleoutSpark

ScaleoutSpark is an implementation of IMapReduceExecutor. You can provide your own implementation of it, define it in the config.properties (or you can add a config_custom.properties which has priority then).

Impelemtation of IMapReduceExecutor

Gradle dependency:

compile group: 'com.actelion.research', name: 'map-reduce-generic', version: '1.0.8'

or Maven:

<dependency>
 <groupId>com.actelion.research</groupId>
 <artifactId>map-reduce-generic</artifactId>
 <version>1.0.8</version>
</dependency>

and implement IMapReduceExecutor. See MapReduceExecutorLocal and MapReduceExecutorLocalMultiCore or MapReduceExecutorSpark from the map-reduce-executor-spark package.

Test your implementation on one of the examples, e.g. CalcPi. In the main method here the multicore executor is used, replace it with your own implementation.

You can play around with the map reduce executors and the examples completely independent of Orbit.

Once your done and want to include your implementation in Orbit, declare it in the config.properties and put all your dependency JARs in the /lib folder of Orbit (all JARs in the /lib folder will be added to the classpath).

Don’t hesitate to contact me if you need further assistance with that.