public static void initMRJob(final Job job, final String table, final String outtable, final String[] auths) throws AccumuloSecurityException {
final Configuration conf = job.getConfiguration();
final String username = conf.get(USERNAME);
final String password = conf.get(PASSWORD);
final String instance = conf.get(INSTANCE);
final String zookeepers = conf.get(ZOOKEEPERS);
final String mock = conf.get(MOCK);
if (Boolean.parseBoolean(mock)) {
AccumuloInputFormat.setMockInstance(job, instance);
AccumuloOutputFormat.setMockInstance(job, instance);
} else if (zookeepers != null) {
AccumuloInputFormat.setZooKeeperInstance(job, instance, zookeepers);
AccumuloOutputFormat.setZooKeeperInstance(job, instance, zookeepers);
} else {
throw new IllegalArgumentException("Must specify either mock or zookeepers");
}
AccumuloInputFormat.setConnectorInfo(job, username, new PasswordToken(password.getBytes(StandardCharsets.UTF_8)));
AccumuloInputFormat.setInputTableName(job, table);
job.setInputFormatClass(AccumuloInputFormat.class);
AccumuloInputFormat.setScanAuthorizations(job, new Authorizations(auths));
job.setOutputFormatClass(AccumuloOutputFormat.class);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(Mutation.class);
AccumuloOutputFormat.setConnectorInfo(job, username, new PasswordToken(password.getBytes(StandardCharsets.UTF_8)));
AccumuloOutputFormat.setDefaultTableName(job, outtable);
}