Repository: ambari Updated Branches: refs/heads/trunk b0fa86ce8 -> 661d143b9
AMBARI-11009. Storm service check fails with multiple nimbus hosts, remove messages from Storm RU now that it is rolling, allow nimbus.seeds to be edited (alejandro) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/661d143b Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/661d143b Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/661d143b Branch: refs/heads/trunk Commit: 661d143b9010711a55bb3f7f903aa148425733e2 Parents: b0fa86c Author: Alejandro Fernandez <[email protected]> Authored: Thu May 7 16:03:43 2015 -0700 Committer: Alejandro Fernandez <[email protected]> Committed: Mon May 11 11:09:50 2015 -0700 ---------------------------------------------------------------------- .../0.9.1.2.1/package/scripts/params_linux.py | 8 +- .../0.9.1.2.1/package/scripts/service_check.py | 8 +- .../0.9.1.2.1/package/scripts/yaml_utils.py | 10 +- .../STORM/package/scripts/yaml_config.py | 6 +- .../services/STORM/configuration/storm-site.xml | 2 +- .../stacks/HDP/2.3/upgrades/upgrade-2.3.xml | 10 - .../stacks/2.3/STORM/test_service_check.py | 50 ++++ .../python/stacks/2.3/STORM/test_storm_base.py | 124 +++++++++ .../stacks/2.3/configs/storm_default.json | 260 +++++++++++++++++++ ambari-web/app/data/HDP2/site_properties.js | 1 - 10 files changed, 456 insertions(+), 23 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/661d143b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/params_linux.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/params_linux.py b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/params_linux.py index 6c96d73..729e383 100644 --- a/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/params_linux.py +++ b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/params_linux.py @@ -81,8 +81,12 @@ user_group = config['configurations']['cluster-env']['user_group'] java64_home = config['hostLevelParams']['java_home'] jps_binary = format("{java64_home}/bin/jps") nimbus_port = config['configurations']['storm-site']['nimbus.thrift.port'] -nimbus_seeds_supported = config['configurations']['storm-env']['nimbus_seeds_supported'] -nimbus_host = config['configurations']['storm-site']['nimbus.seeds'] if nimbus_seeds_supported else config['configurations']['storm-site']['nimbus.host'] + +# nimbus.seeds is supported in HDP 2.3.0.0 and higher +nimbus_seeds_supported = default('/configurations/storm-env/nimbus_seeds_supported', False) +nimbus_host = default('/configurations/storm-site/nimbus.host', None) +nimbus_seeds = default('/configurations/storm-site/nimbus.seeds', None) + rest_api_port = "8745" rest_api_admin_port = "8746" rest_api_conf_file = format("{conf_dir}/config.yaml") http://git-wip-us.apache.org/repos/asf/ambari/blob/661d143b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/service_check.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/service_check.py b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/service_check.py index 483c144..4484501 100644 --- a/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/service_check.py +++ b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/service_check.py @@ -53,7 +53,13 @@ class ServiceCheckDefault(ServiceCheck): content=StaticFile("wordCount.jar") ) - cmd = format("storm jar /tmp/wordCount.jar storm.starter.WordCountTopology WordCount{unique} -c nimbus.host={nimbus_host}") + cmd = "" + if params.nimbus_seeds_supported: + # Because this command is guaranteed to run on one of the hosts with storm client, there is no need + # to specify "-c nimbus.seeds={nimbus_seeds}" + cmd = format("storm jar /tmp/wordCount.jar storm.starter.WordCountTopology WordCount{unique}") + elif params.nimbus_host is not None: + cmd = format("storm jar /tmp/wordCount.jar storm.starter.WordCountTopology WordCount{unique} -c nimbus.host={nimbus_host}") Execute(cmd, logoutput=True, http://git-wip-us.apache.org/repos/asf/ambari/blob/661d143b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/yaml_utils.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/yaml_utils.py b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/yaml_utils.py index aeda3b3..6e99e8b 100644 --- a/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/yaml_utils.py +++ b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/yaml_utils.py @@ -24,7 +24,7 @@ import resource_management from resource_management.core.source import InlineTemplate from resource_management.core.resources.system import File -def escape_yaml_propetry(value): +def escape_yaml_property(value): unquouted = False unquouted_values = ["null","Null","NULL","true","True","TRUE","false","False","FALSE","YES","Yes","yes","NO","No","no","ON","On","on","OFF","Off","off"] if value in unquouted_values: @@ -61,18 +61,18 @@ def replace_jaas_placeholder(name, security_enabled, conf_dir): else: return name -storm_yaml_template = """{% for key, value in configurations|dictsort if not key.startswith('_') %}{{key}} : {{ escape_yaml_propetry(replace_jaas_placeholder(resource_management.core.source.InlineTemplate(value).get_content().strip(), security_enabled, conf_dir)) }} +storm_yaml_template = """{% for key, value in configurations|dictsort if not key.startswith('_') %}{{key}} : {{ escape_yaml_property(replace_jaas_placeholder(resource_management.core.source.InlineTemplate(value).get_content().strip(), security_enabled, conf_dir)) }} {% endfor %}""" def yaml_config_template(configurations): return InlineTemplate(storm_yaml_template, configurations=configurations, - extra_imports=[escape_yaml_propetry, replace_jaas_placeholder, resource_management, + extra_imports=[escape_yaml_property, replace_jaas_placeholder, resource_management, resource_management.core, resource_management.core.source]) def yaml_config(filename, configurations = None, conf_dir = None, owner = None, group = None): import params - config_content = InlineTemplate('''{% for key, value in configurations_dict.items() %}{{ key }}: {{ escape_yaml_propetry(value) }} -{% endfor %}''', configurations_dict=configurations, extra_imports=[escape_yaml_propetry]) + config_content = InlineTemplate('''{% for key, value in configurations_dict.items() %}{{ key }}: {{ escape_yaml_property(value) }} +{% endfor %}''', configurations_dict=configurations, extra_imports=[escape_yaml_property]) File (os.path.join(params.conf_dir, filename), content = config_content, http://git-wip-us.apache.org/repos/asf/ambari/blob/661d143b/ambari-server/src/main/resources/stacks/HDP/2.1.GlusterFS/services/STORM/package/scripts/yaml_config.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/stacks/HDP/2.1.GlusterFS/services/STORM/package/scripts/yaml_config.py b/ambari-server/src/main/resources/stacks/HDP/2.1.GlusterFS/services/STORM/package/scripts/yaml_config.py index 39261be..62c954d 100644 --- a/ambari-server/src/main/resources/stacks/HDP/2.1.GlusterFS/services/STORM/package/scripts/yaml_config.py +++ b/ambari-server/src/main/resources/stacks/HDP/2.1.GlusterFS/services/STORM/package/scripts/yaml_config.py @@ -21,7 +21,7 @@ limitations under the License. import re from resource_management import * -def escape_yaml_propetry(value): +def escape_yaml_property(value): unquouted = False unquouted_values = ["null","Null","NULL","true","True","TRUE","false","False","FALSE","YES","Yes","yes","NO","No","no","ON","On","on","OFF","Off","off"] @@ -58,8 +58,8 @@ def yaml_config( owner = None, group = None ): - config_content = source.InlineTemplate('''{% for key, value in configurations_dict.items() %}{{ key }}: {{ escape_yaml_propetry(value) }} -{% endfor %}''', configurations_dict=configurations, extra_imports=[escape_yaml_propetry]) + config_content = source.InlineTemplate('''{% for key, value in configurations_dict.items() %}{{ key }}: {{ escape_yaml_property(value) }} +{% endfor %}''', configurations_dict=configurations, extra_imports=[escape_yaml_property]) File (format("{conf_dir}/{filename}"), content = config_content, http://git-wip-us.apache.org/repos/asf/ambari/blob/661d143b/ambari-server/src/main/resources/stacks/HDP/2.3/services/STORM/configuration/storm-site.xml ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/stacks/HDP/2.3/services/STORM/configuration/storm-site.xml b/ambari-server/src/main/resources/stacks/HDP/2.3/services/STORM/configuration/storm-site.xml index 3ecc014..373f408 100644 --- a/ambari-server/src/main/resources/stacks/HDP/2.3/services/STORM/configuration/storm-site.xml +++ b/ambari-server/src/main/resources/stacks/HDP/2.3/services/STORM/configuration/storm-site.xml @@ -22,7 +22,7 @@ <property> <name>nimbus.seeds</name> <value>localhost</value> - <description>The host that the nimbus server is running on.</description> + <description>Comma-delimited list of the hosts running nimbus server.</description> </property> <property> <name>topology.min.replication.count</name> http://git-wip-us.apache.org/repos/asf/ambari/blob/661d143b/ambari-server/src/main/resources/stacks/HDP/2.3/upgrades/upgrade-2.3.xml ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/stacks/HDP/2.3/upgrades/upgrade-2.3.xml b/ambari-server/src/main/resources/stacks/HDP/2.3/upgrades/upgrade-2.3.xml index 65549dd..1937890 100644 --- a/ambari-server/src/main/resources/stacks/HDP/2.3/upgrades/upgrade-2.3.xml +++ b/ambari-server/src/main/resources/stacks/HDP/2.3/upgrades/upgrade-2.3.xml @@ -569,11 +569,6 @@ <service name="STORM"> <component name="NIMBUS"> - <pre-upgrade> - <task xsi:type="manual"> - <message>Before continuing, please deactivate and kill any currently running topologies.</message> - </task> - </pre-upgrade> <upgrade> <task xsi:type="restart" /> </upgrade> @@ -597,11 +592,6 @@ <upgrade> <task xsi:type="restart" /> </upgrade> - <post-upgrade> - <task xsi:type="manual"> - <message>Please rebuild your topology using the new Storm version dependencies and resubmit it using the newly created jar.</message> - </task> - </post-upgrade> </component> </service> http://git-wip-us.apache.org/repos/asf/ambari/blob/661d143b/ambari-server/src/test/python/stacks/2.3/STORM/test_service_check.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/python/stacks/2.3/STORM/test_service_check.py b/ambari-server/src/test/python/stacks/2.3/STORM/test_service_check.py new file mode 100644 index 0000000..1aa3cee --- /dev/null +++ b/ambari-server/src/test/python/stacks/2.3/STORM/test_service_check.py @@ -0,0 +1,50 @@ +#!/usr/bin/env python + +''' +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +''' + +from mock.mock import MagicMock, patch +from stacks.utils.RMFTestCase import * +import resource_management.libraries.functions +from test_storm_base import TestStormBase + [email protected](resource_management.libraries.functions, "get_unique_id_and_date", new = MagicMock(return_value='')) + +class TestStormServiceCheck(TestStormBase): + + def test_service_check(self): + self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/service_check.py", + classname="ServiceCheck", + command="service_check", + config_file="storm_default.json", + hdp_stack_version = self.STACK_VERSION, + target = RMFTestCase.TARGET_COMMON_SERVICES + ) + + self.assertResourceCalled('File', '/tmp/wordCount.jar', + content = StaticFile('wordCount.jar'), + ) + self.assertResourceCalled('Execute', 'storm jar /tmp/wordCount.jar storm.starter.WordCountTopology WordCount', + logoutput = True, + path = ['/usr/hdp/current/storm-client/bin'], + user = 'storm' + ) + self.assertResourceCalled('Execute', 'storm kill WordCount', + path = ['/usr/hdp/current/storm-client/bin'], + user = 'storm' + ) http://git-wip-us.apache.org/repos/asf/ambari/blob/661d143b/ambari-server/src/test/python/stacks/2.3/STORM/test_storm_base.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/python/stacks/2.3/STORM/test_storm_base.py b/ambari-server/src/test/python/stacks/2.3/STORM/test_storm_base.py new file mode 100644 index 0000000..e0a050f --- /dev/null +++ b/ambari-server/src/test/python/stacks/2.3/STORM/test_storm_base.py @@ -0,0 +1,124 @@ +#!/usr/bin/env python + +''' +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +''' + +from stacks.utils.RMFTestCase import * + + +class TestStormBase(RMFTestCase): + COMMON_SERVICES_PACKAGE_DIR = "STORM/0.9.1.2.1/package" + STACK_VERSION = "2.3" + + def assert_configure_default(self, confDir="/etc/storm/conf"): + import params + self.assertResourceCalled('Directory', '/var/log/storm', + owner = 'storm', + group = 'hadoop', + mode = 0777, + recursive = True, + ) + self.assertResourceCalled('Directory', '/var/run/storm', + owner = 'storm', + group = 'hadoop', + recursive = True, + cd_access='a' + ) + self.assertResourceCalled('Directory', '/hadoop/storm', + owner = 'storm', + group = 'hadoop', + recursive = True, + cd_access='a' + ) + self.assertResourceCalled('Directory', confDir, + group = 'hadoop', + recursive = True, + cd_access='a' + ) + self.assertResourceCalled('File', confDir + '/config.yaml', + owner = 'storm', + content = Template('config.yaml.j2'), + group = 'hadoop', + ) + + storm_yarn_content = self.call_storm_template_and_assert(confDir=confDir) + + self.assertTrue(storm_yarn_content.find('_JAAS_PLACEHOLDER') == -1, 'Placeholder have to be substituted') + + self.assertResourceCalled('File', confDir + '/storm-env.sh', + owner = 'storm', + content = InlineTemplate(self.getConfig()['configurations']['storm-env']['content']) + ) + return storm_yarn_content + + def assert_configure_secured(self, confDir='/etc/storm/conf'): + import params + self.assertResourceCalled('Directory', '/var/log/storm', + owner = 'storm', + group = 'hadoop', + mode = 0777, + recursive = True, + ) + self.assertResourceCalled('Directory', '/var/run/storm', + owner = 'storm', + group = 'hadoop', + recursive = True, + cd_access='a' + ) + self.assertResourceCalled('Directory', '/hadoop/storm', + owner = 'storm', + group = 'hadoop', + recursive = True, + cd_access='a' + ) + self.assertResourceCalled('Directory', confDir, + group = 'hadoop', + recursive = True, + cd_access='a' + ) + self.assertResourceCalled('File', confDir + '/config.yaml', + owner = 'storm', + content = Template('config.yaml.j2'), + group = 'hadoop', + ) + storm_yarn_content = self.call_storm_template_and_assert(confDir=confDir) + + self.assertTrue(storm_yarn_content.find('_JAAS_PLACEHOLDER') == -1, 'Placeholder have to be substituted') + + self.assertResourceCalled('File', confDir + '/storm-env.sh', + owner = 'storm', + content = InlineTemplate(self.getConfig()['configurations']['storm-env']['content']) + ) + self.assertResourceCalled('TemplateConfig', confDir + '/storm_jaas.conf', + owner = 'storm', + ) + return storm_yarn_content + + def call_storm_template_and_assert(self, confDir="/etc/storm/conf"): + import yaml_utils + + with RMFTestCase.env as env: + storm_yarn_temlate = yaml_utils.yaml_config_template(self.getConfig()['configurations']['storm-site']) + + self.assertResourceCalled('File', confDir + '/storm.yaml', + owner = 'storm', + content= storm_yarn_temlate, + group = 'hadoop' + ) + + return storm_yarn_temlate.get_content() http://git-wip-us.apache.org/repos/asf/ambari/blob/661d143b/ambari-server/src/test/python/stacks/2.3/configs/storm_default.json ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/python/stacks/2.3/configs/storm_default.json b/ambari-server/src/test/python/stacks/2.3/configs/storm_default.json new file mode 100644 index 0000000..b8b06eb --- /dev/null +++ b/ambari-server/src/test/python/stacks/2.3/configs/storm_default.json @@ -0,0 +1,260 @@ +{ + "configuration_attributes": { + "storm-site": {}, + "storm-env": {}, + "zoo.cfg": {}, + "zookeeper-env": {}, + "zookeeper-log4j": {}, + "cluster-env": {} + }, + "commandParams": { + "service_package_folder": "common-services/STORM/0.9.1.2.1/package", + "script": "scripts/service_check.py", + "hooks_folder": "HDP/2.0.6/hooks", + "command_retry_max_attempt_count": "3", + "command_retry_enabled": "false", + "command_timeout": "300", + "script_type": "PYTHON" + }, + "roleCommand": "SERVICE_CHECK", + "kerberosCommandParams": [], + "clusterName": "c1", + "hostname": "c6401.ambari.apache.org", + "hostLevelParams": { + "jdk_location": "http://c6401.ambari.apache.org:8080/resources/", + "ambari_db_rca_password": "mapred", + "java_home": "/usr/jdk64/jdk1.8.0_40", + "ambari_db_rca_url": "jdbc:postgresql://c6401.ambari.apache.org/ambarirca", + "jce_name": "jce_policy-8.zip", + "java_version": "8", + "oracle_jdbc_url": "http://c6401.ambari.apache.org:8080/resources//ojdbc6.jar", + "stack_name": "HDP", + "stack_version": "2.3", + "host_sys_prepped": "false", + "db_name": "ambari", + "jdk_name": "jdk-8u40-linux-x64.tar.gz", + "ambari_db_rca_driver": "org.postgresql.Driver", + "current_version": "2.3.0.0-1889", + "ambari_db_rca_username": "mapred", + "db_driver_filename": "mysql-connector-java.jar", + "agentCacheDir": "/var/lib/ambari-agent/cache", + "mysql_jdbc_url": "http://c6401.ambari.apache.org:8080/resources//mysql-connector-java.jar" + }, + "commandType": "EXECUTION_COMMAND", + "roleParams": {}, + "serviceName": "STORM", + "role": "STORM_SERVICE_CHECK", + "forceRefreshConfigTags": [], + "taskId": 31, + "public_hostname": "c6401.ambari.apache.org", + "configurations": { + "storm-site": { + "topology.tuple.serializer": "backtype.storm.serialization.types.ListDelegateSerializer", + "topology.workers": "1", + "drpc.worker.threads": "64", + "storm.messaging.netty.client_worker_threads": "1", + "supervisor.heartbeat.frequency.secs": "5", + "topology.executor.send.buffer.size": "1024", + "drpc.childopts": "-Xmx768m _JAAS_PLACEHOLDER", + "nimbus.thrift.port": "6627", + "storm.zookeeper.retry.intervalceiling.millis": "30000", + "storm.local.dir": "/hadoop/storm", + "topology.receiver.buffer.size": "8", + "storm.zookeeper.servers": "['c6401.ambari.apache.org','c6403.ambari.apache.org','c6402.ambari.apache.org']", + "transactional.zookeeper.root": "/transactional", + "_storm.min.ruid": "null", + "nimbus.seeds": "[c6402.ambari.apache.org, c6401.ambari.apache.org]", + "topology.min.replication.count": "1", + "topology.skip.missing.kryo.registrations": "false", + "worker.heartbeat.frequency.secs": "1", + "zmq.hwm": "0", + "storm.zookeeper.connection.timeout": "15000", + "_storm.thrift.secure.transport": "backtype.storm.security.auth.kerberos.KerberosSaslTransportPlugin", + "storm.messaging.netty.server_worker_threads": "1", + "supervisor.worker.start.timeout.secs": "120", + "zmq.threads": "1", + "topology.acker.executors": "null", + "storm.local.mode.zmq": "false", + "topology.max.task.parallelism": "null", + "topology.max.error.report.per.interval": "5", + "topology.debug": "false", + "drpc.queue.size": "128", + "worker.childopts": "-Xmx768m _JAAS_PLACEHOLDER -javaagent:/usr/hdp/current/storm-client/contrib/storm-jmxetric/lib/jmxetric-1.0.4.jar=host=localhost,port=8650,wireformat31x=true,mode=multicast,config=/usr/hdp/current/storm-client/contrib/storm-jmxetric/conf/jmxetric-conf.xml,process=Worker_%ID%_JVM", + "nimbus.childopts": "-Xmx1024m _JAAS_PLACEHOLDER -javaagent:/usr/hdp/current/storm-nimbus/contrib/storm-jmxetric/lib/jmxetric-1.0.4.jar=host=localhost,port=8649,wireformat31x=true,mode=multicast,config=/usr/hdp/current/storm-nimbus/contrib/storm-jmxetric/conf/jmxetric-conf.xml,process=Nimbus_JVM", + "storm.zookeeper.retry.times": "5", + "nimbus.monitor.freq.secs": "10", + "storm.cluster.mode": "distributed", + "dev.zookeeper.path": "/tmp/dev-storm-zookeeper", + "drpc.invocations.port": "3773", + "_storm.thrift.nonsecure.transport": "backtype.storm.security.auth.SimpleTransportPlugin", + "storm.zookeeper.root": "/storm", + "logviewer.childopts": "-Xmx128m _JAAS_PLACEHOLDER", + "topology.max.replication.wait.time.sec": "60", + "transactional.zookeeper.port": "null", + "topology.worker.childopts": "null", + "topology.max.spout.pending": "null", + "nimbus.cleanup.inbox.freq.secs": "600", + "storm.messaging.netty.min_wait_ms": "100", + "nimbus.task.timeout.secs": "30", + "nimbus.thrift.max_buffer_size": "1048576", + "topology.sleep.spout.wait.strategy.time.ms": "1", + "topology.optimize": "true", + "nimbus.reassign": "true", + "storm.messaging.transport": "backtype.storm.messaging.netty.Context", + "logviewer.appender.name": "A1", + "ui.port": "8744", + "supervisor.slots.ports": "[6700, 6701]", + "nimbus.file.copy.expiration.secs": "600", + "supervisor.monitor.frequency.secs": "3", + "ui.childopts": "-Xmx768m _JAAS_PLACEHOLDER", + "transactional.zookeeper.servers": "null", + "zmq.linger.millis": "5000", + "topology.error.throttle.interval.secs": "10", + "topology.worker.shared.thread.pool.size": "4", + "java.library.path": "/usr/local/lib:/opt/local/lib:/usr/lib:/usr/hdp/current/storm-client/lib", + "topology.spout.wait.strategy": "backtype.storm.spout.SleepSpoutWaitStrategy", + "task.heartbeat.frequency.secs": "3", + "topology.transfer.buffer.size": "1024", + "topology.builtin.metrics.bucket.size.secs": "60", + "topology.executor.receive.buffer.size": "1024", + "topology.stats.sample.rate": "0.05", + "topology.fall.back.on.java.serialization": "true", + "supervisor.childopts": "-Xmx256m _JAAS_PLACEHOLDER -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port={{jmxremote_port}} -javaagent:/usr/hdp/current/storm-supervisor/contrib/storm-jmxetric/lib/jmxetric-1.0.4.jar=host=localhost,port=8650,wireformat31x=true,mode=multicast,config=/usr/hdp/current/storm-supervisor/contrib/storm-jmxetric/conf/jmxetric-conf.xml,process=Supervisor_JVM", + "topology.enable.message.timeouts": "true", + "storm.messaging.netty.max_wait_ms": "1000", + "nimbus.topology.validator": "backtype.storm.nimbus.DefaultTopologyValidator", + "nimbus.supervisor.timeout.secs": "60", + "topology.disruptor.wait.strategy": "com.lmax.disruptor.BlockingWaitStrategy", + "storm.messaging.netty.buffer_size": "5242880", + "drpc.port": "3772", + "topology.kryo.factory": "backtype.storm.serialization.DefaultKryoFactory", + "storm.zookeeper.retry.interval": "1000", + "storm.messaging.netty.max_retries": "30", + "topology.tick.tuple.freq.secs": "null", + "drpc.request.timeout.secs": "600", + "nimbus.task.launch.secs": "120", + "task.refresh.poll.secs": "10", + "topology.message.timeout.secs": "30", + "nimbus.inbox.jar.expiration.secs": "3600", + "topology.state.synchronization.timeout.secs": "60", + "supervisor.worker.timeout.secs": "30", + "ui.filter": "null", + "topology.trident.batch.emit.interval.millis": "500", + "storm.zookeeper.session.timeout": "20000", + "storm.thrift.transport": "{{storm_thrift_transport}}", + "logviewer.port": "8000", + "storm.log.dir": "{{log_dir}}", + "storm.zookeeper.port": "2181" + }, + "storm-env": { + "jmxremote_port": "56431", + "storm_log_dir": "/var/log/storm", + "storm_pid_dir": "/var/run/storm", + "content": "\n#!/bin/bash\n\n# Set Storm specific environment variables here.\n\n# The java implementation to use.\nexport JAVA_HOME={{java64_home}}\n\n# export STORM_CONF_DIR=\"\"\nexport STORM_HOME=/usr/hdp/current/storm-client", + "nimbus_seeds_supported": "true", + "storm_user": "storm" + }, + "zoo.cfg": { + "clientPort": "2181", + "autopurge.purgeInterval": "24", + "syncLimit": "5", + "dataDir": "/hadoop/zookeeper", + "initLimit": "10", + "tickTime": "2000", + "autopurge.snapRetainCount": "30" + }, + "zookeeper-env": { + "zk_log_dir": "/var/log/zookeeper", + "content": "\nexport JAVA_HOME={{java64_home}}\nexport ZOOKEEPER_HOME={{zk_home}}\nexport ZOO_LOG_DIR={{zk_log_dir}}\nexport ZOOPIDFILE={{zk_pid_file}}\nexport SERVER_JVMFLAGS={{zk_server_heapsize}}\nexport JAVA=$JAVA_HOME/bin/java\nexport CLASSPATH=$CLASSPATH:/usr/share/zookeeper/*\n\n{% if security_enabled %}\nexport SERVER_JVMFLAGS=\"$SERVER_JVMFLAGS -Djava.security.auth.login.config={{zk_server_jaas_file}}\"\nexport CLIENT_JVMFLAGS=\"$CLIENT_JVMFLAGS -Djava.security.auth.login.config={{zk_client_jaas_file}}\"\n{% endif %}", + "zk_pid_dir": "/var/run/zookeeper", + "zk_user": "zookeeper" + }, + "zookeeper-log4j": { + "content": "\n#\n#\n# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE file\n# distributed with this work for additional information\n# regarding copyright ownership. The ASF licenses this file\n# to you under the Apache License, Version 2.0 (the\n# \"License\"); you may not use this file except in compliance\n# with the License. You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing,\n# software distributed under the License is distributed on an\n# \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n# KIND, either express or implied. See the License for the\n# specific language governing permissions and limitations\n# under the License.\n#\n#\n#\n\n#\n# ZooKeeper Logging Configuration\n#\n\n# DEFAULT: console appender only\nlog4j.rootLogger=INFO, CONSOLE\n\n# Example with rolling log file\n#log4 j.rootLogger=DEBUG, CONSOLE, ROLLINGFILE\n\n# Example with rolling log file and tracing\n#log4j.rootLogger=TRACE, CONSOLE, ROLLINGFILE, TRACEFILE\n\n#\n# Log INFO level and above messages to the console\n#\nlog4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender\nlog4j.appender.CONSOLE.Threshold=INFO\nlog4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout\nlog4j.appender.CONSOLE.layout.ConversionPattern=%d{ISO8601} - %-5p [%t:%C{1}@%L] - %m%n\n\n#\n# Add ROLLINGFILE to rootLogger to get log file output\n# Log DEBUG level and above messages to a log file\nlog4j.appender.ROLLINGFILE=org.apache.log4j.RollingFileAppender\nlog4j.appender.ROLLINGFILE.Threshold=DEBUG\nlog4j.appender.ROLLINGFILE.File=zookeeper.log\n\n# Max log file size of 10MB\nlog4j.appender.ROLLINGFILE.MaxFileSize=10MB\n# uncomment the next line to limit number of backup files\n#log4j.appender.ROLLINGFILE.MaxBackupIndex=10\n\nlog4j.appender.ROLLINGFILE.layout=org.apache.log4j.PatternLayout\nlog4j.appender.ROLLIN GFILE.layout.ConversionPattern=%d{ISO8601} - %-5p [%t:%C{1}@%L] - %m%n\n\n\n#\n# Add TRACEFILE to rootLogger to get log file output\n# Log DEBUG level and above messages to a log file\nlog4j.appender.TRACEFILE=org.apache.log4j.FileAppender\nlog4j.appender.TRACEFILE.Threshold=TRACE\nlog4j.appender.TRACEFILE.File=zookeeper_trace.log\n\nlog4j.appender.TRACEFILE.layout=org.apache.log4j.PatternLayout\n### Notice we are including log4j's NDC here (%x)\nlog4j.appender.TRACEFILE.layout.ConversionPattern=%d{ISO8601} - %-5p [%t:%C{1}@%L][%x] - %m%n" + }, + "cluster-env": { + "security_enabled": "false", + "hive_tar_source": "/usr/hdp/current/hive-client/hive.tar.gz", + "hadoop-streaming_tar_destination_folder": "hdfs:///hdp/apps/{{ hdp_stack_version }}/mapreduce/", + "pig_tar_source": "/usr/hdp/current/pig-client/pig.tar.gz", + "hive_tar_destination_folder": "hdfs:///hdp/apps/{{ hdp_stack_version }}/hive/", + "ignore_groupsusers_create": "false", + "smokeuser_keytab": "/etc/security/keytabs/smokeuser.headless.keytab", + "hadoop-streaming_tar_source": "/usr/hdp/current/hadoop-mapreduce-client/hadoop-streaming.jar", + "kerberos_domain": "EXAMPLE.COM", + "tez_tar_destination_folder": "hdfs:///hdp/apps/{{ hdp_stack_version }}/tez/", + "mapreduce_tar_destination_folder": "hdfs:///hdp/apps/{{ hdp_stack_version }}/mapreduce/", + "tez_tar_source": "/usr/hdp/current/tez-client/lib/tez.tar.gz", + "pig_tar_destination_folder": "hdfs:///hdp/apps/{{ hdp_stack_version }}/pig/", + "user_group": "hadoop", + "mapreduce_tar_source": "/usr/hdp/current/hadoop-client/mapreduce.tar.gz", + "sqoop_tar_destination_folder": "hdfs:///hdp/apps/{{ hdp_stack_version }}/sqoop/", + "smokeuser": "ambari-qa", + "sqoop_tar_source": "/usr/hdp/current/sqoop-client/sqoop.tar.gz" + } + }, + "configurationTags": { + "storm-site": { + "tag": "version1" + }, + "storm-env": { + "tag": "version1" + }, + "zoo.cfg": { + "tag": "version1" + }, + "zookeeper-env": { + "tag": "version1" + }, + "zookeeper-log4j": { + "tag": "version1" + }, + "cluster-env": { + "tag": "version1" + } + }, + "commandId": "7-0", + "clusterHostInfo": { + "drpc_server_hosts": [ + "c6402.ambari.apache.org" + ], + "nimbus_hosts": [ + "c6402.ambari.apache.org", + "c6401.ambari.apache.org" + ], + "all_ping_ports": [ + "8670", + "8670", + "8670" + ], + "all_hosts": [ + "c6402.ambari.apache.org", + "c6403.ambari.apache.org", + "c6401.ambari.apache.org" + ], + "storm_ui_server_hosts": [ + "c6402.ambari.apache.org" + ], + "all_racks": [ + "/default-rack", + "/default-rack", + "/default-rack" + ], + "all_ipv4_ips": [ + "192.168.64.102", + "192.168.64.103", + "192.168.64.101" + ], + "ambari_server_host": [ + "c6401.ambari.apache.org" + ], + "zookeeper_hosts": [ + "c6402.ambari.apache.org", + "c6403.ambari.apache.org", + "c6401.ambari.apache.org" + ], + "supervisor_hosts": [ + "c6401.ambari.apache.org" + ] + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ambari/blob/661d143b/ambari-web/app/data/HDP2/site_properties.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/data/HDP2/site_properties.js b/ambari-web/app/data/HDP2/site_properties.js index 2c50819..7fd2c26 100644 --- a/ambari-web/app/data/HDP2/site_properties.js +++ b/ambari-web/app/data/HDP2/site_properties.js @@ -1035,7 +1035,6 @@ var hdp2properties = [ "name": "nimbus.seeds", "displayName": "nimbus.seeds", "displayType": "masterHosts", - "isOverridable": false, "serviceName": "STORM", "filename": "storm-site.xml", "category": "NIMBUS",
