/*
* Copyright 2013-2014 eXascale Infolab, University of Fribourg. All rights reserved.
*/
package org.apache.hadoop.hadaps;
import org.apache.hadoop.classification.InterfaceAudience;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.conf.Configured;
import org.apache.hadoop.hdfs.DFSUtil;
import org.apache.hadoop.util.Time;
import org.apache.hadoop.util.Tool;
import org.apache.hadoop.util.ToolRunner;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.List;
@InterfaceAudience.Private
public class Hadaps extends Configured implements Tool {
private static final Logger LOG = LoggerFactory.getLogger(Hadaps.class);
private static final String USAGE = String.format("Usage: java %s%n",
Hadaps.class.getSimpleName());
@Override
public int run(String[] args) throws Exception {
// Get configuration
Configuration configuration = getConf();
// Get parameters
List<ParameterFile> parameterFiles = HadapsConfiguration.parseFiles(configuration);
long startTime = Time.now();
Balancer balancer = new Balancer(parameterFiles, configuration);
balancer.run();
long duration = Time.now() - startTime;
LOG.info("Balancing took {}", Utils.getPrettyTime(duration));
return 0;
}
public static void main(String[] args) {
if (DFSUtil.parseHelpArgument(args, USAGE, System.out, true)) {
System.exit(0);
}
try {
System.exit(ToolRunner.run(new HadapsConfiguration(), new Hadaps(), args));
} catch (Throwable e) {
LOG.error("Exiting " + Hadaps.class.getSimpleName() + " due to an exception", e);
System.exit(-1);
}
}
}