String modelPrototype,
int prototypeSize,
int numClusters,
double alpha_0,
int numReducers) {
Configurable client = new JobClient();
JobConf conf = new JobConf(DirichletDriver.class);
conf.setOutputKeyClass(Text.class);
conf.setOutputValueClass(DirichletCluster.class);
conf.setMapOutputKeyClass(Text.class);
conf.setMapOutputValueClass(VectorWritable.class);
FileInputFormat.setInputPaths(conf, new Path(input));
Path outPath = new Path(stateOut);
FileOutputFormat.setOutputPath(conf, outPath);
conf.setMapperClass(DirichletMapper.class);
conf.setReducerClass(DirichletReducer.class);
conf.setNumReduceTasks(numReducers);
conf.setInputFormat(SequenceFileInputFormat.class);
conf.setOutputFormat(SequenceFileOutputFormat.class);
conf.set(STATE_IN_KEY, stateIn);
conf.set(MODEL_FACTORY_KEY, modelFactory);
conf.set(MODEL_PROTOTYPE_KEY, modelPrototype);
conf.set(PROTOTYPE_SIZE_KEY, Integer.toString(prototypeSize));
conf.set(NUM_CLUSTERS_KEY, Integer.toString(numClusters));
conf.set(ALPHA_0_KEY, Double.toString(alpha_0));
client.setConf(conf);
try {
JobClient.runJob(conf);
} catch (IOException e) {
log.warn(e.toString(), e);
}