You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by on...@apache.org on 2015/01/08 19:49:33 UTC
ambari git commit: AMBARI-9046. templeton.hive.properties set
incorrectly (onechiporenko)
Repository: ambari
Updated Branches:
refs/heads/trunk 273e1b107 -> 76b7d3d46
AMBARI-9046. templeton.hive.properties set incorrectly (onechiporenko)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/76b7d3d4
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/76b7d3d4
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/76b7d3d4
Branch: refs/heads/trunk
Commit: 76b7d3d465324f73b2d8e3a6f92cf3b9e24430d7
Parents: 273e1b1
Author: Oleg Nechiporenko <on...@apache.org>
Authored: Thu Jan 8 18:10:10 2015 +0200
Committer: Oleg Nechiporenko <on...@apache.org>
Committed: Thu Jan 8 20:49:15 2015 +0200
----------------------------------------------------------------------
.../0.12.0.2.0/configuration/webhcat-site.xml | 2 +-
.../package/configuration/webhcat-site.xml | 2 +-
.../HIVE/configuration/webhcat-site.xml | 2 +-
.../HIVE/configuration/webhcat-site.xml | 2 +-
ambari-web/app/models/service_config.js | 43 ++++--
ambari-web/app/utils/config.js | 7 +-
ambari-web/test/models/service_config_test.js | 137 +++++++++++++++++++
7 files changed, 175 insertions(+), 20 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/76b7d3d4/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/configuration/webhcat-site.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/configuration/webhcat-site.xml b/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/configuration/webhcat-site.xml
index 335048e..3a81c60 100644
--- a/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/configuration/webhcat-site.xml
+++ b/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/configuration/webhcat-site.xml
@@ -97,7 +97,7 @@ limitations under the License.
<property>
<name>templeton.hive.properties</name>
- <value>hive.metastore.local=false, hive.metastore.uris=thrift://localhost:9933, hive.metastore.sasl.enabled=false</value>
+ <value>hive.metastore.local=false,hive.metastore.uris=thrift://localhost:9083,hive.metastore.sasl.enabled=false</value>
<description>Properties to set when running hive.</description>
</property>
http://git-wip-us.apache.org/repos/asf/ambari/blob/76b7d3d4/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/configuration/webhcat-site.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/configuration/webhcat-site.xml b/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/configuration/webhcat-site.xml
index 335048e..31cd342 100644
--- a/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/configuration/webhcat-site.xml
+++ b/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/configuration/webhcat-site.xml
@@ -97,7 +97,7 @@ limitations under the License.
<property>
<name>templeton.hive.properties</name>
- <value>hive.metastore.local=false, hive.metastore.uris=thrift://localhost:9933, hive.metastore.sasl.enabled=false</value>
+ <value>hive.metastore.local=false,hive.metastore.uris=thrift://localhost:9933,hive.metastore.sasl.enabled=false</value>
<description>Properties to set when running hive.</description>
</property>
http://git-wip-us.apache.org/repos/asf/ambari/blob/76b7d3d4/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/HIVE/configuration/webhcat-site.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/HIVE/configuration/webhcat-site.xml b/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/HIVE/configuration/webhcat-site.xml
index 0523dab..951dcda 100644
--- a/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/HIVE/configuration/webhcat-site.xml
+++ b/ambari-server/src/main/resources/stacks/BIGTOP/0.8/services/HIVE/configuration/webhcat-site.xml
@@ -98,7 +98,7 @@ limitations under the License.
<property>
<name>templeton.hive.properties</name>
- <value>hive.metastore.local=false, hive.metastore.uris=thrift://localhost:9933, hive.metastore.sasl.enabled=false</value>
+ <value>hive.metastore.local=false,hive.metastore.uris=thrift://localhost:9933,hive.metastore.sasl.enabled=false</value>
<description>Properties to set when running hive.</description>
</property>
http://git-wip-us.apache.org/repos/asf/ambari/blob/76b7d3d4/ambari-server/src/main/resources/stacks/PHD/3.0.0.0/services/HIVE/configuration/webhcat-site.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/PHD/3.0.0.0/services/HIVE/configuration/webhcat-site.xml b/ambari-server/src/main/resources/stacks/PHD/3.0.0.0/services/HIVE/configuration/webhcat-site.xml
index 0523dab..951dcda 100644
--- a/ambari-server/src/main/resources/stacks/PHD/3.0.0.0/services/HIVE/configuration/webhcat-site.xml
+++ b/ambari-server/src/main/resources/stacks/PHD/3.0.0.0/services/HIVE/configuration/webhcat-site.xml
@@ -98,7 +98,7 @@ limitations under the License.
<property>
<name>templeton.hive.properties</name>
- <value>hive.metastore.local=false, hive.metastore.uris=thrift://localhost:9933, hive.metastore.sasl.enabled=false</value>
+ <value>hive.metastore.local=false,hive.metastore.uris=thrift://localhost:9933,hive.metastore.sasl.enabled=false</value>
<description>Properties to set when running hive.</description>
</property>
http://git-wip-us.apache.org/repos/asf/ambari/blob/76b7d3d4/ambari-web/app/models/service_config.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/models/service_config.js b/ambari-web/app/models/service_config.js
index 655d81d..cb1b693 100644
--- a/ambari-web/app/models/service_config.js
+++ b/ambari-web/app/models/service_config.js
@@ -276,7 +276,7 @@ App.ServiceConfigProperty = Em.Object.extend({
return result;
}.property('displayType'),
- initialValue: function (localDB) {
+ initialValue: function (localDB, hiveMetastoreUrisDefault) {
var masterComponentHostsInDB = localDB.masterComponentHosts;
//console.log("value in initialvalue: " + JSON.stringify(masterComponentHostsInDB));
var hostsInfo = localDB.hosts; // which we are setting in installerController in step3.
@@ -481,18 +481,10 @@ App.ServiceConfigProperty = Em.Object.extend({
this.set('value', hiveServerHost).set('defaultValue', hiveServerHost);
break;
case 'hive.metastore.uris':
- var hiveMSHosts = masterComponentHostsInDB.filterProperty('component', 'HIVE_METASTORE').mapProperty('hostName'),
- hiveMSHostPort = hiveMSHosts,
- regex = "\\w*:(\\d+)",
- portValue = this.get('defaultValue').match(new RegExp(regex));
-
- if (!portValue) return;
- if (portValue[1]) {
- for (var i = 0; i < hiveMSHosts.length; i++) {
- hiveMSHostPort[i] = "thrift://" + hiveMSHosts[i] + ":" + portValue[1];
- }
+ var hiveMSUris = this.getHiveMetastoreUris(masterComponentHostsInDB, hiveMetastoreUrisDefault);
+ if (hiveMSUris) {
+ this.setDefaultValue("(.*)", hiveMSUris);
}
- this.setDefaultValue("(.*)", hiveMSHostPort);
break;
case 'oozie_existing_mysql_host':
case 'oozie_existing_postgresql_host':
@@ -566,11 +558,11 @@ App.ServiceConfigProperty = Em.Object.extend({
this.setDefaultValue("(.*)", zkHostPort);
break;
case 'templeton.hive.properties':
- var hiveMetaStoreHost = masterComponentHostsInDB.findProperty('component', 'HIVE_METASTORE').hostName;
+ var hiveMSUris = this.getHiveMetastoreUris(masterComponentHostsInDB, hiveMetastoreUrisDefault).replace(',', '\\,');
if (/\/\/localhost:/g.test(this.get('value'))) {
- this.set('defaultValue', this.get('value') + ', hive.metastore.execute.setugi=true');
- this.setDefaultValue("(localhost)", hiveMetaStoreHost);
+ this.set('defaultValue', this.get('value') + ',hive.metastore.execute.setugi=true');
}
+ this.setDefaultValue("(hive\\.metastore\\.uris=)([^\\,]+)", "$1" + hiveMSUris);
break;
case 'dfs.name.dir':
case 'dfs.namenode.name.dir':
@@ -605,6 +597,27 @@ App.ServiceConfigProperty = Em.Object.extend({
},
/**
+ * Get hive.metastore.uris initial value
+ * @param hosts
+ * @param defaultValue
+ * @returns {string}
+ */
+ getHiveMetastoreUris: function (hosts, defaultValue) {
+ var hiveMSHosts = hosts.filterProperty('component', 'HIVE_METASTORE').mapProperty('hostName'),
+ hiveMSUris = hiveMSHosts,
+ regex = "\\w*:(\\d+)",
+ portValue = defaultValue && defaultValue.match(new RegExp(regex));
+
+ if (!portValue) return '';
+ if (portValue[1]) {
+ for (var i = 0; i < hiveMSHosts.length; i++) {
+ hiveMSUris[i] = "thrift://" + hiveMSHosts[i] + ":" + portValue[1];
+ }
+ }
+ return hiveMSUris.join(',');
+ },
+
+ /**
* @param regex : String
* @param replaceWith : String
*/
http://git-wip-us.apache.org/repos/asf/ambari/blob/76b7d3d4/ambari-web/app/utils/config.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/config.js b/ambari-web/app/utils/config.js
index d4d8ea1..f3a2fc6 100644
--- a/ambari-web/app/utils/config.js
+++ b/ambari-web/app/utils/config.js
@@ -682,7 +682,12 @@ App.config = Em.Object.create({
var serviceConfigProperty = App.ServiceConfigProperty.create(_config);
this.updateHostOverrides(serviceConfigProperty, _config);
if (!storedConfigs && !serviceConfigProperty.get('hasInitialValue')) {
- serviceConfigProperty.initialValue(localDB);
+ var hiveMetastoreUrisDefault;
+ var hiveMetastoreUrisConfig = serviceConfigs.findProperty('name', 'hive.metastore.uris');
+ if (hiveMetastoreUrisConfig) {
+ hiveMetastoreUrisDefault = hiveMetastoreUrisConfig.defaultValue;
+ }
+ serviceConfigProperty.initialValue(localDB, hiveMetastoreUrisDefault);
}
if (storedConfigs && storedConfigs.filterProperty('name', _config.name).length && !!_config.filename) {
var storedConfig = storedConfigs.filterProperty('name', _config.name).findProperty('filename', _config.filename);
http://git-wip-us.apache.org/repos/asf/ambari/blob/76b7d3d4/ambari-web/test/models/service_config_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/models/service_config_test.js b/ambari-web/test/models/service_config_test.js
index 64964df..2b9e458 100644
--- a/ambari-web/test/models/service_config_test.js
+++ b/ambari-web/test/models/service_config_test.js
@@ -776,6 +776,41 @@ describe('App.ServiceConfigProperty', function () {
},
value: 'h0,h1',
title: 'comma separated list of hosts with Hive Server and Metastore'
+ },
+ 'hive.metastore.uris': {
+ localDB: {
+ masterComponentHosts: [
+ {
+ component: 'HIVE_METASTORE',
+ hostName: 'h0'
+ },
+ {
+ component: 'HIVE_METASTORE',
+ hostName: 'h1'
+ }
+ ]
+ },
+ defaultValue: 'thrift://localhost:9083',
+ value: 'thrift://h0:9083,thrift://h1:9083',
+ title: 'comma separated list of Metastore hosts with thrift prefix and port'
+ },
+ 'templeton.hive.properties': {
+ localDB: {
+ masterComponentHosts: [
+ {
+ component: 'HIVE_METASTORE',
+ hostName: 'h0'
+ },
+ {
+ component: 'HIVE_METASTORE',
+ hostName: 'h1'
+ }
+ ]
+ },
+ hiveMSUrisDefaultValue: 'thrift://localhost:9083',
+ defaultValue: 'hive.metastore.local=false,hive.metastore.uris=thrift://localhost:9933,hive.metastore.sasl.enabled=false',
+ value: 'hive.metastore.local=false,hive.metastore.uris=thrift://h0:9083\\,thrift://h1:9083,hive.metastore.sasl.enabled=false,hive.metastore.execute.setugi=true',
+ title: 'should add relevant hive.metastore.uris value'
}
};
@@ -861,5 +896,107 @@ describe('App.ServiceConfigProperty', function () {
expect(serviceConfigProperty.get('value')).to.equal(cases['hive_master_hosts'].value);
});
+ it(cases['hive.metastore.uris'].title, function () {
+ serviceConfigProperty.setProperties({
+ name: 'hive.metastore.uris',
+ defaultValue: cases['hive.metastore.uris'].defaultValue
+ });
+ serviceConfigProperty.initialValue(cases['hive.metastore.uris'].localDB, cases['hive.metastore.uris'].defaultValue);
+ expect(serviceConfigProperty.get('value')).to.equal(cases['hive.metastore.uris'].value);
+ expect(serviceConfigProperty.get('defaultValue')).to.equal(cases['hive.metastore.uris'].value);
+ });
+
+ it(cases['templeton.hive.properties'].title, function () {
+ serviceConfigProperty.setProperties({
+ name: 'templeton.hive.properties',
+ defaultValue: cases['templeton.hive.properties'].defaultValue,
+ value: cases['templeton.hive.properties'].defaultValue
+ });
+ serviceConfigProperty.initialValue(cases['templeton.hive.properties'].localDB, cases['templeton.hive.properties'].hiveMSUrisDefaultValue);
+ expect(serviceConfigProperty.get('value')).to.equal(cases['templeton.hive.properties'].value);
+ expect(serviceConfigProperty.get('defaultValue')).to.equal(cases['templeton.hive.properties'].value);
+ });
+
+ });
+
+ describe('#getHiveMetastoreUris', function () {
+
+ var cases = [
+ {
+ hosts: [
+ {
+ hostName: 'h0',
+ component: 'HIVE_SERVER'
+ },
+ {
+ hostName: 'h1',
+ component: 'HIVE_METASTORE'
+ },
+ {
+ hostName: 'h2',
+ component: 'HIVE_METASTORE'
+ }
+ ],
+ defaultValue: 'thrift://localhost:9083',
+ expected: 'thrift://h1:9083,thrift://h2:9083',
+ title: 'typical case'
+ },
+ {
+ hosts: [
+ {
+ hostName: 'h0',
+ component: 'HIVE_SERVER'
+ }
+ ],
+ defaultValue: 'thrift://localhost:9083',
+ expected: '',
+ title: 'no Metastore hosts in DB'
+ },
+ {
+ hosts: [
+ {
+ hostName: 'h0',
+ component: 'HIVE_SERVER'
+ },
+ {
+ hostName: 'h1',
+ component: 'HIVE_METASTORE'
+ },
+ {
+ hostName: 'h2',
+ component: 'HIVE_METASTORE'
+ }
+ ],
+ defaultValue: '',
+ expected: '',
+ title: 'default value without port'
+ },
+ {
+ hosts: [
+ {
+ hostName: 'h0',
+ component: 'HIVE_SERVER'
+ },
+ {
+ hostName: 'h1',
+ component: 'HIVE_METASTORE'
+ },
+ {
+ hostName: 'h2',
+ component: 'HIVE_METASTORE'
+ }
+ ],
+ expected: '',
+ title: 'no default value specified'
+ }
+ ];
+
+ cases.forEach(function (item) {
+ it(item.title, function () {
+ expect(serviceConfigProperty.getHiveMetastoreUris(item.hosts, item.defaultValue)).to.equal(item.expected);
+ });
+ });
+
});
+
});