Alejandro Fernandez created AMBARI-19809:
--------------------------------------------
Summary: HDP 3.0 TP - failed to deploy YARN configs because
yarn-site creates conflicts since should not belong to MAPREDUCE2
Key: AMBARI-19809
URL: https://issues.apache.org/jira/browse/AMBARI-19809
Project: Ambari
Issue Type: Bug
Components: stacks
Affects Versions: 3.0.0
Reporter: Alejandro Fernandez
Assignee: Alejandro Fernandez
Fix For: 3.0.0
STR:
* Install Ambari trunk
* Install HDP 3.0, e.g., centos6:
http://s3.amazonaws.com/dev.hortonworks.com/HDP/centos6/3.x/BUILDS/3.0.0.0-30
* Select ZK, HDFS, YARN
* During deployment, will see the following error in the ambari-server log
{noformat}
26 Jan 2017 20:01:48,119 ERROR [ambari-client-thread-26] ClusterImpl:2662 -
Updating configs for multiple services by a single API request isn't supported.
Conflicting services YARN and MAPREDUCE2 for yarn-site, config version not
created for YARN
{noformat}
This is likely due to changes I introduced in YARN's Service Advisor by
splitting it up into YARN and MAPREDUCE classes.
ambari-server/src/main/resources/common-services/YARN/3.0.0.3.0/service_advisor.py
has YARNServiceAdvisor, MAPREDUCE2ServiceAdvisor
Ideally, we can keep those 2 classes, but let's also explore ClusterImpl.java's
applyConfigs() method.
{code}
ServiceConfigVersionResponse applyConfigs(Set<Config> configs, String user,
String serviceConfigVersionNote) {
String serviceName = null;
for (Config config : configs) {
for (Entry<String, String> entry : serviceConfigTypes.entries()) {
if (StringUtils.equals(entry.getValue(), config.getType())) {
if (serviceName == null) {
serviceName = entry.getKey();
break;
} else if (!serviceName.equals(entry.getKey())) {
String error = String.format("Updating configs for multiple
services by a " +
"single API request isn't supported. Conflicting services %s
and %s for %s",
serviceName, entry.getKey(),
config.getType());
IllegalArgumentException exception = new
IllegalArgumentException(error);
LOG.error(error + ", config version not created for {}",
serviceName);
throw exception;
} else {
break;
}
}
}
}
...
{code}
This is because yarn-site is marked right now as belonging to both YARN and
MAPREDUCE2, which is incorrect since it should not belong to MAPREDUCE2.
The fix update the HDP 3.0 service definition for MAPREDUCE2 to use the correct
configuration directory.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)