分享

about云源码分析之hadoop2.x(2.7.1为例)二次开发:hadoop是如何定义命令行的

pig2 2015-7-12 15:00:53 发表于 问题解答 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 1 11922



接上文
about云源码分析之hadoop2.x(2.7.1为例)二次开发基础:命令行添加
我们有了基础,那么只需要找到hadoop源码是如何添加、定义命令行即可。
同样我们找到宝
  1. package org.apache.hadoop.util中GenericOptionsParser
  2. private static Options buildGeneralOptions(Options opts) {
  3.     Option fs = OptionBuilder.withArgName("local|namenode:port")
  4.     .hasArg()
  5.     .withDescription("specify a namenode")
  6.     .create("fs");
  7.     Option jt = OptionBuilder.withArgName("local|resourcemanager:port")
  8.     .hasArg()
  9.     .withDescription("specify a ResourceManager")
  10.     .create("jt");
  11.     Option oconf = OptionBuilder.withArgName("configuration file")
  12.     .hasArg()
  13.     .withDescription("specify an application configuration file")
  14.     .create("conf");
  15.     Option property = OptionBuilder.withArgName("property=value")
  16.     .hasArg()
  17.     .withDescription("use value for given property")
  18.     .create('D');
  19.     Option libjars = OptionBuilder.withArgName("paths")
  20.     .hasArg()
  21.     .withDescription("comma separated jar files to include in the classpath.")
  22.     .create("libjars");
  23.     Option files = OptionBuilder.withArgName("paths")
  24.     .hasArg()
  25.     .withDescription("comma separated files to be copied to the " +
  26.            "map reduce cluster")
  27.     .create("files");
  28.     Option archives = OptionBuilder.withArgName("paths")
  29.     .hasArg()
  30.     .withDescription("comma separated archives to be unarchived" +
  31.                      " on the compute machines.")
  32.     .create("archives");
  33.    
  34.     // file with security tokens
  35.     Option tokensFile = OptionBuilder.withArgName("tokensFile")
  36.     .hasArg()
  37.     .withDescription("name of the file with the tokens")
  38.     .create("tokenCacheFile");
  39.     opts.addOption(fs);
  40.     opts.addOption(jt);
  41.     opts.addOption(oconf);
  42.     opts.addOption(property);
  43.     opts.addOption(libjars);
  44.     opts.addOption(files);
  45.     opts.addOption(archives);
  46.     opts.addOption(tokensFile);
  47.     return opts;
  48.   }
复制代码


通过利用这个Options,你可以使用addOption()方法定义你的应用程序可接受的命令行参数,每次都为一个option调用一次这个方法

更多源码见附件:
GenericOptionsParser.zip (5.19 KB, 下载次数: 13)

已有(1)人评论

跳转到指定楼层
tang 发表于 2015-7-13 07:49:27
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条