GenericOptionsParser可以让你的Map/Reduce程序具有Hadoop常用的属性。
一般无需直接用GenericOptionsParser,继承Configured即可。
public class ConfigurationPrinter extends Configured implements Tool { //添加你需要的配置文件 static { Configuration.addDefaultResource("hdfs-default.xml"); Configuration.addDefaultResource("hdfs-site.xml"); Configuration.addDefaultResource("mapred-default.xml"); Configuration.addDefaultResource("mapred-site.xml"); } //run而不是在main中驱动。 @Override public int run(String[] args) throws Exception { //conf已经支持Hadoop参数的解析了。 Configuration conf = getConf(); for (Entry<String, String> entry: conf) { System.out.printf("%s=%s\n", entry.getKey(), entry.getValue()); } return 0; } public static void main(String[] args) throws Exception { int exitCode = ToolRunner.run(new ConfigurationPrinter(), args); System.exit(exitCode); }
Hadoop支持的属性如下:
-conf specify a configuration file -D use value for given property -fs specify a namenode -jt specify a job tracker -files specify comma separated files to be copied to the map reduce cluster -libjars specify comma separated jar files to include in the classpath. -archives specify comma separated archives to be unarchived on the compute machines.