YARN-8076. Support to specify application tags in distributed shell. Contributed by Weiwei Yang.

This commit is contained in:
Sunil G 2018-03-29 15:55:39 +05:30
parent 3d185d62fc
commit 431076f637

View File

@ -230,6 +230,9 @@ public class Client {
// Docker client configuration
private String dockerClientConfig = null;
// Application tags
private Set<String> applicationTags = new HashSet<>();
// Command line options
private Options opts;
@ -384,6 +387,7 @@ public Client(Configuration conf) throws Exception {
"Placement specification. Please note, if this option is specified,"
+ " The \"num_containers\" option will be ignored. All requested"
+ " containers will be of type GUARANTEED" );
opts.addOption("application_tags", true, "Application tags.");
}
/**
@ -604,6 +608,14 @@ public boolean init(String[] args) throws ParseException {
if (cliParser.hasOption("docker_client_config")) {
dockerClientConfig = cliParser.getOptionValue("docker_client_config");
}
if (cliParser.hasOption("application_tags")) {
String applicationTagsStr = cliParser.getOptionValue("application_tags");
String[] appTags = applicationTagsStr.split(",");
for (String appTag : appTags) {
this.applicationTags.add(appTag.trim());
}
}
return true;
}
@ -729,6 +741,9 @@ public boolean run() throws IOException, YarnException {
}
Set<String> tags = new HashSet<String>();
if (applicationTags != null) {
tags.addAll(applicationTags);
}
if (flowName != null) {
tags.add(TimelineUtils.generateFlowNameTag(flowName));
}