diff --git llap-server/src/java/org/apache/hadoop/hive/llap/cli/LlapOptionsProcessor.java llap-server/src/java/org/apache/hadoop/hive/llap/cli/LlapOptionsProcessor.java index 8c06ccd..4517375 100644 --- llap-server/src/java/org/apache/hadoop/hive/llap/cli/LlapOptionsProcessor.java +++ llap-server/src/java/org/apache/hadoop/hive/llap/cli/LlapOptionsProcessor.java @@ -36,7 +36,6 @@ private int instances = 0; private String directory = null; private String name; - private String args; public LlapOptions(String name, int instances, String directory) throws ParseException { @@ -83,13 +82,17 @@ public LlapOptionsProcessor() { options.addOption(OptionBuilder.hasArg().withArgName("args").withLongOpt("args") .withDescription("java arguments to the llap instance").create('a')); + options.addOption(OptionBuilder.hasArg().withArgName("loglevel").withLongOpt("loglevel") + .withDescription("log levels for the llap instance").create('l')); + // [-H|--help] options.addOption(new Option("H", "help", false, "Print help information")); } public LlapOptions processOptions(String argv[]) throws ParseException { commandLine = new GnuParser().parse(options, argv); - if (commandLine.hasOption('H')) { + if (commandLine.hasOption('H') || false == commandLine.hasOption("instances")) { + // needs at least --instances printUsage(); return null; } @@ -98,6 +101,7 @@ public LlapOptions processOptions(String argv[]) throws ParseException { String directory = commandLine.getOptionValue("directory"); String name = commandLine.getOptionValue("name", null); + // loglevel & args are parsed by the python processor return new LlapOptions(name, instances, directory); } diff --git llap-server/src/main/resources/package.py llap-server/src/main/resources/package.py index 6790464..c4f87c0 100644 --- llap-server/src/main/resources/package.py +++ llap-server/src/main/resources/package.py @@ -47,7 +47,7 @@ def zipdir(path, zip, prefix="."): zip.write(src, dst) def main(args): - opts, args = getopt(args,"",["instances=","output=", "input=","args=","name="]) + opts, args = getopt(args,"",["instances=","output=", "input=","args=","name=","loglevel="]) version = os.getenv("HIVE_VERSION") if not version: version = strftime("%d%b%Y", gmtime()) @@ -56,6 +56,7 @@ def main(args): instances=1 name = "llap0" d_args = "" + d_loglevel = "INFO" input = None for k,v in opts: if k in ("--input"): @@ -68,6 +69,8 @@ def main(args): name = v elif k in ("--args"): d_args = v + elif k in ("--loglevel"): + d_loglevel = v if not input: print "Cannot find input files" sys.exit(1) @@ -84,7 +87,8 @@ def main(args): "hadoop_home" : os.getenv("HADOOP_HOME"), "java_home" : os.getenv("JAVA_HOME"), "name" : name, - "daemon_args" : d_args + "daemon_args" : d_args, + "daemon_loglevel" : d_loglevel } if not exists(output): diff --git llap-server/src/main/resources/templates.py llap-server/src/main/resources/templates.py index 7fcb95f..945754a 100644 --- llap-server/src/main/resources/templates.py +++ llap-server/src/main/resources/templates.py @@ -73,7 +73,7 @@ "java_home": "%(java_home)s", "site.global.app_user": "yarn", "site.global.app_root": "${AGENT_WORK_ROOT}/app/install/", - "site.global.app_log_level": "INFO,RFA", + "site.global.app_log_level": "%(daemon_loglevel)s,RFA", "site.global.additional_cp": "%(hadoop_home)s", "site.global.daemon_args": "%(daemon_args)s", "site.global.library_path": "%(hadoop_home)s/lib/native", @@ -115,4 +115,5 @@ slider destroy %(name)s slider install-package --name LLAP --package $BASEDIR/llap-%(version)s.zip --replacepkg slider create %(name)s --resources $BASEDIR/resources.json --template $BASEDIR/appConfig.json +slider status %(name)s """