You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by jl...@apache.org on 2014/12/19 06:31:59 UTC
[1/6] ambari git commit: AMBARI-8779: Common Services: Refactor
HDP-2.1 FALCON, STORM, TEZ services (Jayush Luniya)
Repository: ambari
Updated Branches:
refs/heads/trunk ef7fe6b5c -> dc534389a
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/stacks/HDP/2.1/services/TEZ/configuration/tez-site.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.1/services/TEZ/configuration/tez-site.xml b/ambari-server/src/main/resources/stacks/HDP/2.1/services/TEZ/configuration/tez-site.xml
deleted file mode 100644
index 218c508..0000000
--- a/ambari-server/src/main/resources/stacks/HDP/2.1/services/TEZ/configuration/tez-site.xml
+++ /dev/null
@@ -1,215 +0,0 @@
-<?xml version="1.0"?>
-<!--
- 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.
--->
-
-<configuration supports_final="true">
-
- <property>
- <name>tez.lib.uris</name>
- <value>hdfs:///apps/tez/,hdfs:///apps/tez/lib/</value>
- <description>The location of the Tez libraries which will be localized for DAGs</description>
- </property>
-
- <property>
- <name>tez.am.log.level</name>
- <value>INFO</value>
- <description>Root Logging level passed to the Tez app master</description>
- </property>
-
- <property>
- <name>tez.staging-dir</name>
- <value>/tmp/${user.name}/staging</value>
- <description>The staging dir used while submitting DAGs</description>
- </property>
-
- <property>
- <name>tez.am.resource.memory.mb</name>
- <value>1536</value>
- <description>The amount of memory to be used by the AppMaster</description>
- </property>
-
- <!-- tez picks the java opts from yarn.app.mapreduce.am.command-opts for MR tasks. Likewise for the AM memory MB -->
- <property>
- <name>tez.am.java.opts</name>
- <value>-server -Xmx1024m -Djava.net.preferIPv4Stack=true -XX:+UseNUMA -XX:+UseParallelGC</value>
- <description>Java options for the Tez AppMaster process. The -Xmx parameter value is generally 0.8 times tez.am.resource.memory.mb config.</description>
- </property>
-
- <property>
- <name>tez.am.shuffle-vertex-manager.min-src-fraction</name>
- <value>0.2</value>
- <description>In case of a ScatterGather connection, the fraction of source tasks which should
- complete before tasks for the current vertex are schedule
- </description>
- </property>
-
- <property>
- <name>tez.am.shuffle-vertex-manager.max-src-fraction</name>
- <value>0.4</value>
- <description>In case of a ScatterGather connection, once this fraction of source tasks have
- completed, all tasks on the current vertex can be scheduled. Number of tasks ready for
- scheduling on the current vertex scales linearly between min-fraction and max-fraction
- </description>
- </property>
-
- <property>
- <name>tez.am.am-rm.heartbeat.interval-ms.max</name>
- <value>250</value>
- <description>The maximum heartbeat interval between the AM and RM in milliseconds</description>
- </property>
-
- <property>
- <name>tez.am.grouping.split-waves</name>
- <value>1.4</value>
- <description>The multiplier for available queue capacity when determining number of tasks for
- a Vertex. 1.4 with 100% queue available implies generating a number of tasks roughly equal
- to 140% of the available containers on the queue
- </description>
- </property>
-
- <property>
- <name>tez.am.grouping.min-size</name>
- <value>16777216</value>
- <description>Lower bound on the size (in bytes) of a grouped split, to avoid generating
- too many splits
- </description>
- </property>
-
- <property>
- <name>tez.am.grouping.max-size</name>
- <value>1073741824</value>
- <description>Upper bound on the size (in bytes) of a grouped split, to avoid generating
- excessively large split
- </description>
- </property>
-
- <property>
- <name>tez.am.container.reuse.enabled</name>
- <value>true</value>
- <description>Configuration to specify whether container should be reused</description>
- </property>
-
- <property>
- <name>tez.am.container.reuse.rack-fallback.enabled</name>
- <value>true</value>
- <description>Whether to reuse containers for rack local tasks. Active only if reuse is enabled
- </description>
- </property>
-
- <property>
- <name>tez.am.container.reuse.non-local-fallback.enabled</name>
- <value>true</value>
- <description>Whether to reuse containers for non-local tasks. Active only if reuse is enabled
- </description>
- </property>
-
- <property>
- <name>tez.am.container.session.delay-allocation-millis</name>
- <value>10000</value>
- <!-- TODO This value may change -->
- <description>The amount of time to hold on to a container if no task can be assigned to
- it immediately. Only active when reuse is enabled. Set to -1 to never release a container
- in a session
- </description>
- </property>
-
- <property>
- <name>tez.am.container.reuse.locality.delay-allocation-millis</name>
- <value>250</value>
- <description>The amount of time to wait before assigning a container to the next level of
- locality. NODE -> RACK -> NON_LOCAL
- </description>
- </property>
-
- <property>
- <name>tez.task.get-task.sleep.interval-ms.max</name>
- <value>200</value>
- <description>The maximum amount of time, in seconds, to wait before a task asks an AM for
- another task
- </description>
- </property>
-
- <property>
- <name>tez.am.env</name>
- <value>LD_LIBRARY_PATH=/usr/lib/hadoop/lib/native:/usr/lib/hadoop/lib/native/Linux-amd64-64</value>
- <description>
- Additional execution environment entries for tez. This is not an additive property. You must preserve the original value if
- you want to have access to native libraries.
- </description>
- </property>
-
- <!-- Client Submission timeout value when submitting DAGs to a session -->
- <property>
- <name>tez.session.client.timeout.secs</name>
- <value>180</value>
- <description>Time (in seconds) to wait for AM to come up when trying to submit a DAG from
- the client
- </description>
- </property>
-
- <property>
- <name>tez.session.am.dag.submit.timeout.secs</name>
- <value>300</value>
- <description>Time (in seconds) for which the Tez AM should wait for a DAG to be submitted
- before shutting down
- </description>
- </property>
-
-
- <!-- Configuration for runtime components -->
-
- <!-- These properties can be set on a per edge basis by configuring the payload for each
- edge independently. -->
-
- <property>
- <name>tez.runtime.intermediate-output.should-compress</name>
- <value>false</value>
- <description>Whether intermediate output should be compressed or not</description>
- </property>
-
- <property>
- <name>tez.runtime.intermediate-output.compress.codec</name>
- <value>org.apache.hadoop.io.compress.SnappyCodec</value>
- <description>The coded to be used if compressing intermediate output. Only
- applicable if tez.runtime.intermediate-output.should-compress is enabled.
- </description>
- </property>
-
- <property>
- <name>tez.runtime.intermediate-input.is-compressed</name>
- <value>false</value>
- <description>Whether intermediate input is compressed</description>
- </property>
-
- <property>
- <name>tez.runtime.intermediate-input.compress.codec</name>
- <value>org.apache.hadoop.io.compress.SnappyCodec</value>
- <description>The coded to be used when reading intermediate compressed input.
- Only applicable if tez.runtime.intermediate-input.is-compressed is enabled.</description>
- </property>
-
- <!-- Configuration for ATS integration -->
-
- <property>
- <name>tez.yarn.ats.enabled</name>
- <value>true</value>
- <description>Whether to send history events to YARN Application Timeline Server</description>
- </property>
-
-</configuration>
-
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/stacks/HDP/2.1/services/TEZ/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.1/services/TEZ/metainfo.xml b/ambari-server/src/main/resources/stacks/HDP/2.1/services/TEZ/metainfo.xml
index 641de86..92f125f 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.1/services/TEZ/metainfo.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/2.1/services/TEZ/metainfo.xml
@@ -20,54 +20,7 @@
<services>
<service>
<name>TEZ</name>
- <displayName>Tez</displayName>
- <comment>Tez is the next generation Hadoop Query Processing framework written on top of YARN.</comment>
- <version>0.4.0.2.1</version>
- <components>
- <component>
- <name>TEZ_CLIENT</name>
- <displayName>Tez Client</displayName>
- <cardinality>1+</cardinality>
- <category>CLIENT</category>
- <commandScript>
- <script>scripts/tez_client.py</script>
- <scriptType>PYTHON</scriptType>
- <timeout>600</timeout>
- </commandScript>
- <configFiles>
- <configFile>
- <type>xml</type>
- <fileName>tez-site.xml</fileName>
- <dictionaryName>tez-site</dictionaryName>
- </configFile>
- <configFile>
- <type>env</type>
- <fileName>tez-env.sh</fileName>
- <dictionaryName>tez-env</dictionaryName>
- </configFile>
- </configFiles>
- </component>
- </components>
- <osSpecifics>
- <osSpecific>
- <osFamily>any</osFamily>
- <packages>
- <package>
- <name>tez</name>
- </package>
- </packages>
- </osSpecific>
- </osSpecifics>
-
- <requiredServices>
- <service>YARN</service>
- </requiredServices>
-
- <configuration-dependencies>
- <config-type>tez-site</config-type>
- <config-type>tez-env</config-type>
- </configuration-dependencies>
-
+ <extends>common-services/TEZ/0.4.0.2.1</extends>
</service>
</services>
</metainfo>
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/stacks/HDP/2.1/services/TEZ/package/scripts/params.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.1/services/TEZ/package/scripts/params.py b/ambari-server/src/main/resources/stacks/HDP/2.1/services/TEZ/package/scripts/params.py
deleted file mode 100644
index 31162cd..0000000
--- a/ambari-server/src/main/resources/stacks/HDP/2.1/services/TEZ/package/scripts/params.py
+++ /dev/null
@@ -1,67 +0,0 @@
-#!/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 resource_management.libraries.functions.version import format_hdp_stack_version, compare_versions
-from resource_management import *
-
-# server configurations
-config = Script.get_config()
-
-# This is expected to be of the form #.#.#.#
-hdp_stack_version = str(config['hostLevelParams']['stack_version'])
-hdp_stack_version = format_hdp_stack_version(hdp_stack_version)
-
-# New Cluster Stack Version that is defined during the RESTART of a Rolling Upgrade
-version = default("/commandParams/version", None)
-
-if hdp_stack_version != "" and compare_versions(hdp_stack_version, '2.2') >= 0:
- hadoop_bin_dir = "/usr/hdp/current/hadoop-client/bin"
-else:
- hadoop_bin_dir = "/usr/bin"
-hadoop_conf_dir = "/etc/hadoop/conf"
-
-kinit_path_local = functions.get_kinit_path(["/usr/bin", "/usr/kerberos/bin", "/usr/sbin"])
-security_enabled = config['configurations']['cluster-env']['security_enabled']
-hdfs_user = config['configurations']['hadoop-env']['hdfs_user']
-hdfs_principal_name = config['configurations']['hadoop-env']['hdfs_principal_name']
-hdfs_user_keytab = config['configurations']['hadoop-env']['hdfs_user_keytab']
-
-config_dir_prefix = "/etc/tez"
-config_dir = format("{config_dir_prefix}/conf")
-
-hadoop_home = '/usr'
-java64_home = config['hostLevelParams']['java_home']
-
-tez_user = config['configurations']['tez-env']['tez_user']
-user_group = config['configurations']['cluster-env']['user_group']
-tez_env_sh_template = config['configurations']['tez-env']['content']
-
-import functools
-# Create partial functions with common arguments for every HdfsDirectory call
-# to create hdfs directory we need to call params.HdfsDirectory in code
-HdfsDirectory = functools.partial(
- HdfsDirectory,
- conf_dir=hadoop_conf_dir,
- hdfs_user=hdfs_principal_name if security_enabled else hdfs_user,
- security_enabled=security_enabled,
- keytab=hdfs_user_keytab,
- kinit_path_local=kinit_path_local,
- bin_dir=hadoop_bin_dir
-)
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/stacks/HDP/2.1/services/TEZ/package/scripts/tez.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.1/services/TEZ/package/scripts/tez.py b/ambari-server/src/main/resources/stacks/HDP/2.1/services/TEZ/package/scripts/tez.py
deleted file mode 100644
index bb8b7c2..0000000
--- a/ambari-server/src/main/resources/stacks/HDP/2.1/services/TEZ/package/scripts/tez.py
+++ /dev/null
@@ -1,61 +0,0 @@
-"""
-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.
-
-Ambari Agent
-
-"""
-
-from resource_management import *
-
-def tez():
- import params
-
- Directory(params.config_dir_prefix,
- mode=0755
- )
- Directory(params.config_dir,
- owner = params.tez_user,
- group = params.user_group,
- recursive = True
- )
-
- XmlConfig( "tez-site.xml",
- conf_dir = params.config_dir,
- configurations = params.config['configurations']['tez-site'],
- configuration_attributes=params.config['configuration_attributes']['tez-site'],
- owner = params.tez_user,
- group = params.user_group,
- mode = 0664
- )
-
- File(format("{config_dir}/tez-env.sh"),
- owner=params.tez_user,
- content=InlineTemplate(params.tez_env_sh_template)
- )
-
-
-def tez_TemplateConfig(name):
- import params
-
- if not isinstance(name, list):
- name = [name]
-
- for x in name:
- TemplateConfig(format("{config_dir}/{x}"),
- owner = params.tez_user
- )
-
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/stacks/HDP/2.1/services/TEZ/package/scripts/tez_client.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.1/services/TEZ/package/scripts/tez_client.py b/ambari-server/src/main/resources/stacks/HDP/2.1/services/TEZ/package/scripts/tez_client.py
deleted file mode 100644
index 04cfb90..0000000
--- a/ambari-server/src/main/resources/stacks/HDP/2.1/services/TEZ/package/scripts/tez_client.py
+++ /dev/null
@@ -1,49 +0,0 @@
-"""
-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.
-
-Ambari Agent
-
-"""
-
-import sys
-from resource_management import *
-from tez import tez
-
-class TezClient(Script):
-
- def pre_rolling_restart(self, env):
- import params
- env.set_params(params)
-
- if params.version and compare_versions(format_hdp_stack_version(params.version), '2.2.0.0') >= 0:
- Execute(format("hdp-select set hadoop-client {version}"))
-
- def install(self, env):
- self.install_packages(env)
- self.configure(env)
-
- def configure(self, env):
- import params
- env.set_params(params)
- tez()
-
- def status(self, env):
- raise ClientComponentHasNoStatus()
-
-
-if __name__ == "__main__":
- TezClient().execute()
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/test/python/stacks/2.1/FALCON/test_falcon_client.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.1/FALCON/test_falcon_client.py b/ambari-server/src/test/python/stacks/2.1/FALCON/test_falcon_client.py
index 2763574..267e1ab 100644
--- a/ambari-server/src/test/python/stacks/2.1/FALCON/test_falcon_client.py
+++ b/ambari-server/src/test/python/stacks/2.1/FALCON/test_falcon_client.py
@@ -22,11 +22,16 @@ from stacks.utils.RMFTestCase import *
class TestFalconClient(RMFTestCase):
+ COMMON_SERVICES_PACKAGE_DIR = "FALCON/0.5.0.2.1/package"
+ STACK_VERSION = "2.1"
+
def test_configure_default(self):
- self.executeScript("2.1/services/FALCON/package/scripts/falcon_client.py",
+ self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/falcon_client.py",
classname="FalconClient",
command="configure",
- config_file="default.json"
+ config_file="default.json",
+ hdp_stack_version = self.STACK_VERSION,
+ target = RMFTestCase.TARGET_COMMON_SERVICES
)
self.assertResourceCalled('Directory', '/var/run/falcon',
owner = 'falcon',
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/test/python/stacks/2.1/FALCON/test_falcon_server.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.1/FALCON/test_falcon_server.py b/ambari-server/src/test/python/stacks/2.1/FALCON/test_falcon_server.py
index 91e10b0..5451cf8 100644
--- a/ambari-server/src/test/python/stacks/2.1/FALCON/test_falcon_server.py
+++ b/ambari-server/src/test/python/stacks/2.1/FALCON/test_falcon_server.py
@@ -22,12 +22,16 @@ from stacks.utils.RMFTestCase import *
class TestFalconServer(RMFTestCase):
+ COMMON_SERVICES_PACKAGE_DIR = "FALCON/0.5.0.2.1/package"
+ STACK_VERSION = "2.1"
def test_start_default(self):
- self.executeScript("2.1/services/FALCON/package/scripts/falcon_server.py",
+ self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/falcon_server.py",
classname="FalconServer",
command="start",
- config_file="default.json"
+ config_file="default.json",
+ hdp_stack_version = self.STACK_VERSION,
+ target = RMFTestCase.TARGET_COMMON_SERVICES
)
self.assert_configure_default()
self.assertResourceCalled('Execute', '/usr/lib/falcon/bin/falcon-start -port 15000',
@@ -37,10 +41,12 @@ class TestFalconServer(RMFTestCase):
self.assertNoMoreResources()
def test_stop_default(self):
- self.executeScript("2.1/services/FALCON/package/scripts/falcon_server.py",
+ self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/falcon_server.py",
classname="FalconServer",
command="stop",
- config_file="default.json"
+ config_file="default.json",
+ hdp_stack_version = self.STACK_VERSION,
+ target = RMFTestCase.TARGET_COMMON_SERVICES
)
self.assertResourceCalled('Execute', '/usr/lib/falcon/bin/falcon-stop',
path = ['/usr/bin'],
@@ -52,10 +58,12 @@ class TestFalconServer(RMFTestCase):
self.assertNoMoreResources()
def test_configure_default(self):
- self.executeScript("2.1/services/FALCON/package/scripts/falcon_server.py",
+ self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/falcon_server.py",
classname="FalconServer",
command="configure",
- config_file="default.json"
+ config_file="default.json",
+ hdp_stack_version = self.STACK_VERSION,
+ target = RMFTestCase.TARGET_COMMON_SERVICES
)
self.assert_configure_default()
self.assertNoMoreResources()
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/test/python/stacks/2.1/FALCON/test_service_check.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.1/FALCON/test_service_check.py b/ambari-server/src/test/python/stacks/2.1/FALCON/test_service_check.py
index 97bb480..7258eae 100644
--- a/ambari-server/src/test/python/stacks/2.1/FALCON/test_service_check.py
+++ b/ambari-server/src/test/python/stacks/2.1/FALCON/test_service_check.py
@@ -22,12 +22,16 @@ from stacks.utils.RMFTestCase import *
class TestFalconServer(RMFTestCase):
+ COMMON_SERVICES_PACKAGE_DIR = "FALCON/0.5.0.2.1/package"
+ STACK_VERSION = "2.1"
def test_service_check(self):
- self.executeScript("2.1/services/FALCON/package/scripts/service_check.py",
+ self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/service_check.py",
classname="FalconServiceCheck",
command="service_check",
- config_file="default.json"
+ config_file="default.json",
+ hdp_stack_version = self.STACK_VERSION,
+ target = RMFTestCase.TARGET_COMMON_SERVICES
)
self.assertResourceCalled('Execute', '/usr/lib/falcon/bin/falcon admin -version',
logoutput = True,
@@ -36,10 +40,12 @@ class TestFalconServer(RMFTestCase):
try_sleep = 20,)
self.assertNoMoreResources()
def test_service_check_secured(self):
- self.executeScript("2.1/services/FALCON/package/scripts/service_check.py",
+ self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/service_check.py",
classname="FalconServiceCheck",
command="service_check",
- config_file="secured.json"
+ config_file="secured.json",
+ hdp_stack_version = self.STACK_VERSION,
+ target = RMFTestCase.TARGET_COMMON_SERVICES
)
self.assertResourceCalled('Execute','/usr/bin/kinit -kt /etc/security/keytabs/smokeuser.headless.keytab ambari-qa',
user='ambari-qa'
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/test/python/stacks/2.1/STORM/test_service_check.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.1/STORM/test_service_check.py b/ambari-server/src/test/python/stacks/2.1/STORM/test_service_check.py
index c6dda41..5686196 100644
--- a/ambari-server/src/test/python/stacks/2.1/STORM/test_service_check.py
+++ b/ambari-server/src/test/python/stacks/2.1/STORM/test_service_check.py
@@ -22,15 +22,19 @@ from mock.mock import MagicMock, call, patch
from stacks.utils.RMFTestCase import *
import datetime
import resource_management.libraries.functions
+from test_storm_base import TestStormBase
+
@patch.object(resource_management.libraries.functions, "get_unique_id_and_date", new = MagicMock(return_value=''))
-class TestStormServiceCheck(RMFTestCase):
+class TestStormServiceCheck(TestStormBase):
def test_service_check(self):
- self.executeScript("2.1/services/STORM/package/scripts/service_check.py",
+ self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/service_check.py",
classname="ServiceCheck",
command="service_check",
- config_file="default.json"
+ config_file="default.json",
+ hdp_stack_version = self.STACK_VERSION,
+ target = RMFTestCase.TARGET_COMMON_SERVICES
)
self.assertResourceCalled('File', '/tmp/wordCount.jar',
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_base.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_base.py b/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_base.py
index d9a2bc0..6e6e2eb 100644
--- a/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_base.py
+++ b/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_base.py
@@ -25,6 +25,9 @@ import re
class TestStormBase(RMFTestCase):
+ COMMON_SERVICES_PACKAGE_DIR = "STORM/0.9.1.2.1/package"
+ STACK_VERSION = "2.1"
+
def assert_configure_default(self):
import params
self.assertResourceCalled('Directory', '/var/log/storm',
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_drpc_server.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_drpc_server.py b/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_drpc_server.py
index 2527e69..336aded 100644
--- a/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_drpc_server.py
+++ b/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_drpc_server.py
@@ -26,10 +26,12 @@ from test_storm_base import TestStormBase
class TestStormDrpcServer(TestStormBase):
def test_configure_default(self):
- self.executeScript("2.1/services/STORM/package/scripts/drpc_server.py",
+ self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/drpc_server.py",
classname = "DrpcServer",
command = "configure",
- config_file="default.json"
+ config_file="default.json",
+ hdp_stack_version = self.STACK_VERSION,
+ target = RMFTestCase.TARGET_COMMON_SERVICES
)
self.assert_configure_default()
@@ -37,10 +39,12 @@ class TestStormDrpcServer(TestStormBase):
def test_start_default(self):
- self.executeScript("2.1/services/STORM/package/scripts/drpc_server.py",
+ self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/drpc_server.py",
classname = "DrpcServer",
command = "start",
- config_file="default.json"
+ config_file="default.json",
+ hdp_stack_version = self.STACK_VERSION,
+ target = RMFTestCase.TARGET_COMMON_SERVICES
)
self.assert_configure_default()
@@ -61,10 +65,12 @@ class TestStormDrpcServer(TestStormBase):
self.assertNoMoreResources()
def test_stop_default(self):
- self.executeScript("2.1/services/STORM/package/scripts/drpc_server.py",
+ self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/drpc_server.py",
classname = "DrpcServer",
command = "stop",
- config_file="default.json"
+ config_file="default.json",
+ hdp_stack_version = self.STACK_VERSION,
+ target = RMFTestCase.TARGET_COMMON_SERVICES
)
self.assertResourceCalled('Execute', 'sudo kill `cat /var/run/storm/drpc.pid`',
not_if = '! (ls /var/run/storm/drpc.pid >/dev/null 2>&1 && ps -p `cat /var/run/storm/drpc.pid` >/dev/null 2>&1)',
@@ -79,19 +85,23 @@ class TestStormDrpcServer(TestStormBase):
self.assertNoMoreResources()
def test_configure_secured(self):
- self.executeScript("2.1/services/STORM/package/scripts/drpc_server.py",
+ self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/drpc_server.py",
classname = "DrpcServer",
command = "configure",
- config_file="secured.json"
+ config_file="secured.json",
+ hdp_stack_version = self.STACK_VERSION,
+ target = RMFTestCase.TARGET_COMMON_SERVICES
)
self.assert_configure_secured()
self.assertNoMoreResources()
def test_start_secured(self):
- self.executeScript("2.1/services/STORM/package/scripts/drpc_server.py",
+ self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/drpc_server.py",
classname = "DrpcServer",
command = "start",
- config_file="secured.json"
+ config_file="secured.json",
+ hdp_stack_version = self.STACK_VERSION,
+ target = RMFTestCase.TARGET_COMMON_SERVICES
)
self.assert_configure_secured()
@@ -112,10 +122,12 @@ class TestStormDrpcServer(TestStormBase):
self.assertNoMoreResources()
def test_stop_secured(self):
- self.executeScript("2.1/services/STORM/package/scripts/drpc_server.py",
+ self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/drpc_server.py",
classname = "DrpcServer",
command = "stop",
- config_file="secured.json"
+ config_file="secured.json",
+ hdp_stack_version = self.STACK_VERSION,
+ target = RMFTestCase.TARGET_COMMON_SERVICES
)
self.assertResourceCalled('Execute', 'sudo kill `cat /var/run/storm/drpc.pid`',
not_if = '! (ls /var/run/storm/drpc.pid >/dev/null 2>&1 && ps -p `cat /var/run/storm/drpc.pid` >/dev/null 2>&1)',
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_jaas_configuration.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_jaas_configuration.py b/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_jaas_configuration.py
index d8b5465..047bfaf 100644
--- a/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_jaas_configuration.py
+++ b/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_jaas_configuration.py
@@ -26,18 +26,22 @@ from test_storm_base import TestStormBase
class TestStormJaasConfiguration(TestStormBase):
def test_configure_default(self):
- self.executeScript("2.1/services/STORM/package/scripts/nimbus.py",
+ self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/nimbus.py",
classname = "Nimbus",
command = "configure",
- config_file = "default-storm-start.json"
+ config_file = "default-storm-start.json",
+ hdp_stack_version = self.STACK_VERSION,
+ target = RMFTestCase.TARGET_COMMON_SERVICES
)
self.assert_configure_default()
def test_start_default(self):
- self.executeScript("2.1/services/STORM/package/scripts/nimbus.py",
+ self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/nimbus.py",
classname = "Nimbus",
command = "start",
- config_file = "default-storm-start.json"
+ config_file = "default-storm-start.json",
+ hdp_stack_version = self.STACK_VERSION,
+ target = RMFTestCase.TARGET_COMMON_SERVICES
)
self.assert_configure_default()
@@ -45,19 +49,23 @@ class TestStormJaasConfiguration(TestStormBase):
@patch("storm._find_real_user_min_uid")
def test_configure_secured(self, find_real_user_max_pid):
find_real_user_max_pid.return_value = 500
- self.executeScript("2.1/services/STORM/package/scripts/nimbus.py",
+ self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/nimbus.py",
classname = "Nimbus",
command = "configure",
- config_file = "secured-storm-start.json"
+ config_file = "secured-storm-start.json",
+ hdp_stack_version = self.STACK_VERSION,
+ target = RMFTestCase.TARGET_COMMON_SERVICES
)
self.assert_configure_secured()
@patch("storm._find_real_user_min_uid")
def test_start_secured(self, find_real_user_max_pid):
find_real_user_max_pid.return_value = 500
- self.executeScript("2.1/services/STORM/package/scripts/nimbus.py",
+ self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/nimbus.py",
classname = "Nimbus",
command = "start",
- config_file = "secured-storm-start.json"
+ config_file = "secured-storm-start.json",
+ hdp_stack_version = self.STACK_VERSION,
+ target = RMFTestCase.TARGET_COMMON_SERVICES
)
self.assert_configure_secured()
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_nimbus.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_nimbus.py b/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_nimbus.py
index 3b82e22..d9887d4 100644
--- a/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_nimbus.py
+++ b/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_nimbus.py
@@ -27,19 +27,23 @@ from test_storm_base import TestStormBase
class TestStormNimbus(TestStormBase):
def test_configure_default(self):
- self.executeScript("2.1/services/STORM/package/scripts/nimbus.py",
+ self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/nimbus.py",
classname = "Nimbus",
command = "configure",
- config_file="default.json"
+ config_file="default.json",
+ hdp_stack_version = self.STACK_VERSION,
+ target = RMFTestCase.TARGET_COMMON_SERVICES
)
self.assert_configure_default()
self.assertNoMoreResources()
def test_start_default(self):
- self.executeScript("2.1/services/STORM/package/scripts/nimbus.py",
+ self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/nimbus.py",
classname = "Nimbus",
command = "start",
- config_file="default.json"
+ config_file="default.json",
+ hdp_stack_version = self.STACK_VERSION,
+ target = RMFTestCase.TARGET_COMMON_SERVICES
)
self.assert_configure_default()
@@ -60,10 +64,12 @@ class TestStormNimbus(TestStormBase):
self.assertNoMoreResources()
def test_stop_default(self):
- self.executeScript("2.1/services/STORM/package/scripts/nimbus.py",
+ self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/nimbus.py",
classname = "Nimbus",
command = "stop",
- config_file="default.json"
+ config_file="default.json",
+ hdp_stack_version = self.STACK_VERSION,
+ target = RMFTestCase.TARGET_COMMON_SERVICES
)
self.assertResourceCalled('Execute', 'sudo kill `cat /var/run/storm/nimbus.pid`',
not_if = '! (ls /var/run/storm/nimbus.pid >/dev/null 2>&1 && ps -p `cat /var/run/storm/nimbus.pid` >/dev/null 2>&1)',
@@ -78,19 +84,23 @@ class TestStormNimbus(TestStormBase):
self.assertNoMoreResources()
def test_configure_secured(self):
- self.executeScript("2.1/services/STORM/package/scripts/nimbus.py",
+ self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/nimbus.py",
classname = "Nimbus",
command = "configure",
- config_file="secured.json"
+ config_file="secured.json",
+ hdp_stack_version = self.STACK_VERSION,
+ target = RMFTestCase.TARGET_COMMON_SERVICES
)
self.assert_configure_secured()
self.assertNoMoreResources()
def test_start_secured(self):
- self.executeScript("2.1/services/STORM/package/scripts/nimbus.py",
+ self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/nimbus.py",
classname = "Nimbus",
command = "start",
- config_file="secured.json"
+ config_file="secured.json",
+ hdp_stack_version = self.STACK_VERSION,
+ target = RMFTestCase.TARGET_COMMON_SERVICES
)
self.assert_configure_secured()
@@ -111,10 +121,12 @@ class TestStormNimbus(TestStormBase):
self.assertNoMoreResources()
def test_stop_secured(self):
- self.executeScript("2.1/services/STORM/package/scripts/nimbus.py",
+ self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/nimbus.py",
classname = "Nimbus",
command = "stop",
- config_file="secured.json"
+ config_file="secured.json",
+ hdp_stack_version = self.STACK_VERSION,
+ target = RMFTestCase.TARGET_COMMON_SERVICES
)
self.assertResourceCalled('Execute', 'sudo kill `cat /var/run/storm/nimbus.pid`',
not_if = '! (ls /var/run/storm/nimbus.pid >/dev/null 2>&1 && ps -p `cat /var/run/storm/nimbus.pid` >/dev/null 2>&1)',
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_nimbus_prod.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_nimbus_prod.py b/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_nimbus_prod.py
index e7a2761..6c7ea30 100644
--- a/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_nimbus_prod.py
+++ b/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_nimbus_prod.py
@@ -26,19 +26,23 @@ from test_storm_base import TestStormBase
class TestStormNimbus(TestStormBase):
def test_configure_default(self):
- self.executeScript("2.1/services/STORM/package/scripts/nimbus_prod.py",
+ self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/nimbus_prod.py",
classname = "Nimbus",
command = "configure",
- config_file="default.json"
+ config_file="default.json",
+ hdp_stack_version = self.STACK_VERSION,
+ target = RMFTestCase.TARGET_COMMON_SERVICES
)
self.assert_configure_default()
self.assertNoMoreResources()
def test_start_default(self):
- self.executeScript("2.1/services/STORM/package/scripts/nimbus_prod.py",
+ self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/nimbus_prod.py",
classname = "Nimbus",
command = "start",
- config_file="default.json"
+ config_file="default.json",
+ hdp_stack_version = self.STACK_VERSION,
+ target = RMFTestCase.TARGET_COMMON_SERVICES
)
self.assert_configure_default()
@@ -49,10 +53,12 @@ class TestStormNimbus(TestStormBase):
self.assertNoMoreResources()
def test_stop_default(self):
- self.executeScript("2.1/services/STORM/package/scripts/nimbus_prod.py",
+ self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/nimbus_prod.py",
classname = "Nimbus",
command = "stop",
- config_file="default.json"
+ config_file="default.json",
+ hdp_stack_version = self.STACK_VERSION,
+ target = RMFTestCase.TARGET_COMMON_SERVICES
)
self.assertResourceCalled('Execute', 'supervisorctl stop storm-nimbus',
wait_for_finish = False,
@@ -60,19 +66,23 @@ class TestStormNimbus(TestStormBase):
self.assertNoMoreResources()
def test_configure_secured(self):
- self.executeScript("2.1/services/STORM/package/scripts/nimbus_prod.py",
+ self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/nimbus_prod.py",
classname = "Nimbus",
command = "configure",
- config_file="secured.json"
+ config_file="secured.json",
+ hdp_stack_version = self.STACK_VERSION,
+ target = RMFTestCase.TARGET_COMMON_SERVICES
)
self.assert_configure_secured()
self.assertNoMoreResources()
def test_start_secured(self):
- self.executeScript("2.1/services/STORM/package/scripts/nimbus_prod.py",
+ self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/nimbus_prod.py",
classname = "Nimbus",
command = "start",
- config_file="secured.json"
+ config_file="secured.json",
+ hdp_stack_version = self.STACK_VERSION,
+ target = RMFTestCase.TARGET_COMMON_SERVICES
)
self.assert_configure_secured()
@@ -83,10 +93,12 @@ class TestStormNimbus(TestStormBase):
self.assertNoMoreResources()
def test_stop_secured(self):
- self.executeScript("2.1/services/STORM/package/scripts/nimbus_prod.py",
+ self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/nimbus_prod.py",
classname = "Nimbus",
command = "stop",
- config_file="secured.json"
+ config_file="secured.json",
+ hdp_stack_version = self.STACK_VERSION,
+ target = RMFTestCase.TARGET_COMMON_SERVICES
)
self.assertResourceCalled('Execute', 'supervisorctl stop storm-nimbus',
wait_for_finish = False,
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_rest_api_service.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_rest_api_service.py b/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_rest_api_service.py
index a818313..4e29ffa 100644
--- a/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_rest_api_service.py
+++ b/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_rest_api_service.py
@@ -26,19 +26,23 @@ from test_storm_base import TestStormBase
class TestStormRestApi(TestStormBase):
def test_configure_default(self):
- self.executeScript("2.1/services/STORM/package/scripts/rest_api.py",
+ self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/rest_api.py",
classname = "StormRestApi",
command = "configure",
- config_file="default.json"
+ config_file="default.json",
+ hdp_stack_version = self.STACK_VERSION,
+ target = RMFTestCase.TARGET_COMMON_SERVICES
)
self.assert_configure_default()
self.assertNoMoreResources()
def test_start_default(self):
- self.executeScript("2.1/services/STORM/package/scripts/rest_api.py",
+ self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/rest_api.py",
classname = "StormRestApi",
command = "start",
- config_file="default.json"
+ config_file="default.json",
+ hdp_stack_version = self.STACK_VERSION,
+ target = RMFTestCase.TARGET_COMMON_SERVICES
)
self.assert_configure_default()
@@ -59,10 +63,12 @@ class TestStormRestApi(TestStormBase):
self.assertNoMoreResources()
def test_stop_default(self):
- self.executeScript("2.1/services/STORM/package/scripts/rest_api.py",
+ self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/rest_api.py",
classname = "StormRestApi",
command = "stop",
- config_file="default.json"
+ config_file="default.json",
+ hdp_stack_version = self.STACK_VERSION,
+ target = RMFTestCase.TARGET_COMMON_SERVICES
)
self.assertResourceCalled('Execute', 'sudo kill `cat /var/run/storm/restapi.pid`',
not_if = '! (ls /var/run/storm/restapi.pid >/dev/null 2>&1 && ps -p `cat /var/run/storm/restapi.pid` >/dev/null 2>&1)',
@@ -77,19 +83,23 @@ class TestStormRestApi(TestStormBase):
self.assertNoMoreResources()
def test_configure_secured(self):
- self.executeScript("2.1/services/STORM/package/scripts/rest_api.py",
+ self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/rest_api.py",
classname = "StormRestApi",
command = "configure",
- config_file="secured.json"
+ config_file="secured.json",
+ hdp_stack_version = self.STACK_VERSION,
+ target = RMFTestCase.TARGET_COMMON_SERVICES
)
self.assert_configure_secured()
self.assertNoMoreResources()
def test_start_secured(self):
- self.executeScript("2.1/services/STORM/package/scripts/rest_api.py",
+ self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/rest_api.py",
classname = "StormRestApi",
command = "start",
- config_file="secured.json"
+ config_file="secured.json",
+ hdp_stack_version = self.STACK_VERSION,
+ target = RMFTestCase.TARGET_COMMON_SERVICES
)
self.assert_configure_secured()
@@ -111,10 +121,12 @@ class TestStormRestApi(TestStormBase):
self.assertNoMoreResources()
def test_stop_secured(self):
- self.executeScript("2.1/services/STORM/package/scripts/rest_api.py",
+ self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/rest_api.py",
classname = "StormRestApi",
command = "stop",
- config_file="secured.json"
+ config_file="secured.json",
+ hdp_stack_version = self.STACK_VERSION,
+ target = RMFTestCase.TARGET_COMMON_SERVICES
)
self.assertResourceCalled('Execute', 'sudo kill `cat /var/run/storm/restapi.pid`',
not_if = '! (ls /var/run/storm/restapi.pid >/dev/null 2>&1 && ps -p `cat /var/run/storm/restapi.pid` >/dev/null 2>&1)',
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_supervisor.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_supervisor.py b/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_supervisor.py
index b968b1b..699dce8 100644
--- a/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_supervisor.py
+++ b/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_supervisor.py
@@ -26,19 +26,23 @@ from test_storm_base import TestStormBase
class TestStormSupervisor(TestStormBase):
def test_configure_default(self):
- self.executeScript("2.1/services/STORM/package/scripts/supervisor.py",
+ self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/supervisor.py",
classname = "Supervisor",
command = "configure",
- config_file="default.json"
+ config_file="default.json",
+ hdp_stack_version = self.STACK_VERSION,
+ target = RMFTestCase.TARGET_COMMON_SERVICES
)
self.assert_configure_default()
self.assertNoMoreResources()
def test_start_default(self):
- self.executeScript("2.1/services/STORM/package/scripts/supervisor.py",
+ self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/supervisor.py",
classname = "Supervisor",
command = "start",
- config_file="default.json"
+ config_file="default.json",
+ hdp_stack_version = self.STACK_VERSION,
+ target = RMFTestCase.TARGET_COMMON_SERVICES
)
self.assert_configure_default()
@@ -72,10 +76,12 @@ class TestStormSupervisor(TestStormBase):
self.assertNoMoreResources()
def test_stop_default(self):
- self.executeScript("2.1/services/STORM/package/scripts/supervisor.py",
+ self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/supervisor.py",
classname = "Supervisor",
command = "stop",
- config_file="default.json"
+ config_file="default.json",
+ hdp_stack_version = self.STACK_VERSION,
+ target = RMFTestCase.TARGET_COMMON_SERVICES
)
self.assertResourceCalled('Execute', 'sudo kill `cat /var/run/storm/supervisor.pid`',
not_if = '! (ls /var/run/storm/supervisor.pid >/dev/null 2>&1 && ps -p `cat /var/run/storm/supervisor.pid` >/dev/null 2>&1)',
@@ -100,19 +106,23 @@ class TestStormSupervisor(TestStormBase):
self.assertNoMoreResources()
def test_configure_secured(self):
- self.executeScript("2.1/services/STORM/package/scripts/supervisor.py",
+ self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/supervisor.py",
classname = "Supervisor",
command = "configure",
- config_file="secured.json"
+ config_file="secured.json",
+ hdp_stack_version = self.STACK_VERSION,
+ target = RMFTestCase.TARGET_COMMON_SERVICES
)
self.assert_configure_secured()
self.assertNoMoreResources()
def test_start_secured(self):
- self.executeScript("2.1/services/STORM/package/scripts/supervisor.py",
+ self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/supervisor.py",
classname = "Supervisor",
command = "start",
- config_file="secured.json"
+ config_file="secured.json",
+ hdp_stack_version = self.STACK_VERSION,
+ target = RMFTestCase.TARGET_COMMON_SERVICES
)
self.assert_configure_secured()
@@ -147,10 +157,12 @@ class TestStormSupervisor(TestStormBase):
self.assertNoMoreResources()
def test_stop_secured(self):
- self.executeScript("2.1/services/STORM/package/scripts/supervisor.py",
+ self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/supervisor.py",
classname = "Supervisor",
command = "stop",
- config_file="secured.json"
+ config_file="secured.json",
+ hdp_stack_version = self.STACK_VERSION,
+ target = RMFTestCase.TARGET_COMMON_SERVICES
)
self.assertResourceCalled('Execute', 'sudo kill `cat /var/run/storm/supervisor.pid`',
not_if = '! (ls /var/run/storm/supervisor.pid >/dev/null 2>&1 && ps -p `cat /var/run/storm/supervisor.pid` >/dev/null 2>&1)',
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_supervisor_prod.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_supervisor_prod.py b/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_supervisor_prod.py
index 2822833..4ae0c4d 100644
--- a/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_supervisor_prod.py
+++ b/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_supervisor_prod.py
@@ -26,19 +26,23 @@ from test_storm_base import TestStormBase
class TestStormSupervisor(TestStormBase):
def test_configure_default(self):
- self.executeScript("2.1/services/STORM/package/scripts/supervisor_prod.py",
+ self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/supervisor_prod.py",
classname = "Supervisor",
command = "configure",
- config_file="default.json"
+ config_file="default.json",
+ hdp_stack_version = self.STACK_VERSION,
+ target = RMFTestCase.TARGET_COMMON_SERVICES
)
self.assert_configure_default()
self.assertNoMoreResources()
def test_start_default(self):
- self.executeScript("2.1/services/STORM/package/scripts/supervisor_prod.py",
+ self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/supervisor_prod.py",
classname = "Supervisor",
command = "start",
- config_file="default.json"
+ config_file="default.json",
+ hdp_stack_version = self.STACK_VERSION,
+ target = RMFTestCase.TARGET_COMMON_SERVICES
)
self.assert_configure_default()
@@ -62,10 +66,12 @@ class TestStormSupervisor(TestStormBase):
self.assertNoMoreResources()
def test_stop_default(self):
- self.executeScript("2.1/services/STORM/package/scripts/supervisor_prod.py",
+ self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/supervisor_prod.py",
classname = "Supervisor",
command = "stop",
- config_file="default.json"
+ config_file="default.json",
+ hdp_stack_version = self.STACK_VERSION,
+ target = RMFTestCase.TARGET_COMMON_SERVICES
)
self.assertResourceCalled('Execute', 'supervisorctl stop storm-supervisor',
wait_for_finish = False,
@@ -83,19 +89,23 @@ class TestStormSupervisor(TestStormBase):
self.assertNoMoreResources()
def test_configure_default(self):
- self.executeScript("2.1/services/STORM/package/scripts/supervisor_prod.py",
+ self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/supervisor_prod.py",
classname = "Supervisor",
command = "configure",
- config_file="secured.json"
+ config_file="secured.json",
+ hdp_stack_version = self.STACK_VERSION,
+ target = RMFTestCase.TARGET_COMMON_SERVICES
)
self.assert_configure_secured()
self.assertNoMoreResources()
def test_start_secured(self):
- self.executeScript("2.1/services/STORM/package/scripts/supervisor_prod.py",
+ self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/supervisor_prod.py",
classname = "Supervisor",
command = "start",
- config_file="secured.json"
+ config_file="secured.json",
+ hdp_stack_version = self.STACK_VERSION,
+ target = RMFTestCase.TARGET_COMMON_SERVICES
)
self.assert_configure_secured()
@@ -119,10 +129,12 @@ class TestStormSupervisor(TestStormBase):
self.assertNoMoreResources()
def test_stop_secured(self):
- self.executeScript("2.1/services/STORM/package/scripts/supervisor_prod.py",
+ self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/supervisor_prod.py",
classname = "Supervisor",
command = "stop",
- config_file="secured.json"
+ config_file="secured.json",
+ hdp_stack_version = self.STACK_VERSION,
+ target = RMFTestCase.TARGET_COMMON_SERVICES
)
self.assertResourceCalled('Execute', 'supervisorctl stop storm-supervisor',
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_ui_server.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_ui_server.py b/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_ui_server.py
index 5b6123a..becd591 100644
--- a/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_ui_server.py
+++ b/ambari-server/src/test/python/stacks/2.1/STORM/test_storm_ui_server.py
@@ -25,19 +25,23 @@ from test_storm_base import TestStormBase
class TestStormUiServer(TestStormBase):
def test_configure_default(self):
- self.executeScript("2.1/services/STORM/package/scripts/ui_server.py",
+ self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/ui_server.py",
classname = "UiServer",
command = "configure",
- config_file="default.json"
+ config_file="default.json",
+ hdp_stack_version = self.STACK_VERSION,
+ target = RMFTestCase.TARGET_COMMON_SERVICES
)
self.assert_configure_default()
self.assertNoMoreResources()
def test_start_default(self):
- self.executeScript("2.1/services/STORM/package/scripts/ui_server.py",
+ self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/ui_server.py",
classname = "UiServer",
command = "start",
- config_file="default.json"
+ config_file="default.json",
+ hdp_stack_version = self.STACK_VERSION,
+ target = RMFTestCase.TARGET_COMMON_SERVICES
)
self.assert_configure_default()
@@ -58,10 +62,12 @@ class TestStormUiServer(TestStormBase):
self.assertNoMoreResources()
def test_stop_default(self):
- self.executeScript("2.1/services/STORM/package/scripts/ui_server.py",
+ self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/ui_server.py",
classname = "UiServer",
command = "stop",
- config_file="default.json"
+ config_file="default.json",
+ hdp_stack_version = self.STACK_VERSION,
+ target = RMFTestCase.TARGET_COMMON_SERVICES
)
self.assertResourceCalled('Execute', 'sudo kill `cat /var/run/storm/ui.pid`',
not_if = '! (ls /var/run/storm/ui.pid >/dev/null 2>&1 && ps -p `cat /var/run/storm/ui.pid` >/dev/null 2>&1)',
@@ -76,19 +82,23 @@ class TestStormUiServer(TestStormBase):
self.assertNoMoreResources()
def test_configure_secured(self):
- self.executeScript("2.1/services/STORM/package/scripts/ui_server.py",
+ self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/ui_server.py",
classname = "UiServer",
command = "configure",
- config_file="secured.json"
+ config_file="secured.json",
+ hdp_stack_version = self.STACK_VERSION,
+ target = RMFTestCase.TARGET_COMMON_SERVICES
)
self.assert_configure_secured()
self.assertNoMoreResources()
def test_start_secured(self):
- self.executeScript("2.1/services/STORM/package/scripts/ui_server.py",
+ self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/ui_server.py",
classname = "UiServer",
command = "start",
- config_file="secured.json"
+ config_file="secured.json",
+ hdp_stack_version = self.STACK_VERSION,
+ target = RMFTestCase.TARGET_COMMON_SERVICES
)
self.assert_configure_secured()
@@ -110,10 +120,12 @@ class TestStormUiServer(TestStormBase):
self.assertNoMoreResources()
def test_stop_secured(self):
- self.executeScript("2.1/services/STORM/package/scripts/ui_server.py",
+ self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/ui_server.py",
classname = "UiServer",
command = "stop",
- config_file="secured.json"
+ config_file="secured.json",
+ hdp_stack_version = self.STACK_VERSION,
+ target = RMFTestCase.TARGET_COMMON_SERVICES
)
self.assertResourceCalled('Execute', 'sudo kill `cat /var/run/storm/ui.pid`',
not_if = '! (ls /var/run/storm/ui.pid >/dev/null 2>&1 && ps -p `cat /var/run/storm/ui.pid` >/dev/null 2>&1)',
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/test/python/stacks/2.1/TEZ/test_tez_client.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.1/TEZ/test_tez_client.py b/ambari-server/src/test/python/stacks/2.1/TEZ/test_tez_client.py
index e8acbe5..cc53422 100644
--- a/ambari-server/src/test/python/stacks/2.1/TEZ/test_tez_client.py
+++ b/ambari-server/src/test/python/stacks/2.1/TEZ/test_tez_client.py
@@ -22,11 +22,16 @@ from stacks.utils.RMFTestCase import *
class TestTezClient(RMFTestCase):
+ COMMON_SERVICES_PACKAGE_DIR = "TEZ/0.4.0.2.1/package"
+ STACK_VERSION = "2.1"
+
def test_configure_default(self):
- self.executeScript("2.1/services/TEZ/package/scripts/tez_client.py",
+ self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/tez_client.py",
classname = "TezClient",
command = "configure",
- config_file="default.json"
+ config_file="default.json",
+ hdp_stack_version = self.STACK_VERSION,
+ target = RMFTestCase.TARGET_COMMON_SERVICES
)
self.assertResourceCalled('Directory', '/etc/tez',
[5/6] ambari git commit: AMBARI-8779: Common Services: Refactor
HDP-2.1 FALCON, STORM, TEZ services (Jayush Luniya)
Posted by jl...@apache.org.
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/configuration/storm-site.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/configuration/storm-site.xml b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/configuration/storm-site.xml
new file mode 100644
index 0000000..b6a2cf2
--- /dev/null
+++ b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/configuration/storm-site.xml
@@ -0,0 +1,580 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+<!--
+/**
+ * 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.
+ */
+-->
+
+<configuration supports_final="true">
+ <property>
+ <name>java.library.path</name>
+ <value>/usr/local/lib:/opt/local/lib:/usr/lib</value>
+ <description>This value is passed to spawned JVMs (e.g., Nimbus, Supervisor, and Workers)
+ for the java.library.path value. java.library.path tells the JVM where
+ to look for native libraries. It is necessary to set this config correctly since
+ Storm uses the ZeroMQ and JZMQ native libs. </description>
+ </property>
+ <property>
+ <name>storm.local.dir</name>
+ <value>/hadoop/storm</value>
+ <description>A directory on the local filesystem used by Storm for any local
+ filesystem usage it needs. The directory must exist and the Storm daemons must
+ have permission to read/write from this location.</description>
+ </property>
+ <property>
+ <name>storm.zookeeper.servers</name>
+ <value>['localhost']</value>
+ <description>A list of hosts of ZooKeeper servers used to manage the cluster.</description>
+ </property>
+ <property>
+ <name>storm.zookeeper.port</name>
+ <value>2181</value>
+ <description>The port Storm will use to connect to each of the ZooKeeper servers.</description>
+ </property>
+ <property>
+ <name>storm.zookeeper.root</name>
+ <value>/storm</value>
+ <description>The root location at which Storm stores data in ZooKeeper.</description>
+ </property>
+ <property>
+ <name>storm.zookeeper.session.timeout</name>
+ <value>20000</value>
+ <description>The session timeout for clients to ZooKeeper.</description>
+ </property>
+ <property>
+ <name>storm.zookeeper.connection.timeout</name>
+ <value>15000</value>
+ <description>The connection timeout for clients to ZooKeeper.</description>
+ </property>
+ <property>
+ <name>storm.zookeeper.retry.times</name>
+ <value>5</value>
+ <description>The number of times to retry a Zookeeper operation.</description>
+ </property>
+ <property>
+ <name>storm.zookeeper.retry.interval</name>
+ <value>1000</value>
+ <description>The interval between retries of a Zookeeper operation.</description>
+ </property>
+ <property>
+ <name>storm.zookeeper.retry.intervalceiling.millis</name>
+ <value>30000</value>
+ <description>The ceiling of the interval between retries of a Zookeeper operation.</description>
+ </property>
+ <property>
+ <name>storm.cluster.mode</name>
+ <value>distributed</value>
+ <description>The mode this Storm cluster is running in. Either "distributed" or "local".</description>
+ </property>
+ <property>
+ <name>storm.local.mode.zmq</name>
+ <value>false</value>
+ <description>Whether or not to use ZeroMQ for messaging in local mode. If this is set
+ to false, then Storm will use a pure-Java messaging system. The purpose
+ of this flag is to make it easy to run Storm in local mode by eliminating
+ the need for native dependencies, which can be difficult to install.
+ </description>
+ </property>
+ <property>
+ <name>storm.thrift.transport</name>
+ <value>backtype.storm.security.auth.SimpleTransportPlugin</value>
+ <description>The transport plug-in for Thrift client/server communication.</description>
+ </property>
+ <property>
+ <name>storm.messaging.transport</name>
+ <value>backtype.storm.messaging.netty.Context</value>
+ <description>The transporter for communication among Storm tasks.</description>
+ </property>
+ <property>
+ <name>nimbus.host</name>
+ <value>localhost</value>
+ <description>The host that the master server is running on.</description>
+ </property>
+ <property>
+ <name>nimbus.thrift.port</name>
+ <value>6627</value>
+ <description> Which port the Thrift interface of Nimbus should run on. Clients should
+ connect to this port to upload jars and submit topologies.</description>
+ </property>
+ <property>
+ <name>nimbus.thrift.max_buffer_size</name>
+ <value>1048576</value>
+ <description>The maximum buffer size thrift should use when reading messages.</description>
+ </property>
+ <property>
+ <name>nimbus.childopts</name>
+ <value>-Xmx1024m -javaagent:/usr/lib/storm/contrib/storm-jmxetric/lib/jmxetric-1.0.4.jar=host=localhost,port=8649,wireformat31x=true,mode=multicast,config=/usr/lib/storm/contrib/storm-jmxetric/conf/jmxetric-conf.xml,process=Nimbus_JVM</value>
+ <description>This parameter is used by the storm-deploy project to configure the jvm options for the nimbus daemon.</description>
+ </property>
+ <property>
+ <name>nimbus.task.timeout.secs</name>
+ <value>30</value>
+ <description>How long without heartbeating a task can go before nimbus will consider the task dead and reassign it to another location.</description>
+ </property>
+ <property>
+ <name>nimbus.supervisor.timeout.secs</name>
+ <value>60</value>
+ <description>How long before a supervisor can go without heartbeating before nimbus considers it dead and stops assigning new work to it.</description>
+ </property>
+ <property>
+ <name>nimbus.monitor.freq.secs</name>
+ <value>10</value>
+ <description>
+ How often nimbus should wake up to check heartbeats and do reassignments. Note
+ that if a machine ever goes down Nimbus will immediately wake up and take action.
+ This parameter is for checking for failures when there's no explicit event like that occuring.
+ </description>
+ </property>
+ <property>
+ <name>nimbus.cleanup.inbox.freq.secs</name>
+ <value>600</value>
+ <description>How often nimbus should wake the cleanup thread to clean the inbox.</description>
+ </property>
+ <property>
+ <name>nimbus.inbox.jar.expiration.secs</name>
+ <value>3600</value>
+ <description>
+ The length of time a jar file lives in the inbox before being deleted by the cleanup thread.
+
+ Probably keep this value greater than or equal to NIMBUS_CLEANUP_INBOX_JAR_EXPIRATION_SECS.
+ Note that the time it takes to delete an inbox jar file is going to be somewhat more than
+ NIMBUS_CLEANUP_INBOX_JAR_EXPIRATION_SECS (depending on how often NIMBUS_CLEANUP_FREQ_SECS is set to).
+ </description>
+ </property>
+ <property>
+ <name>nimbus.task.launch.secs</name>
+ <value>120</value>
+ <description>A special timeout used when a task is initially launched. During launch, this is the timeout
+ used until the first heartbeat, overriding nimbus.task.timeout.secs.</description>
+ </property>
+ <property>
+ <name>nimbus.reassign</name>
+ <value>true</value>
+ <description>Whether or not nimbus should reassign tasks if it detects that a task goes down.
+ Defaults to true, and it's not recommended to change this value.</description>
+ </property>
+ <property>
+ <name>nimbus.file.copy.expiration.secs</name>
+ <value>600</value>
+ <description>During upload/download with the master, how long an upload or download connection is idle
+ before nimbus considers it dead and drops the connection.</description>
+ </property>
+ <property>
+ <name>nimbus.topology.validator</name>
+ <value>backtype.storm.nimbus.DefaultTopologyValidator</value>
+ <description>A custom class that implements ITopologyValidator that is run whenever a
+ topology is submitted. Can be used to provide business-specific logic for
+ whether topologies are allowed to run or not.</description>
+ </property>
+ <property>
+ <name>ui.port</name>
+ <value>8744</value>
+ <description>Storm UI binds to this port.</description>
+ </property>
+ <property>
+ <name>ui.childopts</name>
+ <value>-Xmx768m</value>
+ <description>Childopts for Storm UI Java process.</description>
+ </property>
+ <property>
+ <name>logviewer.port</name>
+ <value>8000</value>
+ <description>HTTP UI port for log viewer.</description>
+ </property>
+ <property>
+ <name>logviewer.childopts</name>
+ <value>-Xmx128m</value>
+ <description>Childopts for log viewer java process.</description>
+ </property>
+ <property>
+ <name>logviewer.appender.name</name>
+ <value>A1</value>
+ <description>Appender name used by log viewer to determine log directory.</description>
+ </property>
+ <property>
+ <name>drpc.port</name>
+ <value>3772</value>
+ <description>This port is used by Storm DRPC for receiving DPRC requests from clients.</description>
+ </property>
+ <property>
+ <name>drpc.worker.threads</name>
+ <value>64</value>
+ <description>DRPC thrift server worker threads.</description>
+ </property>
+ <property>
+ <name>drpc.queue.size</name>
+ <value>128</value>
+ <description>DRPC thrift server queue size.</description>
+ </property>
+ <property>
+ <name>drpc.invocations.port</name>
+ <value>3773</value>
+ <description>This port on Storm DRPC is used by DRPC topologies to receive function invocations and send results back.</description>
+ </property>
+ <property>
+ <name>drpc.request.timeout.secs</name>
+ <value>600</value>
+ <description>The timeout on DRPC requests within the DRPC server. Defaults to 10 minutes. Note that requests can also
+ timeout based on the socket timeout on the DRPC client, and separately based on the topology message
+ timeout for the topology implementing the DRPC function.</description>
+ </property>
+ <property>
+ <name>drpc.childopts</name>
+ <value>-Xmx768m</value>
+ <description>Childopts for Storm DRPC Java process.</description>
+ </property>
+ <property>
+ <name>transactional.zookeeper.root</name>
+ <value>/transactional</value>
+ <description>The root directory in ZooKeeper for metadata about TransactionalSpouts.</description>
+ </property>
+ <property>
+ <name>transactional.zookeeper.servers</name>
+ <value>null</value>
+ <description>The list of zookeeper servers in which to keep the transactional state. If null (which is default),
+ will use storm.zookeeper.servers</description>
+ </property>
+ <property>
+ <name>transactional.zookeeper.port</name>
+ <value>null</value>
+ <description>The port to use to connect to the transactional zookeeper servers. If null (which is default),
+ will use storm.zookeeper.port</description>
+ </property>
+ <property>
+ <name>supervisor.slots.ports</name>
+ <value>[6700, 6701]</value>
+ <description>A list of ports that can run workers on this supervisor. Each worker uses one port, and
+ the supervisor will only run one worker per port. Use this configuration to tune
+ how many workers run on each machine.</description>
+ </property>
+ <property>
+ <name>supervisor.childopts</name>
+ <value>-Xmx256m -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port=56431 -javaagent:/usr/lib/storm/contrib/storm-jmxetric/lib/jmxetric-1.0.4.jar=host=localhost,port=8650,wireformat31x=true,mode=multicast,config=/usr/lib/storm/contrib/storm-jmxetric/conf/jmxetric-conf.xml,process=Supervisor_JVM</value>
+ <description>This parameter is used by the storm-deploy project to configure the jvm options for the supervisor daemon.</description>
+ </property>
+ <property>
+ <name>supervisor.worker.start.timeout.secs</name>
+ <value>120</value>
+ <description>How long a worker can go without heartbeating during the initial launch before
+ the supervisor tries to restart the worker process. This value override
+ supervisor.worker.timeout.secs during launch because there is additional
+ overhead to starting and configuring the JVM on launch.</description>
+ </property>
+ <property>
+ <name>supervisor.worker.timeout.secs</name>
+ <value>30</value>
+ <description>How long a worker can go without heartbeating before the supervisor tries to restart the worker process.</description>
+ </property>
+ <property>
+ <name>supervisor.monitor.frequency.secs</name>
+ <value>3</value>
+ <description>How often the supervisor checks the worker heartbeats to see if any of them need to be restarted.</description>
+ </property>
+ <property>
+ <name>supervisor.heartbeat.frequency.secs</name>
+ <value>5</value>
+ <description>How often the supervisor sends a heartbeat to the master.</description>
+ </property>
+ <property>
+ <name>worker.childopts</name>
+ <value>-Xmx768m -javaagent:/usr/lib/storm/contrib/storm-jmxetric/lib/jmxetric-1.0.4.jar=host=localhost,port=8650,wireformat31x=true,mode=multicast,config=/usr/lib/storm/contrib/storm-jmxetric/conf/jmxetric-conf.xml,process=Worker_%ID%_JVM</value>
+ <description>The jvm opts provided to workers launched by this supervisor. All \"%ID%\" substrings are replaced with an identifier for this worker.</description>
+ </property>
+ <property>
+ <name>worker.heartbeat.frequency.secs</name>
+ <value>1</value>
+ <description>How often this worker should heartbeat to the supervisor.</description>
+ </property>
+ <property>
+ <name>task.heartbeat.frequency.secs</name>
+ <value>3</value>
+ <description>How often a task should heartbeat its status to the master.</description>
+ </property>
+ <property>
+ <name>task.refresh.poll.secs</name>
+ <value>10</value>
+ <description>How often a task should sync its connections with other tasks (if a task is
+ reassigned, the other tasks sending messages to it need to refresh their connections).
+ In general though, when a reassignment happens other tasks will be notified
+ almost immediately. This configuration is here just in case that notification doesn't
+ come through.</description>
+ </property>
+ <property>
+ <name>zmq.threads</name>
+ <value>1</value>
+ <description>The number of threads that should be used by the zeromq context in each worker process.</description>
+ </property>
+ <property>
+ <name>zmq.linger.millis</name>
+ <value>5000</value>
+ <description>How long a connection should retry sending messages to a target host when
+ the connection is closed. This is an advanced configuration and can almost
+ certainly be ignored.</description>
+ </property>
+ <property>
+ <name>zmq.hwm</name>
+ <value>0</value>
+ <description>The high water for the ZeroMQ push sockets used for networking. Use this config to prevent buffer explosion
+ on the networking layer.</description>
+ </property>
+ <property>
+ <name>storm.messaging.netty.server_worker_threads</name>
+ <value>1</value>
+ <description>Netty based messaging: The # of worker threads for the server.</description>
+ </property>
+ <property>
+ <name>storm.messaging.netty.client_worker_threads</name>
+ <value>1</value>
+ <description>Netty based messaging: The # of worker threads for the client.</description>
+ </property>
+ <property>
+ <name>storm.messaging.netty.buffer_size</name>
+ <value>5242880</value>
+ <description>Netty based messaging: The buffer size for send/recv buffer.</description>
+ </property>
+ <property>
+ <name>storm.messaging.netty.max_retries</name>
+ <value>30</value>
+ <description>Netty based messaging: The max # of retries that a peer will perform when a remote is not accessible.</description>
+ </property>
+ <property>
+ <name>storm.messaging.netty.max_wait_ms</name>
+ <value>1000</value>
+ <description>Netty based messaging: The max # of milliseconds that a peer will wait.</description>
+ </property>
+ <property>
+ <name>storm.messaging.netty.min_wait_ms</name>
+ <value>100</value>
+ <description>Netty based messaging: The min # of milliseconds that a peer will wait.</description>
+ </property>
+ <property>
+ <name>topology.enable.message.timeouts</name>
+ <value>true</value>
+ <description>True if Storm should timeout messages or not. Defaults to true. This is meant to be used
+ in unit tests to prevent tuples from being accidentally timed out during the test.</description>
+ </property>
+ <property>
+ <name>topology.debug</name>
+ <value>false</value>
+ <description>When set to true, Storm will log every message that's emitted.</description>
+ </property>
+ <property>
+ <name>topology.optimize</name>
+ <value>true</value>
+ <description>Whether or not the master should optimize topologies by running multiple tasks in a single thread where appropriate.</description>
+ </property>
+ <property>
+ <name>topology.workers</name>
+ <value>1</value>
+ <description>How many processes should be spawned around the cluster to execute this
+ topology. Each process will execute some number of tasks as threads within
+ them. This parameter should be used in conjunction with the parallelism hints
+ on each component in the topology to tune the performance of a topology.</description>
+ </property>
+ <property>
+ <name>topology.acker.executors</name>
+ <value>null</value>
+ <description>How many executors to spawn for ackers.
+
+ If this is set to 0, then Storm will immediately ack tuples as soon
+ as they come off the spout, effectively disabling reliability.
+ </description>
+ </property>
+ <property>
+ <name>topology.message.timeout.secs</name>
+ <value>30</value>
+ <description>The maximum amount of time given to the topology to fully process a message
+ emitted by a spout. If the message is not acked within this time frame, Storm
+ will fail the message on the spout. Some spouts implementations will then replay
+ the message at a later time.</description>
+ </property>
+ <property>
+ <name>topology.skip.missing.kryo.registrations</name>
+ <value>false</value>
+ <description> Whether or not Storm should skip the loading of kryo registrations for which it
+ does not know the class or have the serializer implementation. Otherwise, the task will
+ fail to load and will throw an error at runtime. The use case of this is if you want to
+ declare your serializations on the storm.yaml files on the cluster rather than every single
+ time you submit a topology. Different applications may use different serializations and so
+ a single application may not have the code for the other serializers used by other apps.
+ By setting this config to true, Storm will ignore that it doesn't have those other serializations
+ rather than throw an error.</description>
+ </property>
+ <property>
+ <name>topology.max.task.parallelism</name>
+ <value>null</value>
+ <description>The maximum parallelism allowed for a component in this topology. This configuration is
+ typically used in testing to limit the number of threads spawned in local mode.</description>
+ </property>
+ <property>
+ <name>topology.max.spout.pending</name>
+ <value>null</value>
+ <description>The maximum number of tuples that can be pending on a spout task at any given time.
+ This config applies to individual tasks, not to spouts or topologies as a whole.
+
+ A pending tuple is one that has been emitted from a spout but has not been acked or failed yet.
+ Note that this config parameter has no effect for unreliable spouts that don't tag
+ their tuples with a message id.</description>
+ </property>
+ <property>
+ <name>topology.state.synchronization.timeout.secs</name>
+ <value>60</value>
+ <description>The maximum amount of time a component gives a source of state to synchronize before it requests
+ synchronization again.</description>
+ </property>
+ <property>
+ <name>topology.stats.sample.rate</name>
+ <value>0.05</value>
+ <description>The percentage of tuples to sample to produce stats for a task.</description>
+ </property>
+ <property>
+ <name>topology.builtin.metrics.bucket.size.secs</name>
+ <value>60</value>
+ <description>The time period that builtin metrics data in bucketed into.</description>
+ </property>
+ <property>
+ <name>topology.fall.back.on.java.serialization</name>
+ <value>true</value>
+ <description>Whether or not to use Java serialization in a topology.</description>
+ </property>
+ <property>
+ <name>topology.worker.childopts</name>
+ <value>null</value>
+ <description>Topology-specific options for the worker child process. This is used in addition to WORKER_CHILDOPTS.</description>
+ </property>
+ <property>
+ <name>topology.executor.receive.buffer.size</name>
+ <value>1024</value>
+ <description>The size of the Disruptor receive queue for each executor. Must be a power of 2.</description>
+ </property>
+ <property>
+ <name>topology.executor.send.buffer.size</name>
+ <value>1024</value>
+ <description>The size of the Disruptor send queue for each executor. Must be a power of 2.</description>
+ </property>
+ <property>
+ <name>topology.receiver.buffer.size</name>
+ <value>8</value>
+ <description>The maximum number of messages to batch from the thread receiving off the network to the
+ executor queues. Must be a power of 2.</description>
+ </property>
+ <property>
+ <name>topology.transfer.buffer.size</name>
+ <value>1024</value>
+ <description>The size of the Disruptor transfer queue for each worker.</description>
+ </property>
+ <property>
+ <name>topology.tick.tuple.freq.secs</name>
+ <value>null</value>
+ <description>How often a tick tuple from the "__system" component and "__tick" stream should be sent
+ to tasks. Meant to be used as a component-specific configuration.</description>
+ </property>
+ <property>
+ <name>topology.worker.shared.thread.pool.size</name>
+ <value>4</value>
+ <description>The size of the shared thread pool for worker tasks to make use of. The thread pool can be accessed
+ via the TopologyContext.</description>
+ </property>
+ <property>
+ <name>topology.disruptor.wait.strategy</name>
+ <value>com.lmax.disruptor.BlockingWaitStrategy</value>
+ <description>Configure the wait strategy used for internal queuing. Can be used to tradeoff latency
+ vs. throughput.</description>
+ </property>
+ <property>
+ <name>topology.executor.send.buffer.size</name>
+ <value>1024</value>
+ <description>The size of the Disruptor send queue for each executor. Must be a power of 2.</description>
+ </property>
+ <property>
+ <name>topology.receiver.buffer.size</name>
+ <value>8</value>
+ <description>The maximum number of messages to batch from the thread receiving off the network to the
+ executor queues. Must be a power of 2.</description>
+ </property>
+ <property>
+ <name>topology.transfer.buffer.size</name>
+ <value>1024</value>
+ <description>The size of the Disruptor transfer queue for each worker.</description>
+ </property>
+ <property>
+ <name>topology.tick.tuple.freq.secs</name>
+ <value>null</value>
+ <description>How often a tick tuple from the "__system" component and "__tick" stream should be sent
+ to tasks. Meant to be used as a component-specific configuration.</description>
+ </property>
+ <property>
+ <name>topology.worker.shared.thread.pool.size</name>
+ <value>4</value>
+ <description>The size of the shared thread pool for worker tasks to make use of. The thread pool can be accessed
+ via the TopologyContext.</description>
+ </property>
+ <property>
+ <name>topology.spout.wait.strategy</name>
+ <value>backtype.storm.spout.SleepSpoutWaitStrategy</value>
+ <description>A class that implements a strategy for what to do when a spout needs to wait. Waiting is
+ triggered in one of two conditions:
+
+ 1. nextTuple emits no tuples
+ 2. The spout has hit maxSpoutPending and can't emit any more tuples</description>
+ </property>
+ <property>
+ <name>topology.sleep.spout.wait.strategy.time.ms</name>
+ <value>1</value>
+ <description>The amount of milliseconds the SleepEmptyEmitStrategy should sleep for.</description>
+ </property>
+ <property>
+ <name>topology.error.throttle.interval.secs</name>
+ <value>10</value>
+ <description>The interval in seconds to use for determining whether to throttle error reported to Zookeeper. For example,
+ an interval of 10 seconds with topology.max.error.report.per.interval set to 5 will only allow 5 errors to be
+ reported to Zookeeper per task for every 10 second interval of time.</description>
+ </property>
+ <property>
+ <name>topology.max.error.report.per.interval</name>
+ <value>5</value>
+ <description>The interval in seconds to use for determining whether to throttle error reported to Zookeeper. For example,
+ an interval of 10 seconds with topology.max.error.report.per.interval set to 5 will only allow 5 errors to be
+ reported to Zookeeper per task for every 10 second interval of time.</description>
+ </property>
+ <property>
+ <name>topology.kryo.factory</name>
+ <value>backtype.storm.serialization.DefaultKryoFactory</value>
+ <description>Class that specifies how to create a Kryo instance for serialization. Storm will then apply
+ topology.kryo.register and topology.kryo.decorators on top of this. The default implementation
+ implements topology.fall.back.on.java.serialization and turns references off.</description>
+ </property>
+ <property>
+ <name>topology.tuple.serializer</name>
+ <value>backtype.storm.serialization.types.ListDelegateSerializer</value>
+ <description>The serializer class for ListDelegate (tuple payload).
+ The default serializer will be ListDelegateSerializer</description>
+ </property>
+ <property>
+ <name>topology.trident.batch.emit.interval.millis</name>
+ <value>500</value>
+ <description>How often a batch can be emitted in a Trident topology.</description>
+ </property>
+ <property>
+ <name>dev.zookeeper.path</name>
+ <value>/tmp/dev-storm-zookeeper</value>
+ <description>The path to use as the zookeeper dir when running a zookeeper server via
+ "storm dev-zookeeper". This zookeeper instance is only intended for development;
+ it is not a production grade zookeeper setup.</description>
+ </property>
+</configuration>
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/metainfo.xml b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/metainfo.xml
new file mode 100644
index 0000000..f2c391c
--- /dev/null
+++ b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/metainfo.xml
@@ -0,0 +1,126 @@
+<?xml version="1.0"?>
+<!--
+ 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.
+-->
+
+<metainfo>
+ <schemaVersion>2.0</schemaVersion>
+ <services>
+ <service>
+ <name>STORM</name>
+ <displayName>Storm</displayName>
+ <comment>Apache Hadoop Stream processing framework</comment>
+ <version>0.9.1.2.1</version>
+ <components>
+
+ <component>
+ <name>NIMBUS</name>
+ <displayName>Nimbus</displayName>
+ <category>MASTER</category>
+ <cardinality>1</cardinality>
+ <dependencies>
+ <dependency>
+ <name>ZOOKEEPER/ZOOKEEPER_SERVER</name>
+ <scope>cluster</scope>
+ <auto-deploy>
+ <enabled>true</enabled>
+ </auto-deploy>
+ </dependency>
+ </dependencies>
+ <commandScript>
+ <script>scripts/nimbus.py</script>
+ <scriptType>PYTHON</scriptType>
+ <timeout>600</timeout>
+ </commandScript>
+ </component>
+
+ <component>
+ <name>STORM_REST_API</name>
+ <displayName>Storm REST API Server</displayName>
+ <category>MASTER</category>
+ <cardinality>1</cardinality>
+ <commandScript>
+ <script>scripts/rest_api.py</script>
+ <scriptType>PYTHON</scriptType>
+ <timeout>600</timeout>
+ </commandScript>
+ </component>
+
+ <component>
+ <name>SUPERVISOR</name>
+ <displayName>Supervisor</displayName>
+ <category>SLAVE</category>
+ <cardinality>1+</cardinality>
+ <commandScript>
+ <script>scripts/supervisor.py</script>
+ <scriptType>PYTHON</scriptType>
+ <timeout>600</timeout>
+ </commandScript>
+ </component>
+
+ <component>
+ <name>STORM_UI_SERVER</name>
+ <displayName>Storm UI Server</displayName>
+ <category>MASTER</category>
+ <cardinality>1</cardinality>
+ <commandScript>
+ <script>scripts/ui_server.py</script>
+ <scriptType>PYTHON</scriptType>
+ <timeout>600</timeout>
+ </commandScript>
+ </component>
+
+ <component>
+ <name>DRPC_SERVER</name>
+ <displayName>DRPC Server</displayName>
+ <category>MASTER</category>
+ <cardinality>1</cardinality>
+ <commandScript>
+ <script>scripts/drpc_server.py</script>
+ <scriptType>PYTHON</scriptType>
+ <timeout>600</timeout>
+ </commandScript>
+ </component>
+ </components>
+
+ <osSpecifics>
+ <osSpecific>
+ <osFamily>any</osFamily>
+ <packages>
+ <package>
+ <name>storm</name>
+ </package>
+ </packages>
+ </osSpecific>
+ </osSpecifics>
+
+ <commandScript>
+ <script>scripts/service_check.py</script>
+ <scriptType>PYTHON</scriptType>
+ <timeout>300</timeout>
+ </commandScript>
+
+ <requiredServices>
+ <service>ZOOKEEPER</service>
+ </requiredServices>
+
+ <configuration-dependencies>
+ <config-type>storm-site</config-type>
+ <config-type>storm-env</config-type>
+ </configuration-dependencies>
+ </service>
+ </services>
+</metainfo>
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/metrics.json
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/metrics.json b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/metrics.json
new file mode 100644
index 0000000..c2776ab
--- /dev/null
+++ b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/metrics.json
@@ -0,0 +1,1077 @@
+{
+ "STORM_REST_API": {
+ "Component": [
+ {
+ "type": "org.apache.ambari.server.controller.metrics.RestMetricsPropertyProvider",
+ "properties" : {
+ "default_port": "8745",
+ "port_config_type": "storm-site",
+ "port_property_name": "storm.port",
+ "protocol": "http"
+ },
+ "metrics": {
+ "metrics/api/cluster/summary/tasks.total":
+ {
+ "metric": "/api/cluster/summary##tasks.total",
+ "pointInTime": true,
+ "temporal": false
+ },
+ "metrics/api/cluster/summary/slots.total": {
+ "metric": "/api/cluster/summary##slots.total",
+ "pointInTime": true,
+ "temporal": false
+ },
+ "metrics/api/cluster/summary/slots.free": {
+ "metric": "/api/cluster/summary##slots.free",
+ "pointInTime": true,
+ "temporal": false
+ },
+ "metrics/api/cluster/summary/supervisors": {
+ "metric": "/api/cluster/summary##supervisors",
+ "pointInTime": true,
+ "temporal": false
+ },
+ "metrics/api/cluster/summary/executors.total": {
+ "metric": "/api/cluster/summary##executors.total",
+ "pointInTime": true,
+ "temporal": false
+ },
+ "metrics/api/cluster/summary/slots.used": {
+ "metric": "/api/cluster/summary##slots.used",
+ "pointInTime": true,
+ "temporal": false
+ },
+ "metrics/api/cluster/summary/topologies": {
+ "metric": "/api/cluster/summary##topologies",
+ "pointInTime": true,
+ "temporal": false
+ },
+ "metrics/api/cluster/summary/nimbus.uptime": {
+ "metric": "/api/cluster/summary##nimbus.uptime",
+ "pointInTime": true,
+ "temporal": false
+ }
+ }
+ }
+ ],
+ "HostComponent": [
+ {
+ "type": "org.apache.ambari.server.controller.metrics.RestMetricsPropertyProvider",
+ "properties" : {
+ "default_port": "8745",
+ "port_config_type": "storm-site",
+ "port_property_name": "storm.port",
+ "protocol": "http"
+ },
+ "metrics": {
+ "metrics/api/cluster/summary/tasks.total":
+ {
+ "metric": "/api/cluster/summary##tasks.total",
+ "pointInTime": true,
+ "temporal": false
+ },
+ "metrics/api/cluster/summary/slots.total": {
+ "metric": "/api/cluster/summary##slots.total",
+ "pointInTime": true,
+ "temporal": false
+ },
+ "metrics/api/cluster/summary/slots.free": {
+ "metric": "/api/cluster/summary##slots.free",
+ "pointInTime": true,
+ "temporal": false
+ },
+ "metrics/api/cluster/summary/supervisors": {
+ "metric": "/api/cluster/summary##supervisors",
+ "pointInTime": true,
+ "temporal": false
+ },
+ "metrics/api/cluster/summary/executors.total": {
+ "metric": "/api/cluster/summary##executors.total",
+ "pointInTime": true,
+ "temporal": false
+ },
+ "metrics/api/cluster/summary/slots.used": {
+ "metric": "/api/cluster/summary##slots.used",
+ "pointInTime": true,
+ "temporal": false
+ },
+ "metrics/api/cluster/summary/topologies": {
+ "metric": "/api/cluster/summary##topologies",
+ "pointInTime": true,
+ "temporal": false
+ },
+ "metrics/api/cluster/summary/nimbus.uptime": {
+ "metric": "/api/cluster/summary##nimbus.uptime",
+ "pointInTime": true,
+ "temporal": false
+ }
+ }
+ }
+ ]
+ },
+ "NIMBUS": {
+ "Component": [
+ {
+ "type": "ganglia",
+ "metrics": {
+ "metrics/boottime": {
+ "metric": "boottime",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/network/bytes_in": {
+ "metric": "bytes_in",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/network/bytes_out": {
+ "metric": "bytes_out",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/cpu/cpu_aidle": {
+ "metric": "cpu_aidle",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/cpu/cpu_idle": {
+ "metric": "cpu_idle",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/cpu/cpu_nice": {
+ "metric": "cpu_nice",
+ "pointInTime": true,
+ "temporal": true
+ },
+
+ "metrics/cpu/cpu_num": {
+ "metric": "cpu_num",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/cpu/cpu_speed": {
+ "metric": "cpu_speed",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/cpu/cpu_system": {
+ "metric": "cpu_system",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/cpu/cpu_user": {
+ "metric": "cpu_user",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/cpu/cpu_wio": {
+ "metric": "cpu_wio",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/disk/disk_free": {
+ "metric": "disk_free",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/disk/disk_total": {
+ "metric": "disk_total",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/load_fifteen": {
+ "metric": "load_fifteen",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/load_five": {
+ "metric": "load_five",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/load_one": {
+ "metric": "load_one",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/memory/mem_buffers": {
+ "metric": "mem_buffers",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/memory/mem_cached": {
+ "metric": "mem_cached",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/memory/mem_free": {
+ "metric": "mem_free",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/memory/mem_shared": {
+ "metric": "mem_shared",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/memory/mem_total": {
+ "metric": "mem_total",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/disk/part_max_used": {
+ "metric": "part_max_used",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/network/pkts_in": {
+ "metric": "pkts_in",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/network/pkts_out": {
+ "metric": "pkts_out",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/process/proc_run": {
+ "metric": "proc_run",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/process/proc_total": {
+ "metric": "proc_total",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/memory/swap_free": {
+ "metric": "swap_free",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/memory/swap_total": {
+ "metric": "swap_total",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/nimbus/jvm/memory/heap/committed": {
+ "metric": "Nimbus.JVM.Memory.Heap.committed",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/nimbus/jvm/memory/heap/init": {
+ "metric": "Nimbus.JVM.Memory.Heap.init",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/nimbus/jvm/memory/heap/max": {
+ "metric": "Nimbus.JVM.Memory.Heap.max",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/nimbus/jvm/memory/heap/used": {
+ "metric": "Nimbus.JVM.Memory.Heap.used",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/nimbus/jvm/memory/nonheap/committed": {
+ "metric": "Nimbus.JVM.Memory.NonHeap.committed",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/nimbus/jvm/memory/nonheap/init": {
+ "metric": "Nimbus.JVM.Memory.NonHeap.init",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/nimbus/jvm/memory/nonheap/max": {
+ "metric": "Nimbus.JVM.Memory.NonHeap.max",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/nimbus/jvm/memory/nonheap/used": {
+ "metric": "Nimbus.JVM.Memory.NonHeap.used",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/nimbus/jvm/os/processcputime": {
+ "metric": "Nimbus.JVM.OS.ProcessCpuTime",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/nimbus/jvm/threading/daemonthreadcount": {
+ "metric": "Nimbus.JVM.Threading.DaemonThreadCount",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/nimbus/jvm/threading/threadcount": {
+ "metric": "Nimbus.JVM.Threading.ThreadCount",
+ "pointInTime": true,
+ "temporal": true
+ },
+
+ "metrics/storm/nimbus/freeslots": {
+ "metric": "Free Slots",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/nimbus/supervisors": {
+ "metric": "Supervisors",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/nimbus/topologies": {
+ "metric": "Topologies",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/nimbus/totalexecutors": {
+ "metric": "Total Executors",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/nimbus/totalslots": {
+ "metric": "Total Slots",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/nimbus/totaltasks": {
+ "metric": "Total Tasks",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/nimbus/usedslots": {
+ "metric": "Used Slots",
+ "pointInTime": true,
+ "temporal": true
+ }
+ }
+ }
+ ],
+ "HostComponent": [
+ {
+ "type": "ganglia",
+ "metrics": {
+ "metrics/boottime": {
+ "metric": "boottime",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/network/bytes_in": {
+ "metric": "bytes_in",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/network/bytes_out": {
+ "metric": "bytes_out",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/cpu/cpu_aidle": {
+ "metric": "cpu_aidle",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/cpu/cpu_idle": {
+ "metric": "cpu_idle",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/cpu/cpu_nice": {
+ "metric": "cpu_nice",
+ "pointInTime": true,
+ "temporal": true
+ },
+
+ "metrics/cpu/cpu_num": {
+ "metric": "cpu_num",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/cpu/cpu_speed": {
+ "metric": "cpu_speed",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/cpu/cpu_system": {
+ "metric": "cpu_system",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/cpu/cpu_user": {
+ "metric": "cpu_user",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/cpu/cpu_wio": {
+ "metric": "cpu_wio",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/disk/disk_free": {
+ "metric": "disk_free",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/disk/disk_total": {
+ "metric": "disk_total",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/load_fifteen": {
+ "metric": "load_fifteen",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/load_five": {
+ "metric": "load_five",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/load_one": {
+ "metric": "load_one",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/memory/mem_buffers": {
+ "metric": "mem_buffers",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/memory/mem_cached": {
+ "metric": "mem_cached",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/memory/mem_free": {
+ "metric": "mem_free",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/memory/mem_shared": {
+ "metric": "mem_shared",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/memory/mem_total": {
+ "metric": "mem_total",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/disk/part_max_used": {
+ "metric": "part_max_used",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/network/pkts_in": {
+ "metric": "pkts_in",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/network/pkts_out": {
+ "metric": "pkts_out",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/process/proc_run": {
+ "metric": "proc_run",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/process/proc_total": {
+ "metric": "proc_total",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/memory/swap_free": {
+ "metric": "swap_free",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/memory/swap_total": {
+ "metric": "swap_total",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/nimbus/jvm/memory/heap/committed": {
+ "metric": "Nimbus.JVM.Memory.Heap.committed",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/nimbus/jvm/memory/heap/init": {
+ "metric": "Nimbus.JVM.Memory.Heap.init",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/nimbus/jvm/memory/heap/max": {
+ "metric": "Nimbus.JVM.Memory.Heap.max",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/nimbus/jvm/memory/heap/used": {
+ "metric": "Nimbus.JVM.Memory.Heap.used",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/nimbus/jvm/memory/nonheap/committed": {
+ "metric": "Nimbus.JVM.Memory.NonHeap.committed",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/nimbus/jvm/memory/nonheap/init": {
+ "metric": "Nimbus.JVM.Memory.NonHeap.init",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/nimbus/jvm/memory/nonheap/max": {
+ "metric": "Nimbus.JVM.Memory.NonHeap.max",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/nimbus/jvm/memory/nonheap/used": {
+ "metric": "Nimbus.JVM.Memory.NonHeap.used",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/nimbus/jvm/os/processcputime": {
+ "metric": "Nimbus.JVM.OS.ProcessCpuTime",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/nimbus/jvm/threading/daemonthreadcount": {
+ "metric": "Nimbus.JVM.Threading.DaemonThreadCount",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/nimbus/jvm/threading/threadcount": {
+ "metric": "Nimbus.JVM.Threading.ThreadCount",
+ "pointInTime": true,
+ "temporal": true
+ }
+
+ }
+ }
+ ]
+ },
+ "SUPERVISOR": {
+ "Component": [
+ {
+ "type": "ganglia",
+ "metrics": {
+ "metrics/boottime": {
+ "metric": "boottime",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/network/bytes_in": {
+ "metric": "bytes_in",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/network/bytes_out": {
+ "metric": "bytes_out",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/cpu/cpu_aidle": {
+ "metric": "cpu_aidle",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/cpu/cpu_idle": {
+ "metric": "cpu_idle",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/cpu/cpu_nice": {
+ "metric": "cpu_nice",
+ "pointInTime": true,
+ "temporal": true
+ },
+
+ "metrics/cpu/cpu_num": {
+ "metric": "cpu_num",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/cpu/cpu_speed": {
+ "metric": "cpu_speed",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/cpu/cpu_system": {
+ "metric": "cpu_system",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/cpu/cpu_user": {
+ "metric": "cpu_user",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/cpu/cpu_wio": {
+ "metric": "cpu_wio",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/disk/disk_free": {
+ "metric": "disk_free",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/disk/disk_total": {
+ "metric": "disk_total",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/load_fifteen": {
+ "metric": "load_fifteen",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/load_five": {
+ "metric": "load_five",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/load_one": {
+ "metric": "load_one",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/memory/mem_buffers": {
+ "metric": "mem_buffers",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/memory/mem_cached": {
+ "metric": "mem_cached",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/memory/mem_free": {
+ "metric": "mem_free",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/memory/mem_shared": {
+ "metric": "mem_shared",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/memory/mem_total": {
+ "metric": "mem_total",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/disk/part_max_used": {
+ "metric": "part_max_used",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/network/pkts_in": {
+ "metric": "pkts_in",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/network/pkts_out": {
+ "metric": "pkts_out",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/process/proc_run": {
+ "metric": "proc_run",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/process/proc_total": {
+ "metric": "proc_total",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/memory/swap_free": {
+ "metric": "swap_free",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/memory/swap_total": {
+ "metric": "swap_total",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/supervisor/jvm/memory/heap/committed": {
+ "metric": "Supervisor.JVM.Memory.Heap.committed",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/supervisor/jvm/memory/heap/init": {
+ "metric": "Supervisor.JVM.Memory.Heap.init",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/supervisor/jvm/memory/heap/max": {
+ "metric": "Supervisor.JVM.Memory.Heap.max",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/supervisor/jvm/memory/heap/used": {
+ "metric": "Supervisor.JVM.Memory.Heap.used",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/supervisor/jvm/memory/nonheap/committed": {
+ "metric": "Supervisor.JVM.Memory.NonHeap.committed",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/supervisor/jvm/memory/nonheap/init": {
+ "metric": "Supervisor.JVM.Memory.NonHeap.init",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/supervisor/jvm/memory/nonheap/max": {
+ "metric": "Supervisor.JVM.Memory.NonHeap.max",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/supervisor/jvm/memory/nonheap/used": {
+ "metric": "Supervisor.JVM.Memory.NonHeap.used",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/supervisor/jvm/os/processcputime": {
+ "metric": "Supervisor.JVM.OS.ProcessCpuTime",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/supervisor/jvm/threading/daemonthreadcount": {
+ "metric": "Supervisor.JVM.Threading.DaemonThreadCount",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/supervisor/jvm/threading/threadcount": {
+ "metric": "Supervisor.JVM.Threading.ThreadCount",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/worker/$1/jvm/memory/heap/committed": {
+ "metric": "Worker.(.+).JVM.Memory.Heap.committed",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/worker/$1/jvm/memory/heap/init": {
+ "metric": "Worker.(.+).JVM.Memory.Heap.init",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/worker/$1/jvm/memory/heap/max": {
+ "metric": "Worker.(.+).JVM.Memory.Heap.max",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/worker/$1/jvm/memory/heap/used": {
+ "metric": "Worker.(.+).JVM.Memory.Heap.used",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/worker/$1/jvm/memory/nonheap/committed": {
+ "metric": "Worker.(.+).JVM.Memory.NonHeap.committed",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/worker/$1/jvm/memory/nonheap/init": {
+ "metric": "Worker.(.+).JVM.Memory.NonHeap.init",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/worker/$1/jvm/memory/nonheap/max": {
+ "metric": "Worker.(.+).JVM.Memory.NonHeap.max",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/worker/$1/jvm/memory/nonheap/used": {
+ "metric": "Worker.(.+).JVM.Memory.NonHeap.used",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/worker/$1/jvm/os/processcputime": {
+ "metric": "Worker.(.+).JVM.OS.ProcessCpuTime",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/worker/$1/jvm/threading/daemonthreadcount": {
+ "metric": "Worker.(.+).JVM.Threading.DaemonThreadCount",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/worker/$1/jvm/threading/threadcount": {
+ "metric": "Worker.(.+).JVM.Threading.ThreadCount",
+ "pointInTime": true,
+ "temporal": true
+ }
+
+
+ }
+ }
+ ],
+ "HostComponent": [
+ {
+ "type": "ganglia",
+ "metrics": {
+ "metrics/boottime": {
+ "metric": "boottime",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/network/bytes_in": {
+ "metric": "bytes_in",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/network/bytes_out": {
+ "metric": "bytes_out",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/cpu/cpu_aidle": {
+ "metric": "cpu_aidle",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/cpu/cpu_idle": {
+ "metric": "cpu_idle",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/cpu/cpu_nice": {
+ "metric": "cpu_nice",
+ "pointInTime": true,
+ "temporal": true
+ },
+
+ "metrics/cpu/cpu_num": {
+ "metric": "cpu_num",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/cpu/cpu_speed": {
+ "metric": "cpu_speed",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/cpu/cpu_system": {
+ "metric": "cpu_system",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/cpu/cpu_user": {
+ "metric": "cpu_user",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/cpu/cpu_wio": {
+ "metric": "cpu_wio",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/disk/disk_free": {
+ "metric": "disk_free",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/disk/disk_total": {
+ "metric": "disk_total",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/load_fifteen": {
+ "metric": "load_fifteen",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/load_five": {
+ "metric": "load_five",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/load_one": {
+ "metric": "load_one",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/memory/mem_buffers": {
+ "metric": "mem_buffers",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/memory/mem_cached": {
+ "metric": "mem_cached",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/memory/mem_free": {
+ "metric": "mem_free",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/memory/mem_shared": {
+ "metric": "mem_shared",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/memory/mem_total": {
+ "metric": "mem_total",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/disk/part_max_used": {
+ "metric": "part_max_used",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/network/pkts_in": {
+ "metric": "pkts_in",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/network/pkts_out": {
+ "metric": "pkts_out",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/process/proc_run": {
+ "metric": "proc_run",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/process/proc_total": {
+ "metric": "proc_total",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/memory/swap_free": {
+ "metric": "swap_free",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/memory/swap_total": {
+ "metric": "swap_total",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/supervisor/jvm/memory/heap/committed": {
+ "metric": "Supervisor.JVM.Memory.Heap.committed",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/supervisor/jvm/memory/heap/init": {
+ "metric": "Supervisor.JVM.Memory.Heap.init",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/supervisor/jvm/memory/heap/max": {
+ "metric": "Supervisor.JVM.Memory.Heap.max",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/supervisor/jvm/memory/heap/used": {
+ "metric": "Supervisor.JVM.Memory.Heap.used",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/supervisor/jvm/memory/nonheap/committed": {
+ "metric": "Supervisor.JVM.Memory.NonHeap.committed",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/supervisor/jvm/memory/nonheap/init": {
+ "metric": "Supervisor.JVM.Memory.NonHeap.init",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/supervisor/jvm/memory/nonheap/max": {
+ "metric": "Supervisor.JVM.Memory.NonHeap.max",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/supervisor/jvm/memory/nonheap/used": {
+ "metric": "Supervisor.JVM.Memory.NonHeap.used",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/supervisor/jvm/os/processcputime": {
+ "metric": "Supervisor.JVM.OS.ProcessCpuTime",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/supervisor/jvm/threading/daemonthreadcount": {
+ "metric": "Supervisor.JVM.Threading.DaemonThreadCount",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/supervisor/jvm/threading/threadcount": {
+ "metric": "Supervisor.JVM.Threading.ThreadCount",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/worker/$1/jvm/memory/heap/committed": {
+ "metric": "Worker.(.+).JVM.Memory.Heap.committed",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/worker/$1/jvm/memory/heap/init": {
+ "metric": "Worker.(.+).JVM.Memory.Heap.init",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/worker/$1/jvm/memory/heap/max": {
+ "metric": "Worker.(.+).JVM.Memory.Heap.max",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/worker/$1/jvm/memory/heap/used": {
+ "metric": "Worker.(.+).JVM.Memory.Heap.used",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/worker/$1/jvm/memory/nonheap/committed": {
+ "metric": "Worker.(.+).JVM.Memory.NonHeap.committed",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/worker/$1/jvm/memory/nonheap/init": {
+ "metric": "Worker.(.+).JVM.Memory.NonHeap.init",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/worker/$1/jvm/memory/nonheap/max": {
+ "metric": "Worker.(.+).JVM.Memory.NonHeap.max",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/worker/$1/jvm/memory/nonheap/used": {
+ "metric": "Worker.(.+).JVM.Memory.NonHeap.used",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/worker/$1/jvm/os/processcputime": {
+ "metric": "Worker.(.+).JVM.OS.ProcessCpuTime",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/worker/$1/jvm/threading/daemonthreadcount": {
+ "metric": "Worker.(.+).JVM.Threading.DaemonThreadCount",
+ "pointInTime": true,
+ "temporal": true
+ },
+ "metrics/storm/worker/$1/jvm/threading/threadcount": {
+ "metric": "Worker.(.+).JVM.Threading.ThreadCount",
+ "pointInTime": true,
+ "temporal": true
+ }
+ }
+ }
+ ]
+ }
+}
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/files/wordCount.jar
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/files/wordCount.jar b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/files/wordCount.jar
new file mode 100644
index 0000000..aed64be
Binary files /dev/null and b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/files/wordCount.jar differ
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/drpc_server.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/drpc_server.py b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/drpc_server.py
new file mode 100644
index 0000000..149b212
--- /dev/null
+++ b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/drpc_server.py
@@ -0,0 +1,58 @@
+#!/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.
+
+"""
+
+import sys
+from resource_management import *
+from storm import storm
+from service import service
+from service_check import ServiceCheck
+
+
+class DrpcServer(Script):
+ def install(self, env):
+ self.install_packages(env)
+ self.configure(env)
+
+ def configure(self, env):
+ import params
+ env.set_params(params)
+
+ storm()
+
+ def start(self, env):
+ import params
+ env.set_params(params)
+ self.configure(env)
+
+ service("drpc", action="start")
+
+ def stop(self, env):
+ import params
+ env.set_params(params)
+
+ service("drpc", action="stop")
+
+ def status(self, env):
+ import status_params
+ env.set_params(status_params)
+ check_process_status(status_params.pid_drpc)
+
+if __name__ == "__main__":
+ DrpcServer().execute()
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/nimbus.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/nimbus.py b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/nimbus.py
new file mode 100644
index 0000000..2dd7963
--- /dev/null
+++ b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/nimbus.py
@@ -0,0 +1,57 @@
+#!/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.
+
+"""
+
+import sys
+from resource_management import *
+from storm import storm
+from service import service
+
+
+class Nimbus(Script):
+ def install(self, env):
+ self.install_packages(env)
+ self.configure(env)
+
+ def configure(self, env):
+ import params
+ env.set_params(params)
+
+ storm()
+
+ def start(self, env):
+ import params
+ env.set_params(params)
+ self.configure(env)
+
+ service("nimbus", action="start")
+
+ def stop(self, env):
+ import params
+ env.set_params(params)
+
+ service("nimbus", action="stop")
+
+ def status(self, env):
+ import status_params
+ env.set_params(status_params)
+ check_process_status(status_params.pid_nimbus)
+
+if __name__ == "__main__":
+ Nimbus().execute()
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/nimbus_prod.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/nimbus_prod.py b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/nimbus_prod.py
new file mode 100644
index 0000000..a1f8afe
--- /dev/null
+++ b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/nimbus_prod.py
@@ -0,0 +1,55 @@
+#!/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.
+
+"""
+
+import sys
+from resource_management import *
+from storm import storm
+from supervisord_service import supervisord_service, supervisord_check_status
+
+
+class Nimbus(Script):
+ def install(self, env):
+ self.install_packages(env)
+ self.configure(env)
+
+ def configure(self, env):
+ import params
+ env.set_params(params)
+
+ storm()
+
+ def start(self, env):
+ import params
+ env.set_params(params)
+ self.configure(env)
+
+ supervisord_service("nimbus", action="start")
+
+ def stop(self, env):
+ import params
+ env.set_params(params)
+
+ supervisord_service("nimbus", action="stop")
+
+ def status(self, env):
+ supervisord_check_status("nimbus")
+
+if __name__ == "__main__":
+ Nimbus().execute()
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/params.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/params.py b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/params.py
new file mode 100644
index 0000000..ec74d77
--- /dev/null
+++ b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/params.py
@@ -0,0 +1,90 @@
+#!/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 resource_management.libraries.functions.version import format_hdp_stack_version, compare_versions
+from resource_management import *
+import status_params
+
+# server configurations
+config = Script.get_config()
+
+hdp_stack_version = str(config['hostLevelParams']['stack_version'])
+hdp_stack_version = format_hdp_stack_version(hdp_stack_version)
+stack_is_hdp22_or_further = hdp_stack_version != "" and compare_versions(hdp_stack_version, '2.2') >= 0
+
+#hadoop params
+if hdp_stack_version != "" and compare_versions(hdp_stack_version, '2.2') >= 0:
+ rest_lib_dir = '/usr/hdp/current/storm-client/contrib/storm-rest'
+ storm_bin_dir = "/usr/hdp/current/storm-client/bin"
+else:
+ rest_lib_dir = "/usr/lib/storm/contrib/storm-rest"
+ storm_bin_dir = "/usr/bin"
+
+storm_user = config['configurations']['storm-env']['storm_user']
+log_dir = config['configurations']['storm-env']['storm_log_dir']
+pid_dir = status_params.pid_dir
+conf_dir = "/etc/storm/conf"
+local_dir = config['configurations']['storm-site']['storm.local.dir']
+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_host = config['configurations']['storm-site']['nimbus.host']
+rest_api_port = "8745"
+rest_api_admin_port = "8746"
+rest_api_conf_file = format("{conf_dir}/config.yaml")
+storm_env_sh_template = config['configurations']['storm-env']['content']
+
+if 'ganglia_server_host' in config['clusterHostInfo'] and \
+ len(config['clusterHostInfo']['ganglia_server_host'])>0:
+ ganglia_installed = True
+ ganglia_server = config['clusterHostInfo']['ganglia_server_host'][0]
+ ganglia_report_interval = 60
+else:
+ ganglia_installed = False
+
+security_enabled = config['configurations']['cluster-env']['security_enabled']
+
+if security_enabled:
+ _hostname_lowercase = config['hostname'].lower()
+ kerberos_domain = config['configurations']['cluster-env']['kerberos_domain']
+ _storm_principal_name = config['configurations']['storm-env']['storm_principal_name']
+ storm_jaas_principal = _storm_principal_name.replace('_HOST',_hostname_lowercase)
+ storm_keytab_path = config['configurations']['storm-env']['storm_keytab']
+
+ if hdp_stack_version != "" and compare_versions(hdp_stack_version, '2.2') >= 0:
+ storm_ui_keytab_path = config['configurations']['storm-env']['storm_ui_keytab']
+ _storm_ui_jaas_principal_name = config['configurations']['storm-env']['storm_ui_principal_name']
+ storm_ui_host = default("/clusterHostInfo/storm_ui_server_hosts", [])
+ storm_ui_jaas_principal = _storm_ui_jaas_principal_name.replace('_HOST',storm_ui_host[0].lower())
+
+ storm_bare_jaas_principal = _storm_principal_name.replace('_HOST','').replace('@'+kerberos_domain,'')
+
+
+
+ _nimbus_principal_name = config['configurations']['storm-env']['nimbus_principal_name']
+ nimbus_jaas_principal = _nimbus_principal_name.replace('_HOST',nimbus_host.lower())
+ nimbus_bare_jaas_principal = _nimbus_principal_name.replace('/_HOST','').replace('@'+kerberos_domain,'')
+ nimbus_keytab_path = config['configurations']['storm-env']['nimbus_keytab']
+
+ams_collector_hosts = default("/clusterHostInfo/metric_collector_hosts", [])
+has_metric_collector = not len(ams_collector_hosts) == 0
+if has_metric_collector:
+ metric_collector_host = ams_collector_hosts[0]
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/rest_api.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/rest_api.py b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/rest_api.py
new file mode 100644
index 0000000..ec7deec
--- /dev/null
+++ b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/rest_api.py
@@ -0,0 +1,58 @@
+#!/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.
+
+"""
+
+import sys
+from resource_management import *
+from storm import storm
+from service import service
+from service_check import ServiceCheck
+
+
+class StormRestApi(Script):
+ def install(self, env):
+ self.install_packages(env)
+ self.configure(env)
+
+ def configure(self, env):
+ import params
+ env.set_params(params)
+
+ storm()
+
+ def start(self, env):
+ import params
+ env.set_params(params)
+ self.configure(env)
+
+ service("rest_api", action="start")
+
+ def stop(self, env):
+ import params
+ env.set_params(params)
+
+ service("rest_api", action="stop")
+
+ def status(self, env):
+ import status_params
+ env.set_params(status_params)
+ check_process_status(status_params.pid_rest_api)
+
+if __name__ == "__main__":
+ StormRestApi().execute()
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/service.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/service.py b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/service.py
new file mode 100644
index 0000000..ed6add5
--- /dev/null
+++ b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/service.py
@@ -0,0 +1,84 @@
+#!/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 resource_management import *
+import time
+
+
+def service(
+ name,
+ action='start'):
+ import params
+ import status_params
+
+ pid_file = status_params.pid_files[name]
+ no_op_test = format("ls {pid_file} >/dev/null 2>&1 && ps -p `cat {pid_file}` >/dev/null 2>&1")
+
+ if name == "logviewer" or name == "drpc":
+ tries_count = 12
+ else:
+ tries_count = 6
+
+ if name == 'ui':
+ process_grep = "backtype.storm.ui.core$"
+ elif name == "rest_api":
+ process_grep = format("{rest_lib_dir}/storm-rest-.*\.jar$")
+ else:
+ process_grep = format("storm.daemon.{name}$")
+
+ find_proc = format("{jps_binary} -l | grep {process_grep}")
+ write_pid = format("{find_proc} | awk {{'print $1'}} > {pid_file}")
+ crt_pid_cmd = format("{find_proc} && {write_pid}")
+
+ if action == "start":
+ if name == "rest_api":
+ process_cmd = format("{java64_home}/bin/java -jar {rest_lib_dir}/`ls {rest_lib_dir} | grep -wE storm-rest-[0-9.-]+\.jar` server")
+ cmd = format("{process_cmd} {rest_api_conf_file} > {log_dir}/restapi.log 2>&1")
+ else:
+ cmd = format("env JAVA_HOME={java64_home} PATH=$PATH:{java64_home}/bin storm {name} > {log_dir}/{name}.out 2>&1")
+
+ Execute(cmd,
+ not_if=no_op_test,
+ user=params.storm_user,
+ wait_for_finish=False,
+ path=params.storm_bin_dir
+ )
+ Execute(crt_pid_cmd,
+ user=params.storm_user,
+ logoutput=True,
+ tries=tries_count,
+ try_sleep=10,
+ path=params.storm_bin_dir
+ )
+
+ elif action == "stop":
+ process_dont_exist = format("! ({no_op_test})")
+ pid = format("`cat {pid_file}`")
+ Execute(format("sudo kill {pid}"),
+ not_if=process_dont_exist
+ )
+ Execute(format("sudo kill -9 {pid}"),
+ not_if=format("sleep 2; {process_dont_exist} || sleep 20; {process_dont_exist}"),
+ ignore_failures=True
+ )
+ File(pid_file,
+ action = "delete",
+ )
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/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
new file mode 100644
index 0000000..2661e6f
--- /dev/null
+++ b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/service_check.py
@@ -0,0 +1,49 @@
+#!/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 resource_management import *
+from resource_management.libraries.functions import get_unique_id_and_date
+
+class ServiceCheck(Script):
+ def service_check(self, env):
+ import params
+ env.set_params(params)
+
+ unique = get_unique_id_and_date()
+
+ File("/tmp/wordCount.jar",
+ content=StaticFile("wordCount.jar")
+ )
+
+ cmd = format("env JAVA_HOME={java64_home} storm jar /tmp/wordCount.jar storm.starter.WordCountTopology WordCount{unique} -c nimbus.host={nimbus_host}")
+
+ Execute(cmd,
+ logoutput=True,
+ path=params.storm_bin_dir,
+ user=params.storm_user
+ )
+
+ Execute(format("env JAVA_HOME={java64_home} storm kill WordCount{unique}"),
+ path=params.storm_bin_dir,
+ user=params.storm_user
+ )
+
+if __name__ == "__main__":
+ ServiceCheck().execute()
[2/6] ambari git commit: AMBARI-8779: Common Services: Refactor
HDP-2.1 FALCON, STORM, TEZ services (Jayush Luniya)
Posted by jl...@apache.org.
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/metrics.json
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/metrics.json b/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/metrics.json
deleted file mode 100644
index c2776ab..0000000
--- a/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/metrics.json
+++ /dev/null
@@ -1,1077 +0,0 @@
-{
- "STORM_REST_API": {
- "Component": [
- {
- "type": "org.apache.ambari.server.controller.metrics.RestMetricsPropertyProvider",
- "properties" : {
- "default_port": "8745",
- "port_config_type": "storm-site",
- "port_property_name": "storm.port",
- "protocol": "http"
- },
- "metrics": {
- "metrics/api/cluster/summary/tasks.total":
- {
- "metric": "/api/cluster/summary##tasks.total",
- "pointInTime": true,
- "temporal": false
- },
- "metrics/api/cluster/summary/slots.total": {
- "metric": "/api/cluster/summary##slots.total",
- "pointInTime": true,
- "temporal": false
- },
- "metrics/api/cluster/summary/slots.free": {
- "metric": "/api/cluster/summary##slots.free",
- "pointInTime": true,
- "temporal": false
- },
- "metrics/api/cluster/summary/supervisors": {
- "metric": "/api/cluster/summary##supervisors",
- "pointInTime": true,
- "temporal": false
- },
- "metrics/api/cluster/summary/executors.total": {
- "metric": "/api/cluster/summary##executors.total",
- "pointInTime": true,
- "temporal": false
- },
- "metrics/api/cluster/summary/slots.used": {
- "metric": "/api/cluster/summary##slots.used",
- "pointInTime": true,
- "temporal": false
- },
- "metrics/api/cluster/summary/topologies": {
- "metric": "/api/cluster/summary##topologies",
- "pointInTime": true,
- "temporal": false
- },
- "metrics/api/cluster/summary/nimbus.uptime": {
- "metric": "/api/cluster/summary##nimbus.uptime",
- "pointInTime": true,
- "temporal": false
- }
- }
- }
- ],
- "HostComponent": [
- {
- "type": "org.apache.ambari.server.controller.metrics.RestMetricsPropertyProvider",
- "properties" : {
- "default_port": "8745",
- "port_config_type": "storm-site",
- "port_property_name": "storm.port",
- "protocol": "http"
- },
- "metrics": {
- "metrics/api/cluster/summary/tasks.total":
- {
- "metric": "/api/cluster/summary##tasks.total",
- "pointInTime": true,
- "temporal": false
- },
- "metrics/api/cluster/summary/slots.total": {
- "metric": "/api/cluster/summary##slots.total",
- "pointInTime": true,
- "temporal": false
- },
- "metrics/api/cluster/summary/slots.free": {
- "metric": "/api/cluster/summary##slots.free",
- "pointInTime": true,
- "temporal": false
- },
- "metrics/api/cluster/summary/supervisors": {
- "metric": "/api/cluster/summary##supervisors",
- "pointInTime": true,
- "temporal": false
- },
- "metrics/api/cluster/summary/executors.total": {
- "metric": "/api/cluster/summary##executors.total",
- "pointInTime": true,
- "temporal": false
- },
- "metrics/api/cluster/summary/slots.used": {
- "metric": "/api/cluster/summary##slots.used",
- "pointInTime": true,
- "temporal": false
- },
- "metrics/api/cluster/summary/topologies": {
- "metric": "/api/cluster/summary##topologies",
- "pointInTime": true,
- "temporal": false
- },
- "metrics/api/cluster/summary/nimbus.uptime": {
- "metric": "/api/cluster/summary##nimbus.uptime",
- "pointInTime": true,
- "temporal": false
- }
- }
- }
- ]
- },
- "NIMBUS": {
- "Component": [
- {
- "type": "ganglia",
- "metrics": {
- "metrics/boottime": {
- "metric": "boottime",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/network/bytes_in": {
- "metric": "bytes_in",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/network/bytes_out": {
- "metric": "bytes_out",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/cpu/cpu_aidle": {
- "metric": "cpu_aidle",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/cpu/cpu_idle": {
- "metric": "cpu_idle",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/cpu/cpu_nice": {
- "metric": "cpu_nice",
- "pointInTime": true,
- "temporal": true
- },
-
- "metrics/cpu/cpu_num": {
- "metric": "cpu_num",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/cpu/cpu_speed": {
- "metric": "cpu_speed",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/cpu/cpu_system": {
- "metric": "cpu_system",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/cpu/cpu_user": {
- "metric": "cpu_user",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/cpu/cpu_wio": {
- "metric": "cpu_wio",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/disk/disk_free": {
- "metric": "disk_free",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/disk/disk_total": {
- "metric": "disk_total",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/load_fifteen": {
- "metric": "load_fifteen",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/load_five": {
- "metric": "load_five",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/load_one": {
- "metric": "load_one",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/memory/mem_buffers": {
- "metric": "mem_buffers",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/memory/mem_cached": {
- "metric": "mem_cached",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/memory/mem_free": {
- "metric": "mem_free",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/memory/mem_shared": {
- "metric": "mem_shared",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/memory/mem_total": {
- "metric": "mem_total",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/disk/part_max_used": {
- "metric": "part_max_used",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/network/pkts_in": {
- "metric": "pkts_in",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/network/pkts_out": {
- "metric": "pkts_out",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/process/proc_run": {
- "metric": "proc_run",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/process/proc_total": {
- "metric": "proc_total",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/memory/swap_free": {
- "metric": "swap_free",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/memory/swap_total": {
- "metric": "swap_total",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/nimbus/jvm/memory/heap/committed": {
- "metric": "Nimbus.JVM.Memory.Heap.committed",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/nimbus/jvm/memory/heap/init": {
- "metric": "Nimbus.JVM.Memory.Heap.init",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/nimbus/jvm/memory/heap/max": {
- "metric": "Nimbus.JVM.Memory.Heap.max",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/nimbus/jvm/memory/heap/used": {
- "metric": "Nimbus.JVM.Memory.Heap.used",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/nimbus/jvm/memory/nonheap/committed": {
- "metric": "Nimbus.JVM.Memory.NonHeap.committed",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/nimbus/jvm/memory/nonheap/init": {
- "metric": "Nimbus.JVM.Memory.NonHeap.init",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/nimbus/jvm/memory/nonheap/max": {
- "metric": "Nimbus.JVM.Memory.NonHeap.max",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/nimbus/jvm/memory/nonheap/used": {
- "metric": "Nimbus.JVM.Memory.NonHeap.used",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/nimbus/jvm/os/processcputime": {
- "metric": "Nimbus.JVM.OS.ProcessCpuTime",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/nimbus/jvm/threading/daemonthreadcount": {
- "metric": "Nimbus.JVM.Threading.DaemonThreadCount",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/nimbus/jvm/threading/threadcount": {
- "metric": "Nimbus.JVM.Threading.ThreadCount",
- "pointInTime": true,
- "temporal": true
- },
-
- "metrics/storm/nimbus/freeslots": {
- "metric": "Free Slots",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/nimbus/supervisors": {
- "metric": "Supervisors",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/nimbus/topologies": {
- "metric": "Topologies",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/nimbus/totalexecutors": {
- "metric": "Total Executors",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/nimbus/totalslots": {
- "metric": "Total Slots",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/nimbus/totaltasks": {
- "metric": "Total Tasks",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/nimbus/usedslots": {
- "metric": "Used Slots",
- "pointInTime": true,
- "temporal": true
- }
- }
- }
- ],
- "HostComponent": [
- {
- "type": "ganglia",
- "metrics": {
- "metrics/boottime": {
- "metric": "boottime",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/network/bytes_in": {
- "metric": "bytes_in",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/network/bytes_out": {
- "metric": "bytes_out",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/cpu/cpu_aidle": {
- "metric": "cpu_aidle",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/cpu/cpu_idle": {
- "metric": "cpu_idle",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/cpu/cpu_nice": {
- "metric": "cpu_nice",
- "pointInTime": true,
- "temporal": true
- },
-
- "metrics/cpu/cpu_num": {
- "metric": "cpu_num",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/cpu/cpu_speed": {
- "metric": "cpu_speed",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/cpu/cpu_system": {
- "metric": "cpu_system",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/cpu/cpu_user": {
- "metric": "cpu_user",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/cpu/cpu_wio": {
- "metric": "cpu_wio",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/disk/disk_free": {
- "metric": "disk_free",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/disk/disk_total": {
- "metric": "disk_total",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/load_fifteen": {
- "metric": "load_fifteen",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/load_five": {
- "metric": "load_five",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/load_one": {
- "metric": "load_one",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/memory/mem_buffers": {
- "metric": "mem_buffers",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/memory/mem_cached": {
- "metric": "mem_cached",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/memory/mem_free": {
- "metric": "mem_free",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/memory/mem_shared": {
- "metric": "mem_shared",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/memory/mem_total": {
- "metric": "mem_total",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/disk/part_max_used": {
- "metric": "part_max_used",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/network/pkts_in": {
- "metric": "pkts_in",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/network/pkts_out": {
- "metric": "pkts_out",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/process/proc_run": {
- "metric": "proc_run",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/process/proc_total": {
- "metric": "proc_total",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/memory/swap_free": {
- "metric": "swap_free",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/memory/swap_total": {
- "metric": "swap_total",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/nimbus/jvm/memory/heap/committed": {
- "metric": "Nimbus.JVM.Memory.Heap.committed",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/nimbus/jvm/memory/heap/init": {
- "metric": "Nimbus.JVM.Memory.Heap.init",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/nimbus/jvm/memory/heap/max": {
- "metric": "Nimbus.JVM.Memory.Heap.max",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/nimbus/jvm/memory/heap/used": {
- "metric": "Nimbus.JVM.Memory.Heap.used",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/nimbus/jvm/memory/nonheap/committed": {
- "metric": "Nimbus.JVM.Memory.NonHeap.committed",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/nimbus/jvm/memory/nonheap/init": {
- "metric": "Nimbus.JVM.Memory.NonHeap.init",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/nimbus/jvm/memory/nonheap/max": {
- "metric": "Nimbus.JVM.Memory.NonHeap.max",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/nimbus/jvm/memory/nonheap/used": {
- "metric": "Nimbus.JVM.Memory.NonHeap.used",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/nimbus/jvm/os/processcputime": {
- "metric": "Nimbus.JVM.OS.ProcessCpuTime",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/nimbus/jvm/threading/daemonthreadcount": {
- "metric": "Nimbus.JVM.Threading.DaemonThreadCount",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/nimbus/jvm/threading/threadcount": {
- "metric": "Nimbus.JVM.Threading.ThreadCount",
- "pointInTime": true,
- "temporal": true
- }
-
- }
- }
- ]
- },
- "SUPERVISOR": {
- "Component": [
- {
- "type": "ganglia",
- "metrics": {
- "metrics/boottime": {
- "metric": "boottime",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/network/bytes_in": {
- "metric": "bytes_in",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/network/bytes_out": {
- "metric": "bytes_out",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/cpu/cpu_aidle": {
- "metric": "cpu_aidle",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/cpu/cpu_idle": {
- "metric": "cpu_idle",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/cpu/cpu_nice": {
- "metric": "cpu_nice",
- "pointInTime": true,
- "temporal": true
- },
-
- "metrics/cpu/cpu_num": {
- "metric": "cpu_num",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/cpu/cpu_speed": {
- "metric": "cpu_speed",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/cpu/cpu_system": {
- "metric": "cpu_system",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/cpu/cpu_user": {
- "metric": "cpu_user",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/cpu/cpu_wio": {
- "metric": "cpu_wio",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/disk/disk_free": {
- "metric": "disk_free",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/disk/disk_total": {
- "metric": "disk_total",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/load_fifteen": {
- "metric": "load_fifteen",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/load_five": {
- "metric": "load_five",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/load_one": {
- "metric": "load_one",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/memory/mem_buffers": {
- "metric": "mem_buffers",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/memory/mem_cached": {
- "metric": "mem_cached",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/memory/mem_free": {
- "metric": "mem_free",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/memory/mem_shared": {
- "metric": "mem_shared",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/memory/mem_total": {
- "metric": "mem_total",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/disk/part_max_used": {
- "metric": "part_max_used",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/network/pkts_in": {
- "metric": "pkts_in",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/network/pkts_out": {
- "metric": "pkts_out",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/process/proc_run": {
- "metric": "proc_run",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/process/proc_total": {
- "metric": "proc_total",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/memory/swap_free": {
- "metric": "swap_free",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/memory/swap_total": {
- "metric": "swap_total",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/supervisor/jvm/memory/heap/committed": {
- "metric": "Supervisor.JVM.Memory.Heap.committed",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/supervisor/jvm/memory/heap/init": {
- "metric": "Supervisor.JVM.Memory.Heap.init",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/supervisor/jvm/memory/heap/max": {
- "metric": "Supervisor.JVM.Memory.Heap.max",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/supervisor/jvm/memory/heap/used": {
- "metric": "Supervisor.JVM.Memory.Heap.used",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/supervisor/jvm/memory/nonheap/committed": {
- "metric": "Supervisor.JVM.Memory.NonHeap.committed",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/supervisor/jvm/memory/nonheap/init": {
- "metric": "Supervisor.JVM.Memory.NonHeap.init",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/supervisor/jvm/memory/nonheap/max": {
- "metric": "Supervisor.JVM.Memory.NonHeap.max",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/supervisor/jvm/memory/nonheap/used": {
- "metric": "Supervisor.JVM.Memory.NonHeap.used",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/supervisor/jvm/os/processcputime": {
- "metric": "Supervisor.JVM.OS.ProcessCpuTime",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/supervisor/jvm/threading/daemonthreadcount": {
- "metric": "Supervisor.JVM.Threading.DaemonThreadCount",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/supervisor/jvm/threading/threadcount": {
- "metric": "Supervisor.JVM.Threading.ThreadCount",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/worker/$1/jvm/memory/heap/committed": {
- "metric": "Worker.(.+).JVM.Memory.Heap.committed",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/worker/$1/jvm/memory/heap/init": {
- "metric": "Worker.(.+).JVM.Memory.Heap.init",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/worker/$1/jvm/memory/heap/max": {
- "metric": "Worker.(.+).JVM.Memory.Heap.max",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/worker/$1/jvm/memory/heap/used": {
- "metric": "Worker.(.+).JVM.Memory.Heap.used",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/worker/$1/jvm/memory/nonheap/committed": {
- "metric": "Worker.(.+).JVM.Memory.NonHeap.committed",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/worker/$1/jvm/memory/nonheap/init": {
- "metric": "Worker.(.+).JVM.Memory.NonHeap.init",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/worker/$1/jvm/memory/nonheap/max": {
- "metric": "Worker.(.+).JVM.Memory.NonHeap.max",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/worker/$1/jvm/memory/nonheap/used": {
- "metric": "Worker.(.+).JVM.Memory.NonHeap.used",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/worker/$1/jvm/os/processcputime": {
- "metric": "Worker.(.+).JVM.OS.ProcessCpuTime",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/worker/$1/jvm/threading/daemonthreadcount": {
- "metric": "Worker.(.+).JVM.Threading.DaemonThreadCount",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/worker/$1/jvm/threading/threadcount": {
- "metric": "Worker.(.+).JVM.Threading.ThreadCount",
- "pointInTime": true,
- "temporal": true
- }
-
-
- }
- }
- ],
- "HostComponent": [
- {
- "type": "ganglia",
- "metrics": {
- "metrics/boottime": {
- "metric": "boottime",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/network/bytes_in": {
- "metric": "bytes_in",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/network/bytes_out": {
- "metric": "bytes_out",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/cpu/cpu_aidle": {
- "metric": "cpu_aidle",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/cpu/cpu_idle": {
- "metric": "cpu_idle",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/cpu/cpu_nice": {
- "metric": "cpu_nice",
- "pointInTime": true,
- "temporal": true
- },
-
- "metrics/cpu/cpu_num": {
- "metric": "cpu_num",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/cpu/cpu_speed": {
- "metric": "cpu_speed",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/cpu/cpu_system": {
- "metric": "cpu_system",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/cpu/cpu_user": {
- "metric": "cpu_user",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/cpu/cpu_wio": {
- "metric": "cpu_wio",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/disk/disk_free": {
- "metric": "disk_free",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/disk/disk_total": {
- "metric": "disk_total",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/load_fifteen": {
- "metric": "load_fifteen",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/load_five": {
- "metric": "load_five",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/load_one": {
- "metric": "load_one",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/memory/mem_buffers": {
- "metric": "mem_buffers",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/memory/mem_cached": {
- "metric": "mem_cached",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/memory/mem_free": {
- "metric": "mem_free",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/memory/mem_shared": {
- "metric": "mem_shared",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/memory/mem_total": {
- "metric": "mem_total",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/disk/part_max_used": {
- "metric": "part_max_used",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/network/pkts_in": {
- "metric": "pkts_in",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/network/pkts_out": {
- "metric": "pkts_out",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/process/proc_run": {
- "metric": "proc_run",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/process/proc_total": {
- "metric": "proc_total",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/memory/swap_free": {
- "metric": "swap_free",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/memory/swap_total": {
- "metric": "swap_total",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/supervisor/jvm/memory/heap/committed": {
- "metric": "Supervisor.JVM.Memory.Heap.committed",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/supervisor/jvm/memory/heap/init": {
- "metric": "Supervisor.JVM.Memory.Heap.init",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/supervisor/jvm/memory/heap/max": {
- "metric": "Supervisor.JVM.Memory.Heap.max",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/supervisor/jvm/memory/heap/used": {
- "metric": "Supervisor.JVM.Memory.Heap.used",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/supervisor/jvm/memory/nonheap/committed": {
- "metric": "Supervisor.JVM.Memory.NonHeap.committed",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/supervisor/jvm/memory/nonheap/init": {
- "metric": "Supervisor.JVM.Memory.NonHeap.init",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/supervisor/jvm/memory/nonheap/max": {
- "metric": "Supervisor.JVM.Memory.NonHeap.max",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/supervisor/jvm/memory/nonheap/used": {
- "metric": "Supervisor.JVM.Memory.NonHeap.used",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/supervisor/jvm/os/processcputime": {
- "metric": "Supervisor.JVM.OS.ProcessCpuTime",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/supervisor/jvm/threading/daemonthreadcount": {
- "metric": "Supervisor.JVM.Threading.DaemonThreadCount",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/supervisor/jvm/threading/threadcount": {
- "metric": "Supervisor.JVM.Threading.ThreadCount",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/worker/$1/jvm/memory/heap/committed": {
- "metric": "Worker.(.+).JVM.Memory.Heap.committed",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/worker/$1/jvm/memory/heap/init": {
- "metric": "Worker.(.+).JVM.Memory.Heap.init",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/worker/$1/jvm/memory/heap/max": {
- "metric": "Worker.(.+).JVM.Memory.Heap.max",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/worker/$1/jvm/memory/heap/used": {
- "metric": "Worker.(.+).JVM.Memory.Heap.used",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/worker/$1/jvm/memory/nonheap/committed": {
- "metric": "Worker.(.+).JVM.Memory.NonHeap.committed",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/worker/$1/jvm/memory/nonheap/init": {
- "metric": "Worker.(.+).JVM.Memory.NonHeap.init",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/worker/$1/jvm/memory/nonheap/max": {
- "metric": "Worker.(.+).JVM.Memory.NonHeap.max",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/worker/$1/jvm/memory/nonheap/used": {
- "metric": "Worker.(.+).JVM.Memory.NonHeap.used",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/worker/$1/jvm/os/processcputime": {
- "metric": "Worker.(.+).JVM.OS.ProcessCpuTime",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/worker/$1/jvm/threading/daemonthreadcount": {
- "metric": "Worker.(.+).JVM.Threading.DaemonThreadCount",
- "pointInTime": true,
- "temporal": true
- },
- "metrics/storm/worker/$1/jvm/threading/threadcount": {
- "metric": "Worker.(.+).JVM.Threading.ThreadCount",
- "pointInTime": true,
- "temporal": true
- }
- }
- }
- ]
- }
-}
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/files/wordCount.jar
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/files/wordCount.jar b/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/files/wordCount.jar
deleted file mode 100644
index aed64be..0000000
Binary files a/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/files/wordCount.jar and /dev/null differ
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/scripts/drpc_server.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/scripts/drpc_server.py b/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/scripts/drpc_server.py
deleted file mode 100644
index 149b212..0000000
--- a/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/scripts/drpc_server.py
+++ /dev/null
@@ -1,58 +0,0 @@
-#!/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.
-
-"""
-
-import sys
-from resource_management import *
-from storm import storm
-from service import service
-from service_check import ServiceCheck
-
-
-class DrpcServer(Script):
- def install(self, env):
- self.install_packages(env)
- self.configure(env)
-
- def configure(self, env):
- import params
- env.set_params(params)
-
- storm()
-
- def start(self, env):
- import params
- env.set_params(params)
- self.configure(env)
-
- service("drpc", action="start")
-
- def stop(self, env):
- import params
- env.set_params(params)
-
- service("drpc", action="stop")
-
- def status(self, env):
- import status_params
- env.set_params(status_params)
- check_process_status(status_params.pid_drpc)
-
-if __name__ == "__main__":
- DrpcServer().execute()
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/scripts/nimbus.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/scripts/nimbus.py b/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/scripts/nimbus.py
deleted file mode 100644
index 2dd7963..0000000
--- a/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/scripts/nimbus.py
+++ /dev/null
@@ -1,57 +0,0 @@
-#!/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.
-
-"""
-
-import sys
-from resource_management import *
-from storm import storm
-from service import service
-
-
-class Nimbus(Script):
- def install(self, env):
- self.install_packages(env)
- self.configure(env)
-
- def configure(self, env):
- import params
- env.set_params(params)
-
- storm()
-
- def start(self, env):
- import params
- env.set_params(params)
- self.configure(env)
-
- service("nimbus", action="start")
-
- def stop(self, env):
- import params
- env.set_params(params)
-
- service("nimbus", action="stop")
-
- def status(self, env):
- import status_params
- env.set_params(status_params)
- check_process_status(status_params.pid_nimbus)
-
-if __name__ == "__main__":
- Nimbus().execute()
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/scripts/nimbus_prod.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/scripts/nimbus_prod.py b/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/scripts/nimbus_prod.py
deleted file mode 100644
index a1f8afe..0000000
--- a/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/scripts/nimbus_prod.py
+++ /dev/null
@@ -1,55 +0,0 @@
-#!/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.
-
-"""
-
-import sys
-from resource_management import *
-from storm import storm
-from supervisord_service import supervisord_service, supervisord_check_status
-
-
-class Nimbus(Script):
- def install(self, env):
- self.install_packages(env)
- self.configure(env)
-
- def configure(self, env):
- import params
- env.set_params(params)
-
- storm()
-
- def start(self, env):
- import params
- env.set_params(params)
- self.configure(env)
-
- supervisord_service("nimbus", action="start")
-
- def stop(self, env):
- import params
- env.set_params(params)
-
- supervisord_service("nimbus", action="stop")
-
- def status(self, env):
- supervisord_check_status("nimbus")
-
-if __name__ == "__main__":
- Nimbus().execute()
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/scripts/params.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/scripts/params.py b/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/scripts/params.py
deleted file mode 100644
index ec74d77..0000000
--- a/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/scripts/params.py
+++ /dev/null
@@ -1,90 +0,0 @@
-#!/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 resource_management.libraries.functions.version import format_hdp_stack_version, compare_versions
-from resource_management import *
-import status_params
-
-# server configurations
-config = Script.get_config()
-
-hdp_stack_version = str(config['hostLevelParams']['stack_version'])
-hdp_stack_version = format_hdp_stack_version(hdp_stack_version)
-stack_is_hdp22_or_further = hdp_stack_version != "" and compare_versions(hdp_stack_version, '2.2') >= 0
-
-#hadoop params
-if hdp_stack_version != "" and compare_versions(hdp_stack_version, '2.2') >= 0:
- rest_lib_dir = '/usr/hdp/current/storm-client/contrib/storm-rest'
- storm_bin_dir = "/usr/hdp/current/storm-client/bin"
-else:
- rest_lib_dir = "/usr/lib/storm/contrib/storm-rest"
- storm_bin_dir = "/usr/bin"
-
-storm_user = config['configurations']['storm-env']['storm_user']
-log_dir = config['configurations']['storm-env']['storm_log_dir']
-pid_dir = status_params.pid_dir
-conf_dir = "/etc/storm/conf"
-local_dir = config['configurations']['storm-site']['storm.local.dir']
-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_host = config['configurations']['storm-site']['nimbus.host']
-rest_api_port = "8745"
-rest_api_admin_port = "8746"
-rest_api_conf_file = format("{conf_dir}/config.yaml")
-storm_env_sh_template = config['configurations']['storm-env']['content']
-
-if 'ganglia_server_host' in config['clusterHostInfo'] and \
- len(config['clusterHostInfo']['ganglia_server_host'])>0:
- ganglia_installed = True
- ganglia_server = config['clusterHostInfo']['ganglia_server_host'][0]
- ganglia_report_interval = 60
-else:
- ganglia_installed = False
-
-security_enabled = config['configurations']['cluster-env']['security_enabled']
-
-if security_enabled:
- _hostname_lowercase = config['hostname'].lower()
- kerberos_domain = config['configurations']['cluster-env']['kerberos_domain']
- _storm_principal_name = config['configurations']['storm-env']['storm_principal_name']
- storm_jaas_principal = _storm_principal_name.replace('_HOST',_hostname_lowercase)
- storm_keytab_path = config['configurations']['storm-env']['storm_keytab']
-
- if hdp_stack_version != "" and compare_versions(hdp_stack_version, '2.2') >= 0:
- storm_ui_keytab_path = config['configurations']['storm-env']['storm_ui_keytab']
- _storm_ui_jaas_principal_name = config['configurations']['storm-env']['storm_ui_principal_name']
- storm_ui_host = default("/clusterHostInfo/storm_ui_server_hosts", [])
- storm_ui_jaas_principal = _storm_ui_jaas_principal_name.replace('_HOST',storm_ui_host[0].lower())
-
- storm_bare_jaas_principal = _storm_principal_name.replace('_HOST','').replace('@'+kerberos_domain,'')
-
-
-
- _nimbus_principal_name = config['configurations']['storm-env']['nimbus_principal_name']
- nimbus_jaas_principal = _nimbus_principal_name.replace('_HOST',nimbus_host.lower())
- nimbus_bare_jaas_principal = _nimbus_principal_name.replace('/_HOST','').replace('@'+kerberos_domain,'')
- nimbus_keytab_path = config['configurations']['storm-env']['nimbus_keytab']
-
-ams_collector_hosts = default("/clusterHostInfo/metric_collector_hosts", [])
-has_metric_collector = not len(ams_collector_hosts) == 0
-if has_metric_collector:
- metric_collector_host = ams_collector_hosts[0]
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/scripts/rest_api.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/scripts/rest_api.py b/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/scripts/rest_api.py
deleted file mode 100644
index ec7deec..0000000
--- a/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/scripts/rest_api.py
+++ /dev/null
@@ -1,58 +0,0 @@
-#!/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.
-
-"""
-
-import sys
-from resource_management import *
-from storm import storm
-from service import service
-from service_check import ServiceCheck
-
-
-class StormRestApi(Script):
- def install(self, env):
- self.install_packages(env)
- self.configure(env)
-
- def configure(self, env):
- import params
- env.set_params(params)
-
- storm()
-
- def start(self, env):
- import params
- env.set_params(params)
- self.configure(env)
-
- service("rest_api", action="start")
-
- def stop(self, env):
- import params
- env.set_params(params)
-
- service("rest_api", action="stop")
-
- def status(self, env):
- import status_params
- env.set_params(status_params)
- check_process_status(status_params.pid_rest_api)
-
-if __name__ == "__main__":
- StormRestApi().execute()
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/scripts/service.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/scripts/service.py b/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/scripts/service.py
deleted file mode 100644
index ed6add5..0000000
--- a/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/scripts/service.py
+++ /dev/null
@@ -1,84 +0,0 @@
-#!/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 resource_management import *
-import time
-
-
-def service(
- name,
- action='start'):
- import params
- import status_params
-
- pid_file = status_params.pid_files[name]
- no_op_test = format("ls {pid_file} >/dev/null 2>&1 && ps -p `cat {pid_file}` >/dev/null 2>&1")
-
- if name == "logviewer" or name == "drpc":
- tries_count = 12
- else:
- tries_count = 6
-
- if name == 'ui':
- process_grep = "backtype.storm.ui.core$"
- elif name == "rest_api":
- process_grep = format("{rest_lib_dir}/storm-rest-.*\.jar$")
- else:
- process_grep = format("storm.daemon.{name}$")
-
- find_proc = format("{jps_binary} -l | grep {process_grep}")
- write_pid = format("{find_proc} | awk {{'print $1'}} > {pid_file}")
- crt_pid_cmd = format("{find_proc} && {write_pid}")
-
- if action == "start":
- if name == "rest_api":
- process_cmd = format("{java64_home}/bin/java -jar {rest_lib_dir}/`ls {rest_lib_dir} | grep -wE storm-rest-[0-9.-]+\.jar` server")
- cmd = format("{process_cmd} {rest_api_conf_file} > {log_dir}/restapi.log 2>&1")
- else:
- cmd = format("env JAVA_HOME={java64_home} PATH=$PATH:{java64_home}/bin storm {name} > {log_dir}/{name}.out 2>&1")
-
- Execute(cmd,
- not_if=no_op_test,
- user=params.storm_user,
- wait_for_finish=False,
- path=params.storm_bin_dir
- )
- Execute(crt_pid_cmd,
- user=params.storm_user,
- logoutput=True,
- tries=tries_count,
- try_sleep=10,
- path=params.storm_bin_dir
- )
-
- elif action == "stop":
- process_dont_exist = format("! ({no_op_test})")
- pid = format("`cat {pid_file}`")
- Execute(format("sudo kill {pid}"),
- not_if=process_dont_exist
- )
- Execute(format("sudo kill -9 {pid}"),
- not_if=format("sleep 2; {process_dont_exist} || sleep 20; {process_dont_exist}"),
- ignore_failures=True
- )
- File(pid_file,
- action = "delete",
- )
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/scripts/service_check.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/scripts/service_check.py b/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/scripts/service_check.py
deleted file mode 100644
index 2661e6f..0000000
--- a/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/scripts/service_check.py
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/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 resource_management import *
-from resource_management.libraries.functions import get_unique_id_and_date
-
-class ServiceCheck(Script):
- def service_check(self, env):
- import params
- env.set_params(params)
-
- unique = get_unique_id_and_date()
-
- File("/tmp/wordCount.jar",
- content=StaticFile("wordCount.jar")
- )
-
- cmd = format("env JAVA_HOME={java64_home} storm jar /tmp/wordCount.jar storm.starter.WordCountTopology WordCount{unique} -c nimbus.host={nimbus_host}")
-
- Execute(cmd,
- logoutput=True,
- path=params.storm_bin_dir,
- user=params.storm_user
- )
-
- Execute(format("env JAVA_HOME={java64_home} storm kill WordCount{unique}"),
- path=params.storm_bin_dir,
- user=params.storm_user
- )
-
-if __name__ == "__main__":
- ServiceCheck().execute()
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/scripts/status_params.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/scripts/status_params.py b/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/scripts/status_params.py
deleted file mode 100644
index 5eaa446..0000000
--- a/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/scripts/status_params.py
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/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 resource_management import *
-
-config = Script.get_config()
-
-pid_dir = config['configurations']['storm-env']['storm_pid_dir']
-pid_nimbus = format("{pid_dir}/nimbus.pid")
-pid_supervisor = format("{pid_dir}/supervisor.pid")
-pid_drpc = format("{pid_dir}/drpc.pid")
-pid_ui = format("{pid_dir}/ui.pid")
-pid_logviewer = format("{pid_dir}/logviewer.pid")
-pid_rest_api = format("{pid_dir}/restapi.pid")
-pid_files = {"logviewer":pid_logviewer,
- "ui": pid_ui,
- "nimbus": pid_nimbus,
- "supervisor": pid_supervisor,
- "drpc": pid_drpc,
- "rest_api": pid_rest_api}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/scripts/storm.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/scripts/storm.py b/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/scripts/storm.py
deleted file mode 100644
index 3b71751..0000000
--- a/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/scripts/storm.py
+++ /dev/null
@@ -1,98 +0,0 @@
-#!/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 resource_management import *
-from yaml_utils import escape_yaml_propetry
-import sys
-
-def storm():
- import params
-
- Directory(params.log_dir,
- owner=params.storm_user,
- group=params.user_group,
- mode=0775,
- recursive=True
- )
-
- Directory([params.pid_dir, params.local_dir, params.conf_dir],
- owner=params.storm_user,
- group=params.user_group,
- recursive=True,
- recursive_permission=True
- )
-
- File(format("{conf_dir}/config.yaml"),
- content=Template("config.yaml.j2"),
- owner=params.storm_user,
- group=params.user_group
- )
-
- configurations = params.config['configurations']['storm-site']
-
- File(format("{conf_dir}/storm.yaml"),
- content=Template(
- "storm.yaml.j2",
- extra_imports=[escape_yaml_propetry],
- configurations = configurations),
- owner=params.storm_user,
- group=params.user_group
- )
-
- if params.has_metric_collector:
- File(format("{conf_dir}/storm-metrics2.properties"),
- owner=params.storm_user,
- group=params.user_group,
- content=Template("storm-metrics2.properties.j2")
- )
-
- File(format("{conf_dir}/storm-env.sh"),
- owner=params.storm_user,
- content=InlineTemplate(params.storm_env_sh_template)
- )
-
- if params.security_enabled:
- TemplateConfig(format("{conf_dir}/storm_jaas.conf"),
- owner=params.storm_user
- )
- if params.hdp_stack_version != "" and compare_versions(params.hdp_stack_version, '2.2') >= 0:
- TemplateConfig(format("{conf_dir}/client_jaas.conf"),
- owner=params.storm_user
- )
- minRuid = configurations['_storm.min.ruid'] if configurations.has_key('_storm.min.ruid') else ''
-
- min_user_ruid = int(minRuid) if minRuid.isdigit() else _find_real_user_min_uid()
-
- File(format("{conf_dir}/worker-launcher.cfg"),
- content=Template("worker-launcher.cfg.j2", min_user_ruid = min_user_ruid),
- owner='root',
- group=params.user_group
- )
-
-
-'''
-Finds minimal real user UID
-'''
-def _find_real_user_min_uid():
- with open('/etc/login.defs') as f:
- for line in f:
- if line.strip().startswith('UID_MIN') and len(line.split()) == 2 and line.split()[1].isdigit():
- return int(line.split()[1])
- raise Fail("Unable to find UID_MIN in file /etc/login.defs. Expecting format e.g.: 'UID_MIN 500'")
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/scripts/supervisor.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/scripts/supervisor.py b/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/scripts/supervisor.py
deleted file mode 100644
index 1ebe187..0000000
--- a/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/scripts/supervisor.py
+++ /dev/null
@@ -1,61 +0,0 @@
-#!/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.
-
-"""
-
-import sys
-from resource_management import *
-from storm import storm
-from service import service
-
-
-class Supervisor(Script):
- def install(self, env):
- self.install_packages(env)
- self.configure(env)
-
- def configure(self, env):
- import params
- env.set_params(params)
- storm()
-
- def start(self, env):
- import params
- env.set_params(params)
- self.configure(env)
-
- service("supervisor", action="start")
- service("logviewer", action="start")
-
- def stop(self, env):
- import params
- env.set_params(params)
-
- service("supervisor", action="stop")
- service("logviewer", action="stop")
-
- def status(self, env):
- import status_params
- env.set_params(status_params)
-
- check_process_status(status_params.pid_supervisor)
-
-
-if __name__ == "__main__":
- Supervisor().execute()
-
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/scripts/supervisor_prod.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/scripts/supervisor_prod.py b/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/scripts/supervisor_prod.py
deleted file mode 100644
index 7aecdc5..0000000
--- a/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/scripts/supervisor_prod.py
+++ /dev/null
@@ -1,57 +0,0 @@
-#!/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.
-
-"""
-
-import sys
-from resource_management import *
-from storm import storm
-from service import service
-from supervisord_service import supervisord_service, supervisord_check_status
-
-
-class Supervisor(Script):
- def install(self, env):
- self.install_packages(env)
- self.configure(env)
-
- def configure(self, env):
- import params
- env.set_params(params)
- storm()
-
- def start(self, env):
- import params
- env.set_params(params)
- self.configure(env)
-
- supervisord_service("supervisor", action="start")
- service("logviewer", action="start")
-
- def stop(self, env):
- import params
- env.set_params(params)
-
- supervisord_service("supervisor", action="stop")
- service("logviewer", action="stop")
-
- def status(self, env):
- supervisord_check_status("supervisor")
-
-if __name__ == "__main__":
- Supervisor().execute()
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/scripts/supervisord_service.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/scripts/supervisord_service.py b/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/scripts/supervisord_service.py
deleted file mode 100644
index 6a5ea0b..0000000
--- a/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/scripts/supervisord_service.py
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/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 resource_management import *
-
-def supervisord_service(component_name, action):
- Execute(format("supervisorctl {action} storm-{component_name}"),
- wait_for_finish=False
- )
-
-def supervisord_check_status(component_name):
- try:
- Execute(format("supervisorctl status storm-{component_name} | grep RUNNING"))
- except Fail:
- raise ComponentIsNotRunning()
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/scripts/ui_server.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/scripts/ui_server.py b/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/scripts/ui_server.py
deleted file mode 100644
index 6a9d923..0000000
--- a/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/scripts/ui_server.py
+++ /dev/null
@@ -1,58 +0,0 @@
-#!/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.
-
-"""
-
-import sys
-from resource_management import *
-from storm import storm
-from service import service
-from service_check import ServiceCheck
-
-
-class UiServer(Script):
- def install(self, env):
- self.install_packages(env)
- self.configure(env)
-
- def configure(self, env):
- import params
- env.set_params(params)
-
- storm()
-
- def start(self, env):
- import params
- env.set_params(params)
- self.configure(env)
-
- service("ui", action="start")
-
- def stop(self, env):
- import params
- env.set_params(params)
-
- service("ui", action="stop")
-
- def status(self, env):
- import status_params
- env.set_params(status_params)
- check_process_status(status_params.pid_ui)
-
-if __name__ == "__main__":
- UiServer().execute()
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/scripts/yaml_utils.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/scripts/yaml_utils.py b/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/scripts/yaml_utils.py
deleted file mode 100644
index 8187666..0000000
--- a/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/scripts/yaml_utils.py
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/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.
-
-"""
-
-import re
-
-def escape_yaml_propetry(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:
- unquouted = True
-
- # if is list [a,b,c]
- if re.match('^\w*\[.+\]\w*$', value):
- unquouted = True
-
- try:
- int(value)
- unquouted = True
- except ValueError:
- pass
-
- try:
- float(value)
- unquouted = True
- except ValueError:
- pass
-
- if not unquouted:
- value = value.replace("'","''")
- value = "'"+value+"'"
-
- return value
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/templates/client_jaas.conf.j2
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/templates/client_jaas.conf.j2 b/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/templates/client_jaas.conf.j2
deleted file mode 100644
index e8dc122..0000000
--- a/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/templates/client_jaas.conf.j2
+++ /dev/null
@@ -1,24 +0,0 @@
-{#
-# 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.
-#}
-
-StormClient {
- com.sun.security.auth.module.Krb5LoginModule required
- useTicketCache=true
- renewTicket=true
- serviceName="{{nimbus_bare_jaas_principal}}";
-};
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/templates/config.yaml.j2
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/templates/config.yaml.j2 b/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/templates/config.yaml.j2
deleted file mode 100644
index 445df31..0000000
--- a/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/templates/config.yaml.j2
+++ /dev/null
@@ -1,65 +0,0 @@
-{#
-# 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.
-#}
-
-# 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.
-
-nimbusHost: {{nimbus_host}}
-nimbusPort: {{nimbus_port}}
-
-# HTTP-specific options.
-http:
-
- # The port on which the HTTP server listens for service requests.
- port: {{rest_api_port}}
-
- # The port on which the HTTP server listens for administrative requests.
- adminPort: {{rest_api_admin_port}}
-
-{% if ganglia_installed %}
-enableGanglia: {{ganglia_installed}}
-
-# ganglia configuration (necessary if ganglia reporting is enabled)
-ganglia:
-
- # how often to report to ganglia metrics (in seconds)
- reportInterval: {{ganglia_report_interval}}
-
- # the hostname of the gmond server where storm cluster metrics will be sent
- host: "{{ganglia_server}}"
-
- # address mode
- # default is MULTICAST
- addressMode: "UNICAST"
-
- # an <IP>:<HOSTNAME> pair to spoof
- # this allows us to simulate storm cluster metrics coming from a specific host
- #spoof: "192.168.1.1:storm"
-{% endif %}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/templates/storm-metrics2.properties.j2
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/templates/storm-metrics2.properties.j2 b/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/templates/storm-metrics2.properties.j2
deleted file mode 100644
index 6d333d5..0000000
--- a/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/templates/storm-metrics2.properties.j2
+++ /dev/null
@@ -1,21 +0,0 @@
-{#
-# 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.
-#}
-
-collector={{metric_collector_host}}:8188
-maxRowCacheSize=10000
-sendInterval=59000
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/templates/storm.yaml.j2
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/templates/storm.yaml.j2 b/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/templates/storm.yaml.j2
deleted file mode 100644
index e6eed41..0000000
--- a/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/templates/storm.yaml.j2
+++ /dev/null
@@ -1,66 +0,0 @@
-{#
-# 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.
-#}
-{% macro replace_jaas_placeholder(name) -%}
-{% if name.find('_JAAS_PLACEHOLDER') > -1 -%}
- {%- if security_enabled -%}
- {{ name.replace('_JAAS_PLACEHOLDER', '-Djava.security.auth.login.config=' +conf_dir + '/storm_jaas.conf') }}
- {%- else -%}
- {{ name.replace('_JAAS_PLACEHOLDER', '') }}
- {%- endif -%}
-{%- else -%}
- {{name}}
-{%- endif -%}
-{%- endmacro %}
-
-{% for key, value in configurations|dictsort if not key.startswith('_') %}
-{{key}} : {{ escape_yaml_propetry(replace_jaas_placeholder(value)) }}
-{% endfor %}
-
-{% if stack_is_hdp22_or_further %}
-storm.thrift.transport : "{% if security_enabled %}{{configurations['_storm.thrift.secure.transport']}}{% else %}{{configurations['_storm.thrift.nonsecure.transport']}}{% endif %}"
-{% endif %}
-
-{% if security_enabled and stack_is_hdp22_or_further %}
-#
-# Kerberos security section. For the reference please use: https://github.com/hortonworks/storm/blob/champlain/SECURITY.md for details
-#
-
-storm.principal.tolocal: "backtype.storm.security.auth.KerberosPrincipalToLocal"
-storm.zookeeper.superACL: "sasl:{{storm_bare_jaas_principal}}"
-java.security.auth.login.config: "{{conf_dir}}/storm_jaas.conf"
-nimbus.admins:
- - "{{storm_user}}"
-nimbus.supervisor.users:
- - "{{storm_user}}"
-nimbus.authorizer: "backtype.storm.security.auth.authorizer.SimpleACLAuthorizer"
-drpc.authorizer: "backtype.storm.security.auth.authorizer.DRPCSimpleACLAuthorizer"
-
-ui.filter: "org.apache.hadoop.security.authentication.server.AuthenticationFilter"
-ui.filter.params:
- "type": "kerberos"
- "kerberos.principal": "{{storm_ui_jaas_principal}}"
- "kerberos.keytab": "{{storm_ui_keytab_path}}"
- "kerberos.name.rules": "DEFAULT"
-supervisor.enable: true
-{% endif %}
-
-{% if has_metric_collector %}
-topology.metrics.consumer.register:
- - class: "org.apache.hadoop.metrics2.sink.storm.StormTimelineMetricsSink"
- parallelism.hint: 1
-{% endif %}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/templates/storm_jaas.conf.j2
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/templates/storm_jaas.conf.j2 b/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/templates/storm_jaas.conf.j2
deleted file mode 100644
index 75cf178..0000000
--- a/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/templates/storm_jaas.conf.j2
+++ /dev/null
@@ -1,45 +0,0 @@
-{#
-# 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.
-#}
-{% if stack_is_hdp22_or_further %}
-StormServer {
- com.sun.security.auth.module.Krb5LoginModule required
- useKeyTab=true
- keyTab="{{nimbus_keytab_path}}"
- storeKey=true
- useTicketCache=false
- principal="{{nimbus_jaas_principal}}";
-};
-StormClient {
- com.sun.security.auth.module.Krb5LoginModule required
- useKeyTab=true
- keyTab="{{storm_keytab_path}}"
- storeKey=true
- useTicketCache=false
- serviceName="{{nimbus_bare_jaas_principal}}"
- principal="{{storm_jaas_principal}}";
-};
-{% endif %}
-Client {
- com.sun.security.auth.module.Krb5LoginModule required
- useKeyTab=true
- keyTab="{{storm_keytab_path}}"
- storeKey=true
- useTicketCache=false
- serviceName="zookeeper"
- principal="{{storm_jaas_principal}}";
-};
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/templates/worker-launcher.cfg.j2
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/templates/worker-launcher.cfg.j2 b/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/templates/worker-launcher.cfg.j2
deleted file mode 100644
index 2228601..0000000
--- a/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/package/templates/worker-launcher.cfg.j2
+++ /dev/null
@@ -1,19 +0,0 @@
-{#
-# 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.
-#}
-storm.worker-launcher.group={{user_group}}
-min.user.id={{min_user_ruid}}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/stacks/HDP/2.1/services/TEZ/configuration/tez-env.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.1/services/TEZ/configuration/tez-env.xml b/ambari-server/src/main/resources/stacks/HDP/2.1/services/TEZ/configuration/tez-env.xml
deleted file mode 100644
index a1eac56..0000000
--- a/ambari-server/src/main/resources/stacks/HDP/2.1/services/TEZ/configuration/tez-env.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0"?>
-<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
-<!--
-/**
- * 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.
- */
--->
-
-<configuration>
- <property>
- <name>tez_user</name>
- <value>tez</value>
- <property-type>USER</property-type>
- <description></description>
- </property>
-
- <!-- tez-env.sh -->
- <property>
- <name>content</name>
- <description>This is the jinja template for tez-env.sh file</description>
- <value>
-# Tez specific configuration
-export TEZ_CONF_DIR={{config_dir}}
-
-# Set HADOOP_HOME to point to a specific hadoop install directory
-export HADOOP_HOME=${HADOOP_HOME:-{{hadoop_home}}}
-
-# The java implementation to use.
-export JAVA_HOME={{java64_home}}
- </value>
- </property>
-</configuration>
[6/6] ambari git commit: AMBARI-8779: Common Services: Refactor
HDP-2.1 FALCON, STORM, TEZ services (Jayush Luniya)
Posted by jl...@apache.org.
AMBARI-8779: Common Services: Refactor HDP-2.1 FALCON, STORM, TEZ services (Jayush Luniya)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/dc534389
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/dc534389
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/dc534389
Branch: refs/heads/trunk
Commit: dc534389a7fdf54cec2be3ad939ff59c1e33d636
Parents: ef7fe6b
Author: Jayush Luniya <jl...@hortonworks.com>
Authored: Thu Dec 18 21:31:43 2014 -0800
Committer: Jayush Luniya <jl...@hortonworks.com>
Committed: Thu Dec 18 21:31:43 2014 -0800
----------------------------------------------------------------------
.../FALCON/0.5.0.2.1/alerts.json | 58 +
.../0.5.0.2.1/configuration/falcon-env.xml | 110 ++
.../configuration/falcon-runtime.properties.xml | 47 +
.../configuration/falcon-startup.properties.xml | 207 ++++
.../0.5.0.2.1/configuration/oozie-site.xml | 176 +++
.../FALCON/0.5.0.2.1/metainfo.xml | 117 ++
.../FALCON/0.5.0.2.1/package/scripts/falcon.py | 124 ++
.../0.5.0.2.1/package/scripts/falcon_client.py | 38 +
.../0.5.0.2.1/package/scripts/falcon_server.py | 61 +
.../FALCON/0.5.0.2.1/package/scripts/params.py | 90 ++
.../0.5.0.2.1/package/scripts/service_check.py | 40 +
.../0.5.0.2.1/package/scripts/status_params.py | 24 +
.../package/templates/client.properties.j2 | 42 +
.../package/templates/runtime.properties.j2 | 50 +
.../common-services/STORM/0.9.1.2.1/alerts.json | 189 +++
.../STORM/0.9.1.2.1/configuration/storm-env.xml | 56 +
.../0.9.1.2.1/configuration/storm-site.xml | 580 ++++++++++
.../STORM/0.9.1.2.1/metainfo.xml | 126 ++
.../STORM/0.9.1.2.1/metrics.json | 1077 ++++++++++++++++++
.../STORM/0.9.1.2.1/package/files/wordCount.jar | Bin 0 -> 690588 bytes
.../0.9.1.2.1/package/scripts/drpc_server.py | 58 +
.../STORM/0.9.1.2.1/package/scripts/nimbus.py | 57 +
.../0.9.1.2.1/package/scripts/nimbus_prod.py | 55 +
.../STORM/0.9.1.2.1/package/scripts/params.py | 90 ++
.../STORM/0.9.1.2.1/package/scripts/rest_api.py | 58 +
.../STORM/0.9.1.2.1/package/scripts/service.py | 84 ++
.../0.9.1.2.1/package/scripts/service_check.py | 49 +
.../0.9.1.2.1/package/scripts/status_params.py | 36 +
.../STORM/0.9.1.2.1/package/scripts/storm.py | 98 ++
.../0.9.1.2.1/package/scripts/supervisor.py | 61 +
.../package/scripts/supervisor_prod.py | 57 +
.../package/scripts/supervisord_service.py | 32 +
.../0.9.1.2.1/package/scripts/ui_server.py | 58 +
.../0.9.1.2.1/package/scripts/yaml_utils.py | 49 +
.../package/templates/client_jaas.conf.j2 | 24 +
.../0.9.1.2.1/package/templates/config.yaml.j2 | 65 ++
.../templates/storm-metrics2.properties.j2 | 21 +
.../0.9.1.2.1/package/templates/storm.yaml.j2 | 66 ++
.../package/templates/storm_jaas.conf.j2 | 45 +
.../package/templates/worker-launcher.cfg.j2 | 19 +
.../TEZ/0.4.0.2.1/configuration/tez-env.xml | 46 +
.../TEZ/0.4.0.2.1/configuration/tez-site.xml | 215 ++++
.../common-services/TEZ/0.4.0.2.1/metainfo.xml | 73 ++
.../TEZ/0.4.0.2.1/package/scripts/params.py | 67 ++
.../TEZ/0.4.0.2.1/package/scripts/tez.py | 61 +
.../TEZ/0.4.0.2.1/package/scripts/tez_client.py | 49 +
.../stacks/HDP/2.1/services/FALCON/alerts.json | 58 -
.../FALCON/configuration/falcon-env.xml | 110 --
.../configuration/falcon-runtime.properties.xml | 47 -
.../configuration/falcon-startup.properties.xml | 207 ----
.../FALCON/configuration/oozie-site.xml | 176 ---
.../stacks/HDP/2.1/services/FALCON/metainfo.xml | 93 +-
.../services/FALCON/package/scripts/falcon.py | 124 --
.../FALCON/package/scripts/falcon_client.py | 38 -
.../FALCON/package/scripts/falcon_server.py | 61 -
.../services/FALCON/package/scripts/params.py | 90 --
.../FALCON/package/scripts/service_check.py | 40 -
.../FALCON/package/scripts/status_params.py | 24 -
.../package/templates/client.properties.j2 | 42 -
.../package/templates/runtime.properties.j2 | 50 -
.../stacks/HDP/2.1/services/STORM/alerts.json | 189 ---
.../services/STORM/configuration/storm-env.xml | 56 -
.../services/STORM/configuration/storm-site.xml | 580 ----------
.../stacks/HDP/2.1/services/STORM/metainfo.xml | 101 +-
.../stacks/HDP/2.1/services/STORM/metrics.json | 1077 ------------------
.../services/STORM/package/files/wordCount.jar | Bin 690588 -> 0 bytes
.../STORM/package/scripts/drpc_server.py | 58 -
.../services/STORM/package/scripts/nimbus.py | 57 -
.../STORM/package/scripts/nimbus_prod.py | 55 -
.../services/STORM/package/scripts/params.py | 90 --
.../services/STORM/package/scripts/rest_api.py | 58 -
.../services/STORM/package/scripts/service.py | 84 --
.../STORM/package/scripts/service_check.py | 49 -
.../STORM/package/scripts/status_params.py | 36 -
.../2.1/services/STORM/package/scripts/storm.py | 98 --
.../STORM/package/scripts/supervisor.py | 61 -
.../STORM/package/scripts/supervisor_prod.py | 57 -
.../package/scripts/supervisord_service.py | 32 -
.../services/STORM/package/scripts/ui_server.py | 58 -
.../STORM/package/scripts/yaml_utils.py | 49 -
.../STORM/package/templates/client_jaas.conf.j2 | 24 -
.../STORM/package/templates/config.yaml.j2 | 65 --
.../templates/storm-metrics2.properties.j2 | 21 -
.../STORM/package/templates/storm.yaml.j2 | 66 --
.../STORM/package/templates/storm_jaas.conf.j2 | 45 -
.../package/templates/worker-launcher.cfg.j2 | 19 -
.../2.1/services/TEZ/configuration/tez-env.xml | 46 -
.../2.1/services/TEZ/configuration/tez-site.xml | 215 ----
.../stacks/HDP/2.1/services/TEZ/metainfo.xml | 49 +-
.../2.1/services/TEZ/package/scripts/params.py | 67 --
.../HDP/2.1/services/TEZ/package/scripts/tez.py | 61 -
.../services/TEZ/package/scripts/tez_client.py | 49 -
.../stacks/2.1/FALCON/test_falcon_client.py | 9 +-
.../stacks/2.1/FALCON/test_falcon_server.py | 20 +-
.../stacks/2.1/FALCON/test_service_check.py | 14 +-
.../stacks/2.1/STORM/test_service_check.py | 10 +-
.../python/stacks/2.1/STORM/test_storm_base.py | 3 +
.../stacks/2.1/STORM/test_storm_drpc_server.py | 36 +-
.../2.1/STORM/test_storm_jaas_configuration.py | 24 +-
.../stacks/2.1/STORM/test_storm_nimbus.py | 36 +-
.../stacks/2.1/STORM/test_storm_nimbus_prod.py | 36 +-
.../2.1/STORM/test_storm_rest_api_service.py | 36 +-
.../stacks/2.1/STORM/test_storm_supervisor.py | 36 +-
.../2.1/STORM/test_storm_supervisor_prod.py | 36 +-
.../stacks/2.1/STORM/test_storm_ui_server.py | 36 +-
.../python/stacks/2.1/TEZ/test_tez_client.py | 9 +-
106 files changed, 5040 insertions(+), 4838 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/alerts.json
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/alerts.json b/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/alerts.json
new file mode 100644
index 0000000..c34093f
--- /dev/null
+++ b/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/alerts.json
@@ -0,0 +1,58 @@
+{
+ "FALCON": {
+ "service": [],
+ "FALCON_SERVER": [
+ {
+ "name": "falcon_server_process",
+ "label": "Falcon Server Process",
+ "description": "This host-level alert is triggered if the individual Falcon server process cannot be established to be up and listening on the network.",
+ "interval": 1,
+ "scope": "ANY",
+ "source": {
+ "type": "PORT",
+ "uri": "{{falcon-env/falcon_port}}",
+ "default_port": 15000,
+ "reporting": {
+ "ok": {
+ "text": "TCP OK - {0:.3f}s response on port {1}"
+ },
+ "warning": {
+ "text": "TCP OK - {0:.3f}s response on port {1}",
+ "value": 1.5
+ },
+ "critical": {
+ "text": "Connection failed: {0} to {1}:{2}",
+ "value": 5.0
+ }
+ }
+ }
+ },
+ {
+ "name": "falcon_server_webui",
+ "label": "Falcon Server Web UI",
+ "description": "This host-level alert is triggered if the Falcon Server Web UI is unreachable.",
+ "interval": 1,
+ "scope": "ANY",
+ "enabled": true,
+ "source": {
+ "type": "WEB",
+ "uri": {
+ "http": "{{falcon-env/falcon_port}}",
+ "default_port": 15000
+ },
+ "reporting": {
+ "ok": {
+ "text": "HTTP {0} response in {2:.4f} seconds"
+ },
+ "warning":{
+ "text": "HTTP {0} response in {2:.4f} seconds"
+ },
+ "critical": {
+ "text": "Connection failed to {1}"
+ }
+ }
+ }
+ }
+ ]
+ }
+}
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/configuration/falcon-env.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/configuration/falcon-env.xml b/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/configuration/falcon-env.xml
new file mode 100644
index 0000000..0eaad86
--- /dev/null
+++ b/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/configuration/falcon-env.xml
@@ -0,0 +1,110 @@
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+<!--
+/**
+ * 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.
+ */
+-->
+<configuration>
+ <property>
+ <name>falcon_user</name>
+ <value>falcon</value>
+ <property-type>USER</property-type>
+ <description>Falcon user.</description>
+ </property>
+ <property>
+ <name>falcon_port</name>
+ <value>15000</value>
+ <description>Port the Falcon Server listens on.</description>
+ </property>
+ <property>
+ <name>falcon_log_dir</name>
+ <value>/var/log/falcon</value>
+ <description>Falcon log directory.</description>
+ </property>
+ <property>
+ <name>falcon_pid_dir</name>
+ <value>/var/run/falcon</value>
+ <description>Falcon pid-file directory.</description>
+ </property>
+ <property>
+ <name>falcon_local_dir</name>
+ <value>/hadoop/falcon</value>
+ <description>Directory where Falcon data, such as activemq data, is stored.</description>
+ </property>
+ <!--embeddedmq properties-->
+ <property>
+ <name>falcon.embeddedmq.data</name>
+ <value>/hadoop/falcon/embeddedmq/data</value>
+ <description>Directory in which embeddedmq data is stored.</description>
+ </property>
+ <property>
+ <name>falcon.embeddedmq</name>
+ <value>true</value>
+ <description>Whether embeddedmq is enabled or not.</description>
+ </property>
+ <property>
+ <name>falcon.emeddedmq.port</name>
+ <value>61616</value>
+ <description>Port that embeddedmq will listen on.</description>
+ </property>
+
+ <!-- falcon-env.sh -->
+ <property>
+ <name>content</name>
+ <description>This is the jinja template for falcon-env.sh file</description>
+ <value>
+# The java implementation to use. If JAVA_HOME is not found we expect java and jar to be in path
+export JAVA_HOME={{java_home}}
+
+# any additional java opts you want to set. This will apply to both client and server operations
+#export FALCON_OPTS=
+
+# any additional java opts that you want to set for client only
+#export FALCON_CLIENT_OPTS=
+
+# java heap size we want to set for the client. Default is 1024MB
+#export FALCON_CLIENT_HEAP=
+
+# any additional opts you want to set for prisim service.
+#export FALCON_PRISM_OPTS=
+
+# java heap size we want to set for the prisim service. Default is 1024MB
+#export FALCON_PRISM_HEAP=
+
+# any additional opts you want to set for falcon service.
+export FALCON_SERVER_OPTS="-Dfalcon.embeddedmq={{falcon_embeddedmq_enabled}} -Dfalcon.emeddedmq.port={{falcon_emeddedmq_port}}"
+
+# java heap size we want to set for the falcon server. Default is 1024MB
+#export FALCON_SERVER_HEAP=
+
+# What is is considered as falcon home dir. Default is the base location of the installed software
+#export FALCON_HOME_DIR=
+
+# Where log files are stored. Defatult is logs directory under the base install location
+export FALCON_LOG_DIR={{falcon_log_dir}}
+
+# Where pid files are stored. Defatult is logs directory under the base install location
+export FALCON_PID_DIR={{falcon_pid_dir}}
+
+# where the falcon active mq data is stored. Defatult is logs/data directory under the base install location
+export FALCON_DATA_DIR={{falcon_embeddedmq_data}}
+
+# Where do you want to expand the war file. By Default it is in /server/webapp dir under the base install dir.
+#export FALCON_EXPANDED_WEBAPP_DIR=
+ </value>
+ </property>
+</configuration>
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/configuration/falcon-runtime.properties.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/configuration/falcon-runtime.properties.xml b/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/configuration/falcon-runtime.properties.xml
new file mode 100644
index 0000000..94c8755
--- /dev/null
+++ b/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/configuration/falcon-runtime.properties.xml
@@ -0,0 +1,47 @@
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+<!--
+/**
+ * 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.
+ */
+-->
+<configuration supports_final="false">
+ <property>
+ <name>*.domain</name>
+ <value>${falcon.app.type}</value>
+ <description></description>
+ </property>
+ <property>
+ <name>*.log.cleanup.frequency.minutes.retention</name>
+ <value>hours(6)</value>
+ <description></description>
+ </property>
+ <property>
+ <name>*.log.cleanup.frequency.hours.retention</name>
+ <value>minutes(1)</value>
+ <description></description>
+ </property>
+ <property>
+ <name>*.log.cleanup.frequency.days.retention</name>
+ <value>days(7)</value>
+ <description></description>
+ </property>
+ <property>
+ <name>*.log.cleanup.frequency.months.retention</name>
+ <value>months(3)</value>
+ <description></description>
+ </property>
+</configuration>
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/configuration/falcon-startup.properties.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/configuration/falcon-startup.properties.xml b/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/configuration/falcon-startup.properties.xml
new file mode 100644
index 0000000..7459429
--- /dev/null
+++ b/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/configuration/falcon-startup.properties.xml
@@ -0,0 +1,207 @@
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+<!--
+/**
+ * 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.
+ */
+-->
+<configuration supports_final="false">
+ <!--advanced properties-->
+ <property>
+ <name>*.workflow.engine.impl</name>
+ <value>org.apache.falcon.workflow.engine.OozieWorkflowEngine</value>
+ <description></description>
+ </property>
+ <property>
+ <name>*.oozie.process.workflow.builder</name>
+ <value>org.apache.falcon.workflow.OozieProcessWorkflowBuilder</value>
+ <description></description>
+ </property>
+ <property>
+ <name>*.oozie.feed.workflow.builder</name>
+ <value>org.apache.falcon.workflow.OozieFeedWorkflowBuilder</value>
+ <description></description>
+ </property>
+ <property>
+ <name>*.SchedulableEntityManager.impl</name>
+ <value>org.apache.falcon.resource.SchedulableEntityManager</value>
+ <description></description>
+ </property>
+ <property>
+ <name>*.ConfigSyncService.impl</name>
+ <value>org.apache.falcon.resource.ConfigSyncService</value>
+ <description></description>
+ </property>
+ <property>
+ <name>*.ProcessInstanceManager.impl</name>
+ <value>org.apache.falcon.resource.InstanceManager</value>
+ <description></description>
+ </property>
+ <property>
+ <name>*.catalog.service.impl</name>
+ <value>org.apache.falcon.catalog.HiveCatalogService</value>
+ <description></description>
+ </property>
+ <property>
+ <name>*.application.services</name>
+ <value>org.apache.falcon.security.AuthenticationInitializationService,\
+ org.apache.falcon.service.ProcessSubscriberService,\
+ org.apache.falcon.entity.store.ConfigurationStore,\
+ org.apache.falcon.rerun.service.RetryService,\
+ org.apache.falcon.rerun.service.LateRunService,\
+ org.apache.falcon.service.LogCleanupService
+ </value>
+ <description></description>
+ </property>
+ <property>
+ <name>*.configstore.listeners</name>
+ <value>org.apache.falcon.entity.v0.EntityGraph,\
+ org.apache.falcon.entity.ColoClusterRelation,\
+ org.apache.falcon.group.FeedGroupMap,\
+ org.apache.falcon.service.SharedLibraryHostingService
+ </value>
+ <description></description>
+ </property>
+ <property>
+ <name>*.broker.impl.class</name>
+ <value>org.apache.activemq.ActiveMQConnectionFactory</value>
+ <description></description>
+ </property>
+ <property>
+ <name>*.shared.libs</name>
+ <value>activemq-core,ant,geronimo-j2ee-management,hadoop-distcp,jms,json-simple,oozie-client,spring-jms</value>
+ <description></description>
+ </property>
+ <!--common properties-->
+ <property>
+ <name>*.domain</name>
+ <value>${falcon.app.type}</value>
+ <description></description>
+ </property>
+ <property>
+ <name>*.config.store.uri</name>
+ <value>file:///hadoop/falcon/store</value>
+ <description>Location to store user entity configurations</description>
+ </property>
+ <property>
+ <name>*.system.lib.location</name>
+ <value>${falcon.home}/server/webapp/${falcon.app.type}/WEB-INF/lib</value>
+ <description>Location of libraries that is shipped to Hadoop</description>
+ </property>
+ <property>
+ <name>*.retry.recorder.path</name>
+ <value>${falcon.log.dir}/retry</value>
+ <description></description>
+ </property>
+ <property>
+ <name>*.falcon.cleanup.service.frequency</name>
+ <value>days(1)</value>
+ <description></description>
+ </property>
+ <property>
+ <name>*.broker.url</name>
+ <value>tcp://localhost:61616</value>
+ <description>Default Active MQ url</description>
+ </property>
+ <property>
+ <name>*.broker.ttlInMins</name>
+ <value>4320</value>
+ <description></description>
+ </property>
+ <property>
+ <name>*.entity.topic</name>
+ <value>FALCON.ENTITY.TOPIC</value>
+ <description></description>
+ </property>
+ <property>
+ <name>*.max.retry.failure.count</name>
+ <value>1</value>
+ <description></description>
+ </property>
+ <property>
+ <name>*.internal.queue.size</name>
+ <value>1000</value>
+ <description></description>
+ </property>
+ <!--properties without default values-->
+ <property>
+ <name>*.falcon.http.authentication.cookie.domain</name>
+ <value>EXAMPLE.COM</value>
+ <description></description>
+ </property>
+ <property>
+ <name>*.falcon.http.authentication.blacklisted.users</name>
+ <value></value>
+ <description>Comma separated list of black listed users</description>
+ </property>
+ <!--authentication properties-->
+ <property>
+ <name>*.falcon.authentication.type</name>
+ <value>simple</value>
+ <description></description>
+ </property>
+ <property>
+ <name>*.falcon.http.authentication.type</name>
+ <value>simple</value>
+ <description></description>
+ </property>
+ <property>
+ <name>*.falcon.http.authentication.token.validity</name>
+ <value>36000</value>
+ <description></description>
+ </property>
+ <property>
+ <name>*.falcon.http.authentication.signature.secret</name>
+ <value>falcon</value>
+ <description></description>
+ </property>
+ <property>
+ <name>*.falcon.http.authentication.simple.anonymous.allowed</name>
+ <value>true</value>
+ <description>Indicates if anonymous requests are allowed when using 'simple' authentication</description>
+ </property>
+ <property>
+ <name>*.falcon.http.authentication.kerberos.name.rules</name>
+ <value>DEFAULT</value>
+ <description>The kerberos names rules is to resolve kerberos principal names, refer to Hadoop's KerberosName for more details.</description>
+ </property>
+ <!--kerberos params, must be set during security enabling-->
+ <property>
+ <name>*.falcon.service.authentication.kerberos.principal</name>
+ <value>falcon/_HOST@EXAMPLE.COM</value>
+ <description></description>
+ </property>
+ <property>
+ <name>*.falcon.service.authentication.kerberos.keytab</name>
+ <value>/etc/security/keytabs/falcon.service.keytab</value>
+ <description></description>
+ </property>
+ <property>
+ <name>*.dfs.namenode.kerberos.principal</name>
+ <value>nn/_HOST@EXAMPLE.COM</value>
+ <description>name node principal to talk to config store</description>
+ </property>
+ <property>
+ <name>*.falcon.http.authentication.kerberos.principal</name>
+ <value>HTTP/_HOST@EXAMPLE.COM</value>
+ <description>Indicates the Kerberos principal to be used for HTTP endpoint</description>
+ </property>
+ <property>
+ <name>*.falcon.http.authentication.kerberos.keytab</name>
+ <value>/etc/security/keytabs/spnego.service.keytab</value>
+ <description>Location of the keytab file with the credentials for the HTTP principal</description>
+ </property>
+</configuration>
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/configuration/oozie-site.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/configuration/oozie-site.xml b/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/configuration/oozie-site.xml
new file mode 100644
index 0000000..c6962f3
--- /dev/null
+++ b/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/configuration/oozie-site.xml
@@ -0,0 +1,176 @@
+<?xml version="1.0"?>
+<!--
+ 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.
+-->
+
+<configuration supports_final="true">
+ <property>
+ <name>oozie.service.ELService.ext.functions.coord-job-submit-instances</name>
+ <value>
+ now=org.apache.oozie.extensions.OozieELExtensions#ph1_now_echo,
+ today=org.apache.oozie.extensions.OozieELExtensions#ph1_today_echo,
+ yesterday=org.apache.oozie.extensions.OozieELExtensions#ph1_yesterday_echo,
+ currentMonth=org.apache.oozie.extensions.OozieELExtensions#ph1_currentMonth_echo,
+ lastMonth=org.apache.oozie.extensions.OozieELExtensions#ph1_lastMonth_echo,
+ currentYear=org.apache.oozie.extensions.OozieELExtensions#ph1_currentYear_echo,
+ lastYear=org.apache.oozie.extensions.OozieELExtensions#ph1_lastYear_echo,
+ formatTime=org.apache.oozie.coord.CoordELFunctions#ph1_coord_formatTime_echo,
+ latest=org.apache.oozie.coord.CoordELFunctions#ph2_coord_latest_echo,
+ future=org.apache.oozie.coord.CoordELFunctions#ph2_coord_future_echo
+ </value>
+ <description>
+ EL functions declarations, separated by commas, format is [PREFIX:]NAME=CLASS#METHOD.
+ This property is a convenience property to add extensions to the built in executors without having to
+ include all the built in ones.
+ </description>
+ </property>
+
+ <property>
+ <name>oozie.service.ELService.ext.functions.coord-action-create-inst</name>
+ <value>
+ now=org.apache.oozie.extensions.OozieELExtensions#ph2_now_inst,
+ today=org.apache.oozie.extensions.OozieELExtensions#ph2_today_inst,
+ yesterday=org.apache.oozie.extensions.OozieELExtensions#ph2_yesterday_inst,
+ currentMonth=org.apache.oozie.extensions.OozieELExtensions#ph2_currentMonth_inst,
+ lastMonth=org.apache.oozie.extensions.OozieELExtensions#ph2_lastMonth_inst,
+ currentYear=org.apache.oozie.extensions.OozieELExtensions#ph2_currentYear_inst,
+ lastYear=org.apache.oozie.extensions.OozieELExtensions#ph2_lastYear_inst,
+ latest=org.apache.oozie.coord.CoordELFunctions#ph2_coord_latest_echo,
+ future=org.apache.oozie.coord.CoordELFunctions#ph2_coord_future_echo,
+ formatTime=org.apache.oozie.coord.CoordELFunctions#ph2_coord_formatTime,
+ user=org.apache.oozie.coord.CoordELFunctions#coord_user
+ </value>
+ <description>
+ EL functions declarations, separated by commas, format is [PREFIX:]NAME=CLASS#METHOD.
+ This property is a convenience property to add extensions to the built in executors without having to
+ include all the built in ones.
+ </description>
+ </property>
+
+ <property>
+ <name>oozie.service.ELService.ext.functions.coord-action-create</name>
+ <value>
+ now=org.apache.oozie.extensions.OozieELExtensions#ph2_now,
+ today=org.apache.oozie.extensions.OozieELExtensions#ph2_today,
+ yesterday=org.apache.oozie.extensions.OozieELExtensions#ph2_yesterday,
+ currentMonth=org.apache.oozie.extensions.OozieELExtensions#ph2_currentMonth,
+ lastMonth=org.apache.oozie.extensions.OozieELExtensions#ph2_lastMonth,
+ currentYear=org.apache.oozie.extensions.OozieELExtensions#ph2_currentYear,
+ lastYear=org.apache.oozie.extensions.OozieELExtensions#ph2_lastYear,
+ latest=org.apache.oozie.coord.CoordELFunctions#ph2_coord_latest_echo,
+ future=org.apache.oozie.coord.CoordELFunctions#ph2_coord_future_echo,
+ formatTime=org.apache.oozie.coord.CoordELFunctions#ph2_coord_formatTime,
+ user=org.apache.oozie.coord.CoordELFunctions#coord_user
+ </value>
+ <description>
+ EL functions declarations, separated by commas, format is [PREFIX:]NAME=CLASS#METHOD.
+ This property is a convenience property to add extensions to the built in executors without having to
+ include all the built in ones.
+ </description>
+ </property>
+
+ <property>
+ <name>oozie.service.ELService.ext.functions.coord-job-submit-data</name>
+ <value>
+ now=org.apache.oozie.extensions.OozieELExtensions#ph1_now_echo,
+ today=org.apache.oozie.extensions.OozieELExtensions#ph1_today_echo,
+ yesterday=org.apache.oozie.extensions.OozieELExtensions#ph1_yesterday_echo,
+ currentMonth=org.apache.oozie.extensions.OozieELExtensions#ph1_currentMonth_echo,
+ lastMonth=org.apache.oozie.extensions.OozieELExtensions#ph1_lastMonth_echo,
+ currentYear=org.apache.oozie.extensions.OozieELExtensions#ph1_currentYear_echo,
+ lastYear=org.apache.oozie.extensions.OozieELExtensions#ph1_lastYear_echo,
+ dataIn=org.apache.oozie.extensions.OozieELExtensions#ph1_dataIn_echo,
+ instanceTime=org.apache.oozie.coord.CoordELFunctions#ph1_coord_nominalTime_echo_wrap,
+ formatTime=org.apache.oozie.coord.CoordELFunctions#ph1_coord_formatTime_echo,
+ dateOffset=org.apache.oozie.coord.CoordELFunctions#ph1_coord_dateOffset_echo,
+ user=org.apache.oozie.coord.CoordELFunctions#coord_user
+ </value>
+ <description>
+ EL constant declarations, separated by commas, format is [PREFIX:]NAME=CLASS#CONSTANT.
+ This property is a convenience property to add extensions to the built in executors without having to
+ include all the built in ones.
+ </description>
+ </property>
+
+ <property>
+ <name>oozie.service.ELService.ext.functions.coord-action-start</name>
+ <value>
+ now=org.apache.oozie.extensions.OozieELExtensions#ph2_now,
+ today=org.apache.oozie.extensions.OozieELExtensions#ph2_today,
+ yesterday=org.apache.oozie.extensions.OozieELExtensions#ph2_yesterday,
+ currentMonth=org.apache.oozie.extensions.OozieELExtensions#ph2_currentMonth,
+ lastMonth=org.apache.oozie.extensions.OozieELExtensions#ph2_lastMonth,
+ currentYear=org.apache.oozie.extensions.OozieELExtensions#ph2_currentYear,
+ lastYear=org.apache.oozie.extensions.OozieELExtensions#ph2_lastYear,
+ latest=org.apache.oozie.coord.CoordELFunctions#ph3_coord_latest,
+ future=org.apache.oozie.coord.CoordELFunctions#ph3_coord_future,
+ dataIn=org.apache.oozie.extensions.OozieELExtensions#ph3_dataIn,
+ instanceTime=org.apache.oozie.coord.CoordELFunctions#ph3_coord_nominalTime,
+ dateOffset=org.apache.oozie.coord.CoordELFunctions#ph3_coord_dateOffset,
+ formatTime=org.apache.oozie.coord.CoordELFunctions#ph3_coord_formatTime,
+ user=org.apache.oozie.coord.CoordELFunctions#coord_user
+ </value>
+ <description>
+ EL functions declarations, separated by commas, format is [PREFIX:]NAME=CLASS#METHOD.
+ This property is a convenience property to add extensions to the built in executors without having to
+ include all the built in ones.
+ </description>
+ </property>
+
+ <property>
+ <name>oozie.service.ELService.ext.functions.coord-sla-submit</name>
+ <value>
+ instanceTime=org.apache.oozie.coord.CoordELFunctions#ph1_coord_nominalTime_echo_fixed,
+ user=org.apache.oozie.coord.CoordELFunctions#coord_user
+ </value>
+ <description>
+ EL functions declarations, separated by commas, format is [PREFIX:]NAME=CLASS#METHOD.
+ </description>
+ </property>
+
+ <property>
+ <name>oozie.service.ELService.ext.functions.coord-sla-create</name>
+ <value>
+ instanceTime=org.apache.oozie.coord.CoordELFunctions#ph2_coord_nominalTime,
+ user=org.apache.oozie.coord.CoordELFunctions#coord_user
+ </value>
+ <description>
+ EL functions declarations, separated by commas, format is [PREFIX:]NAME=CLASS#METHOD.
+ </description>
+ </property>
+
+ <property>
+ <name>oozie.service.HadoopAccessorService.supported.filesystems</name>
+ <value>*</value>
+ <description>
+ Enlist the different filesystems supported for federation. If wildcard "*" is specified, then ALL file schemes will be allowed.
+ </description>
+ </property>
+
+ <!--web ui should add following properties to oozie site accordingly to FALCON_USER-->
+ <!--<property>-->
+ <!--<name>oozie.service.ProxyUserService.proxyuser.#FALCON_USER#.hosts</name>-->
+ <!--<value>*</value>-->
+ <!--<description>Falcon proxyuser hosts</description>-->
+ <!--</property>-->
+
+ <!--<property>-->
+ <!--<name>oozie.service.ProxyUserService.proxyuser.#FALCON_USER#.groups</name>-->
+ <!--<value>*</value>-->
+ <!--<description>Falcon proxyuser groups</description>-->
+ <!--</property>-->
+</configuration>
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/metainfo.xml b/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/metainfo.xml
new file mode 100644
index 0000000..78336e6
--- /dev/null
+++ b/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/metainfo.xml
@@ -0,0 +1,117 @@
+<?xml version="1.0"?>
+<!--
+ 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.
+-->
+<metainfo>
+ <schemaVersion>2.0</schemaVersion>
+ <services>
+ <service>
+ <name>FALCON</name>
+ <displayName>Falcon</displayName>
+ <comment>Data management and processing platform</comment>
+ <version>0.5.0.2.1</version>
+ <components>
+ <component>
+ <name>FALCON_CLIENT</name>
+ <displayName>Falcon Client</displayName>
+ <category>CLIENT</category>
+ <cardinality>1+</cardinality>
+ <commandScript>
+ <script>scripts/falcon_client.py</script>
+ <scriptType>PYTHON</scriptType>
+ <timeout>600</timeout>
+ </commandScript>
+ <configFiles>
+ <configFile>
+ <type>env</type>
+ <fileName>falcon-env.sh</fileName>
+ <dictionaryName>falcon-env</dictionaryName>
+ </configFile>
+ <configFile>
+ <type>properties</type>
+ <fileName>runtime.properties</fileName>
+ <dictionaryName>falcon-runtime.properties</dictionaryName>
+ </configFile>
+ <configFile>
+ <type>properties</type>
+ <fileName>startup.properties</fileName>
+ <dictionaryName>falcon-startup.properties</dictionaryName>
+ </configFile>
+ </configFiles>
+ </component>
+ <component>
+ <name>FALCON_SERVER</name>
+ <displayName>Falcon Server</displayName>
+ <category>MASTER</category>
+ <cardinality>1</cardinality>
+ <dependencies>
+ <dependency>
+ <name>OOZIE/OOZIE_SERVER</name>
+ <scope>cluster</scope>
+ <auto-deploy>
+ <enabled>true</enabled>
+ </auto-deploy>
+ </dependency>
+ <dependency>
+ <name>OOZIE/OOZIE_CLIENT</name>
+ <scope>cluster</scope>
+ <auto-deploy>
+ <enabled>true</enabled>
+ </auto-deploy>
+ </dependency>
+ </dependencies>
+ <commandScript>
+ <script>scripts/falcon_server.py</script>
+ <scriptType>PYTHON</scriptType>
+ <timeout>600</timeout>
+ </commandScript>
+ </component>
+ </components>
+
+ <osSpecifics>
+ <osSpecific>
+ <osFamily>any</osFamily>
+ <packages>
+ <package>
+ <name>falcon</name>
+ </package>
+ </packages>
+ </osSpecific>
+ </osSpecifics>
+
+ <commandScript>
+ <script>scripts/service_check.py</script>
+ <scriptType>PYTHON</scriptType>
+ <timeout>300</timeout>
+ </commandScript>
+
+ <requiredServices>
+ <service>OOZIE</service>
+ </requiredServices>
+
+ <configuration-dependencies>
+ <config-type>falcon-env</config-type>
+ <config-type>falcon-startup.properties</config-type>
+ <config-type>falcon-runtime.properties</config-type>
+ </configuration-dependencies>
+
+ <excluded-config-types>
+ <config-type>oozie-site</config-type>
+ </excluded-config-types>
+
+ </service>
+ </services>
+</metainfo>
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/package/scripts/falcon.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/package/scripts/falcon.py b/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/package/scripts/falcon.py
new file mode 100644
index 0000000..a903e5c
--- /dev/null
+++ b/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/package/scripts/falcon.py
@@ -0,0 +1,124 @@
+"""
+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 resource_management import *
+import os.path
+
+def falcon(type, action = None):
+ import params
+ if action == 'config':
+ Directory(params.falcon_pid_dir,
+ owner=params.falcon_user
+ )
+ Directory(params.falcon_log_dir,
+ owner=params.falcon_user,
+ recursive=True
+ )
+ Directory(params.falcon_webapp_dir,
+ owner=params.falcon_user
+ )
+ Directory(params.falcon_home,
+ owner=params.falcon_user
+ )
+ Directory(params.falcon_conf_dir_prefix,
+ mode=0755
+ )
+ Directory(params.falcon_conf_dir,
+ owner=params.falcon_user,
+ recursive=True
+ )
+ File(params.falcon_conf_dir + '/falcon-env.sh',
+ content=InlineTemplate(params.falcon_env_sh_template),
+ owner=params.falcon_user
+ )
+ File(params.falcon_conf_dir + '/client.properties',
+ content=Template('client.properties.j2'),
+ mode=0644,
+ owner=params.falcon_user
+ )
+ PropertiesFile(params.falcon_conf_dir + '/runtime.properties',
+ properties=params.falcon_runtime_properties,
+ mode=0644,
+ owner=params.falcon_user
+ )
+ PropertiesFile(params.falcon_conf_dir + '/startup.properties',
+ properties=params.falcon_startup_properties,
+ mode=0644,
+ owner=params.falcon_user
+ )
+
+ if params.falcon_graph_storage_directory:
+ Directory(params.falcon_graph_storage_directory,
+ owner=params.falcon_user,
+ group=params.user_group,
+ mode=0775,
+ recursive=True,
+ recursive_permission=True
+ )
+
+ if params.falcon_graph_serialize_path:
+ Directory(params.falcon_graph_serialize_path,
+ owner=params.falcon_user,
+ group=params.user_group,
+ mode=0775,
+ recursive=True,
+ recursive_permission=True
+ )
+
+ if type == 'server':
+ if action == 'config':
+ if params.store_uri[0:4] == "hdfs":
+ params.HdfsDirectory(params.store_uri,
+ action="create_delayed",
+ owner=params.falcon_user,
+ mode=0755
+ )
+ params.HdfsDirectory(params.flacon_apps_dir,
+ action="create_delayed",
+ owner=params.falcon_user,
+ mode=0777#TODO change to proper mode
+ )
+ params.HdfsDirectory(None, action="create")
+ Directory(params.falcon_local_dir,
+ owner=params.falcon_user,
+ recursive=True,
+ recursive_permission=True
+ )
+ if params.falcon_embeddedmq_enabled == True:
+ Directory(os.path.abspath(os.path.join(params.falcon_embeddedmq_data, "..")),
+ owner=params.falcon_user
+ )
+ Directory(params.falcon_embeddedmq_data,
+ owner=params.falcon_user,
+ recursive=True
+ )
+
+ if action == 'start':
+ Execute(format('{falcon_home}/bin/falcon-start -port {falcon_port}'),
+ user=params.falcon_user,
+ path=params.hadoop_bin_dir
+ )
+ if action == 'stop':
+ Execute(format('{falcon_home}/bin/falcon-stop'),
+ user=params.falcon_user,
+ path=params.hadoop_bin_dir
+ )
+ File(params.server_pid_file,
+ action='delete'
+ )
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/package/scripts/falcon_client.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/package/scripts/falcon_client.py b/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/package/scripts/falcon_client.py
new file mode 100644
index 0000000..fd8c005
--- /dev/null
+++ b/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/package/scripts/falcon_client.py
@@ -0,0 +1,38 @@
+"""
+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 resource_management import *
+from falcon import falcon
+
+class FalconClient(Script):
+ def install(self, env):
+ self.install_packages(env)
+ self.configure(env)
+
+ def configure(self, env):
+ import params
+
+ env.set_params(params)
+ falcon('client', action='config')
+
+ def status(self, env):
+ raise ClientComponentHasNoStatus()
+
+if __name__ == "__main__":
+ FalconClient().execute()
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/package/scripts/falcon_server.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/package/scripts/falcon_server.py b/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/package/scripts/falcon_server.py
new file mode 100644
index 0000000..0460460
--- /dev/null
+++ b/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/package/scripts/falcon_server.py
@@ -0,0 +1,61 @@
+"""
+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 resource_management import *
+from falcon import falcon
+
+class FalconServer(Script):
+ def install(self, env):
+ import params
+
+ self.install_packages(env)
+ env.set_params(params)
+
+ def start(self, env):
+ import params
+
+ env.set_params(params)
+ self.configure(env)
+
+ falcon('server', action='start')
+
+ def stop(self, env):
+ import params
+
+ env.set_params(params)
+
+ falcon('server', action='stop')
+
+
+ def configure(self, env):
+ import params
+
+ env.set_params(params)
+
+ falcon('server', action='config')
+
+ def status(self, env):
+ import status_params
+
+ env.set_params(status_params)
+ check_process_status(status_params.server_pid_file)
+
+
+if __name__ == "__main__":
+ FalconServer().execute()
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/package/scripts/params.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/package/scripts/params.py b/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/package/scripts/params.py
new file mode 100644
index 0000000..19b647e
--- /dev/null
+++ b/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/package/scripts/params.py
@@ -0,0 +1,90 @@
+"""
+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 resource_management.libraries.functions.version import format_hdp_stack_version, compare_versions
+from resource_management import *
+
+from status_params import *
+
+config = Script.get_config()
+
+hdp_stack_version = str(config['hostLevelParams']['stack_version'])
+hdp_stack_version = format_hdp_stack_version(hdp_stack_version)
+
+#hadoop params
+if hdp_stack_version != "" and compare_versions(hdp_stack_version, '2.2') >= 0:
+ hadoop_bin_dir = "/usr/hdp/current/hadoop-client/bin"
+ falcon_webapp_dir = "/usr/hdp/current/falcon-client/webapp"
+ falcon_home = "/usr/hdp/current/falcon-client"
+else:
+ hadoop_bin_dir = "/usr/bin"
+ falcon_webapp_dir = '/var/lib/falcon/webapp'
+ falcon_home = '/usr/lib/falcon'
+
+hadoop_conf_dir = "/etc/hadoop/conf"
+falcon_conf_dir_prefix = "/etc/falcon"
+falcon_conf_dir = format("{falcon_conf_dir_prefix}/conf")
+oozie_user = config['configurations']['oozie-env']['oozie_user']
+falcon_user = config['configurations']['falcon-env']['falcon_user']
+smoke_user = config['configurations']['cluster-env']['smokeuser']
+
+user_group = config['configurations']['cluster-env']['user_group']
+proxyuser_group = config['configurations']['hadoop-env']['proxyuser_group']
+
+java_home = config['hostLevelParams']['java_home']
+falcon_local_dir = config['configurations']['falcon-env']['falcon_local_dir']
+falcon_log_dir = config['configurations']['falcon-env']['falcon_log_dir']
+
+# falcon-startup.properties
+store_uri = config['configurations']['falcon-startup.properties']['*.config.store.uri']
+# If these properties are present, the directories need to be created.
+falcon_graph_storage_directory = default("/configurations/falcon-startup.properties/*.falcon.graph.storage.directory", None) # explicitly set in HDP 2.2 and higher
+falcon_graph_serialize_path = default("/configurations/falcon-startup.properties/*.falcon.graph.serialize.path", None) # explicitly set in HDP 2.2 and higher
+
+falcon_embeddedmq_data = config['configurations']['falcon-env']['falcon.embeddedmq.data']
+falcon_embeddedmq_enabled = config['configurations']['falcon-env']['falcon.embeddedmq']
+falcon_emeddedmq_port = config['configurations']['falcon-env']['falcon.emeddedmq.port']
+
+falcon_host = config['clusterHostInfo']['falcon_server_hosts'][0]
+falcon_port = config['configurations']['falcon-env']['falcon_port']
+falcon_runtime_properties = config['configurations']['falcon-runtime.properties']
+falcon_startup_properties = config['configurations']['falcon-startup.properties']
+smokeuser_keytab = config['configurations']['cluster-env']['smokeuser_keytab']
+falcon_env_sh_template = config['configurations']['falcon-env']['content']
+
+flacon_apps_dir = '/apps/falcon'
+#for create_hdfs_directory
+security_enabled = config['configurations']['cluster-env']['security_enabled']
+hostname = config["hostname"]
+hdfs_user_keytab = config['configurations']['hadoop-env']['hdfs_user_keytab']
+hdfs_user = config['configurations']['hadoop-env']['hdfs_user']
+hdfs_principal_name = config['configurations']['hadoop-env']['hdfs_principal_name']
+kinit_path_local = functions.get_kinit_path(["/usr/bin", "/usr/kerberos/bin", "/usr/sbin"])
+import functools
+#create partial functions with common arguments for every HdfsDirectory call
+#to create hdfs directory we need to call params.HdfsDirectory in code
+HdfsDirectory = functools.partial(
+ HdfsDirectory,
+ conf_dir=hadoop_conf_dir,
+ hdfs_user=hdfs_user,
+ security_enabled = security_enabled,
+ keytab = hdfs_user_keytab,
+ kinit_path_local = kinit_path_local,
+ bin_dir = hadoop_bin_dir
+)
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/package/scripts/service_check.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/package/scripts/service_check.py b/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/package/scripts/service_check.py
new file mode 100644
index 0000000..bf3b1dd
--- /dev/null
+++ b/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/package/scripts/service_check.py
@@ -0,0 +1,40 @@
+"""
+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 resource_management import *
+
+
+class FalconServiceCheck(Script):
+
+ def service_check(self, env):
+ import params
+
+ env.set_params(params)
+ if params.security_enabled:
+ Execute(format("{kinit_path_local} -kt {smokeuser_keytab} {smoke_user}"),
+ user=params.smoke_user)
+ Execute(format("{falcon_home}/bin/falcon admin -version"),
+ user=params.smoke_user,
+ logoutput=True,
+ tries = 3,
+ try_sleep = 20
+ )
+
+if __name__ == "__main__":
+ FalconServiceCheck().execute()
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/package/scripts/status_params.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/package/scripts/status_params.py b/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/package/scripts/status_params.py
new file mode 100644
index 0000000..6ebb35f
--- /dev/null
+++ b/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/package/scripts/status_params.py
@@ -0,0 +1,24 @@
+"""
+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 resource_management import *
+
+config = Script.get_config()
+falcon_pid_dir = config['configurations']['falcon-env']['falcon_pid_dir']
+server_pid_file = format('{falcon_pid_dir}/falcon.pid')
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/package/templates/client.properties.j2
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/package/templates/client.properties.j2 b/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/package/templates/client.properties.j2
new file mode 100644
index 0000000..63749db
--- /dev/null
+++ b/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/package/templates/client.properties.j2
@@ -0,0 +1,42 @@
+{#
+# 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.
+#}
+
+#
+# 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.
+#
+
+#########################################################################
+########## This is used for falcon packaging only. ###################
+## Uses default port. Please change if configured for non-default port ##
+#########################################################################
+
+falcon.url=http://{{falcon_host}}:{{falcon_port}}/
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/package/templates/runtime.properties.j2
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/package/templates/runtime.properties.j2 b/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/package/templates/runtime.properties.j2
new file mode 100644
index 0000000..06f17de
--- /dev/null
+++ b/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/package/templates/runtime.properties.j2
@@ -0,0 +1,50 @@
+{#
+# 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.
+#}
+
+#
+# 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.
+#
+
+####################################################
+#### This is used for falcon packaging only. ####
+####################################################
+
+*.domain=${falcon.app.type}
+
+*.log.cleanup.frequency.minutes.retention=hours(6)
+*.log.cleanup.frequency.hours.retention=minutes(1)
+*.log.cleanup.frequency.days.retention=days(7)
+*.log.cleanup.frequency.months.retention=months(3)
+#### To configure falcon servers with prism ####
+#*.all.colos=<comma separated list of colos where falcon servers are installed>
+#*.falcon.<colo>.endpoint=<falcon server endpoint>
+
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/alerts.json
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/alerts.json b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/alerts.json
new file mode 100644
index 0000000..4800fcb
--- /dev/null
+++ b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/alerts.json
@@ -0,0 +1,189 @@
+{
+ "STORM": {
+ "service": [
+ {
+ "name": "storm_supervisor_process_percent",
+ "label": "Percent Supervisors Available",
+ "interval": 1,
+ "scope": "SERVICE",
+ "enabled": true,
+ "source": {
+ "type": "AGGREGATE",
+ "alert_name": "storm_supervisor_process",
+ "reporting": {
+ "ok": {
+ "text": "affected: [{1}], total: [{0}]"
+ },
+ "warning": {
+ "text": "affected: [{1}], total: [{0}]",
+ "value": 0.1
+ },
+ "critical": {
+ "text": "affected: [{1}], total: [{0}]",
+ "value": 0.3
+ }
+ }
+ }
+ }
+ ],
+ "STORM_UI_SERVER": [
+ {
+ "name": "storm_server_process",
+ "label": "Storm Server Process",
+ "interval": 1,
+ "scope": "ANY",
+ "enabled": true,
+ "source": {
+ "type": "PORT",
+ "uri": "{{storm-site/ui.port}}",
+ "default_port": 8744,
+ "reporting": {
+ "ok": {
+ "text": "TCP OK - {0:.3f}s response on port {1}"
+ },
+ "warning": {
+ "text": "TCP OK - {0:.3f}s response on port {1}",
+ "value": 1.5
+ },
+ "critical": {
+ "text": "Connection failed: {0} to {1}:{2}",
+ "value": 5.0
+ }
+ }
+ }
+ },
+ {
+ "name": "storm_webui",
+ "label": "Storm Web UI",
+ "interval": 1,
+ "scope": "ANY",
+ "enabled": true,
+ "source": {
+ "type": "WEB",
+ "uri": {
+ "http": "{{storm-site/ui.port}}"
+ },
+ "reporting": {
+ "ok": {
+ "text": "HTTP {0} response in {2:.4f} seconds"
+ },
+ "warning":{
+ "text": "HTTP {0} response in {2:.4f} seconds"
+ },
+ "critical": {
+ "text": "Connection failed to {1}"
+ }
+ }
+ }
+ }
+ ],
+ "NIMBUS": [
+ {
+ "name": "storm_nimbus_process",
+ "label": "Nimbus Process",
+ "interval": 1,
+ "scope": "ANY",
+ "enabled": true,
+ "source": {
+ "type": "PORT",
+ "uri": "{{storm-site/nimbus.thrift.port}}",
+ "default_port": 6627,
+ "reporting": {
+ "ok": {
+ "text": "TCP OK - {0:.3f}s response on port {1}"
+ },
+ "warning": {
+ "text": "TCP OK - {0:.3f}s response on port {1}",
+ "value": 1.5
+ },
+ "critical": {
+ "text": "Connection failed: {0} to {1}:{2}",
+ "value": 5.0
+ }
+ }
+ }
+ }
+ ],
+ "DRPC_SERVER": [
+ {
+ "name": "storm_drpc_server",
+ "label": "DRPC Server Process",
+ "interval": 1,
+ "scope": "ANY",
+ "enabled": true,
+ "source": {
+ "type": "PORT",
+ "uri": "{{storm-site/drpc.port}}",
+ "default_port": 3772,
+ "reporting": {
+ "ok": {
+ "text": "TCP OK - {0:.3f}s response on port {1}"
+ },
+ "warning": {
+ "text": "TCP OK - {0:.3f}s response on port {1}",
+ "value": 1.5
+ },
+ "critical": {
+ "text": "Connection failed: {0} to {1}:{2}",
+ "value": 5.0
+ }
+ }
+ }
+ }
+ ],
+ "STORM_REST_API": [
+ {
+ "name": "storm_rest_api",
+ "label": "Storm REST API",
+ "interval": 1,
+ "scope": "ANY",
+ "enabled": true,
+ "source": {
+ "type": "PORT",
+ "uri": "8745",
+ "default_port": 8745,
+ "reporting": {
+ "ok": {
+ "text": "TCP OK - {0:.3f}s response on port {1}"
+ },
+ "warning": {
+ "text": "TCP OK - {0:.3f}s response on port {1}",
+ "value": 1.5
+ },
+ "critical": {
+ "text": "Connection failed: {0} to {1}:{2}",
+ "value": 5.0
+ }
+ }
+ }
+ }
+ ],
+ "SUPERVISOR": [
+ {
+ "name": "storm_supervisor_process",
+ "label": "Supervisor Process",
+ "interval": 1,
+ "scope": "HOST",
+ "enabled": true,
+ "source": {
+ "type": "PORT",
+ "uri": "56431",
+ "default_port": 56431,
+ "reporting": {
+ "ok": {
+ "text": "TCP OK - {0:.3f}s response on port {1}"
+ },
+ "warning": {
+ "text": "TCP OK - {0:.3f}s response on port {1}",
+ "value": 1.5
+ },
+ "critical": {
+ "text": "Connection failed: {0} to {1}:{2}",
+ "value": 5.0
+ }
+ }
+ }
+ }
+ ]
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/configuration/storm-env.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/configuration/storm-env.xml b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/configuration/storm-env.xml
new file mode 100644
index 0000000..c663116
--- /dev/null
+++ b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/configuration/storm-env.xml
@@ -0,0 +1,56 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+<!--
+/**
+ * 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.
+ */
+-->
+
+<configuration>
+ <property>
+ <name>storm_user</name>
+ <value>storm</value>
+ <property-type>USER</property-type>
+ <description></description>
+ </property>
+ <property>
+ <name>storm_log_dir</name>
+ <value>/var/log/storm</value>
+ <description></description>
+ </property>
+ <property>
+ <name>storm_pid_dir</name>
+ <value>/var/run/storm</value>
+ <description></description>
+ </property>
+
+ <!-- storm-env.sh -->
+ <property>
+ <name>content</name>
+ <description>This is the jinja template for storm-env.sh file</description>
+ <value>
+#!/bin/bash
+
+# Set Storm specific environment variables here.
+
+# The java implementation to use.
+export JAVA_HOME={{java64_home}}
+
+# export STORM_CONF_DIR=""
+ </value>
+ </property>
+</configuration>
[3/6] ambari git commit: AMBARI-8779: Common Services: Refactor
HDP-2.1 FALCON, STORM, TEZ services (Jayush Luniya)
Posted by jl...@apache.org.
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/stacks/HDP/2.1/services/FALCON/package/scripts/falcon_server.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.1/services/FALCON/package/scripts/falcon_server.py b/ambari-server/src/main/resources/stacks/HDP/2.1/services/FALCON/package/scripts/falcon_server.py
deleted file mode 100644
index 0460460..0000000
--- a/ambari-server/src/main/resources/stacks/HDP/2.1/services/FALCON/package/scripts/falcon_server.py
+++ /dev/null
@@ -1,61 +0,0 @@
-"""
-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 resource_management import *
-from falcon import falcon
-
-class FalconServer(Script):
- def install(self, env):
- import params
-
- self.install_packages(env)
- env.set_params(params)
-
- def start(self, env):
- import params
-
- env.set_params(params)
- self.configure(env)
-
- falcon('server', action='start')
-
- def stop(self, env):
- import params
-
- env.set_params(params)
-
- falcon('server', action='stop')
-
-
- def configure(self, env):
- import params
-
- env.set_params(params)
-
- falcon('server', action='config')
-
- def status(self, env):
- import status_params
-
- env.set_params(status_params)
- check_process_status(status_params.server_pid_file)
-
-
-if __name__ == "__main__":
- FalconServer().execute()
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/stacks/HDP/2.1/services/FALCON/package/scripts/params.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.1/services/FALCON/package/scripts/params.py b/ambari-server/src/main/resources/stacks/HDP/2.1/services/FALCON/package/scripts/params.py
deleted file mode 100644
index 19b647e..0000000
--- a/ambari-server/src/main/resources/stacks/HDP/2.1/services/FALCON/package/scripts/params.py
+++ /dev/null
@@ -1,90 +0,0 @@
-"""
-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 resource_management.libraries.functions.version import format_hdp_stack_version, compare_versions
-from resource_management import *
-
-from status_params import *
-
-config = Script.get_config()
-
-hdp_stack_version = str(config['hostLevelParams']['stack_version'])
-hdp_stack_version = format_hdp_stack_version(hdp_stack_version)
-
-#hadoop params
-if hdp_stack_version != "" and compare_versions(hdp_stack_version, '2.2') >= 0:
- hadoop_bin_dir = "/usr/hdp/current/hadoop-client/bin"
- falcon_webapp_dir = "/usr/hdp/current/falcon-client/webapp"
- falcon_home = "/usr/hdp/current/falcon-client"
-else:
- hadoop_bin_dir = "/usr/bin"
- falcon_webapp_dir = '/var/lib/falcon/webapp'
- falcon_home = '/usr/lib/falcon'
-
-hadoop_conf_dir = "/etc/hadoop/conf"
-falcon_conf_dir_prefix = "/etc/falcon"
-falcon_conf_dir = format("{falcon_conf_dir_prefix}/conf")
-oozie_user = config['configurations']['oozie-env']['oozie_user']
-falcon_user = config['configurations']['falcon-env']['falcon_user']
-smoke_user = config['configurations']['cluster-env']['smokeuser']
-
-user_group = config['configurations']['cluster-env']['user_group']
-proxyuser_group = config['configurations']['hadoop-env']['proxyuser_group']
-
-java_home = config['hostLevelParams']['java_home']
-falcon_local_dir = config['configurations']['falcon-env']['falcon_local_dir']
-falcon_log_dir = config['configurations']['falcon-env']['falcon_log_dir']
-
-# falcon-startup.properties
-store_uri = config['configurations']['falcon-startup.properties']['*.config.store.uri']
-# If these properties are present, the directories need to be created.
-falcon_graph_storage_directory = default("/configurations/falcon-startup.properties/*.falcon.graph.storage.directory", None) # explicitly set in HDP 2.2 and higher
-falcon_graph_serialize_path = default("/configurations/falcon-startup.properties/*.falcon.graph.serialize.path", None) # explicitly set in HDP 2.2 and higher
-
-falcon_embeddedmq_data = config['configurations']['falcon-env']['falcon.embeddedmq.data']
-falcon_embeddedmq_enabled = config['configurations']['falcon-env']['falcon.embeddedmq']
-falcon_emeddedmq_port = config['configurations']['falcon-env']['falcon.emeddedmq.port']
-
-falcon_host = config['clusterHostInfo']['falcon_server_hosts'][0]
-falcon_port = config['configurations']['falcon-env']['falcon_port']
-falcon_runtime_properties = config['configurations']['falcon-runtime.properties']
-falcon_startup_properties = config['configurations']['falcon-startup.properties']
-smokeuser_keytab = config['configurations']['cluster-env']['smokeuser_keytab']
-falcon_env_sh_template = config['configurations']['falcon-env']['content']
-
-flacon_apps_dir = '/apps/falcon'
-#for create_hdfs_directory
-security_enabled = config['configurations']['cluster-env']['security_enabled']
-hostname = config["hostname"]
-hdfs_user_keytab = config['configurations']['hadoop-env']['hdfs_user_keytab']
-hdfs_user = config['configurations']['hadoop-env']['hdfs_user']
-hdfs_principal_name = config['configurations']['hadoop-env']['hdfs_principal_name']
-kinit_path_local = functions.get_kinit_path(["/usr/bin", "/usr/kerberos/bin", "/usr/sbin"])
-import functools
-#create partial functions with common arguments for every HdfsDirectory call
-#to create hdfs directory we need to call params.HdfsDirectory in code
-HdfsDirectory = functools.partial(
- HdfsDirectory,
- conf_dir=hadoop_conf_dir,
- hdfs_user=hdfs_user,
- security_enabled = security_enabled,
- keytab = hdfs_user_keytab,
- kinit_path_local = kinit_path_local,
- bin_dir = hadoop_bin_dir
-)
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/stacks/HDP/2.1/services/FALCON/package/scripts/service_check.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.1/services/FALCON/package/scripts/service_check.py b/ambari-server/src/main/resources/stacks/HDP/2.1/services/FALCON/package/scripts/service_check.py
deleted file mode 100644
index bf3b1dd..0000000
--- a/ambari-server/src/main/resources/stacks/HDP/2.1/services/FALCON/package/scripts/service_check.py
+++ /dev/null
@@ -1,40 +0,0 @@
-"""
-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 resource_management import *
-
-
-class FalconServiceCheck(Script):
-
- def service_check(self, env):
- import params
-
- env.set_params(params)
- if params.security_enabled:
- Execute(format("{kinit_path_local} -kt {smokeuser_keytab} {smoke_user}"),
- user=params.smoke_user)
- Execute(format("{falcon_home}/bin/falcon admin -version"),
- user=params.smoke_user,
- logoutput=True,
- tries = 3,
- try_sleep = 20
- )
-
-if __name__ == "__main__":
- FalconServiceCheck().execute()
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/stacks/HDP/2.1/services/FALCON/package/scripts/status_params.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.1/services/FALCON/package/scripts/status_params.py b/ambari-server/src/main/resources/stacks/HDP/2.1/services/FALCON/package/scripts/status_params.py
deleted file mode 100644
index 6ebb35f..0000000
--- a/ambari-server/src/main/resources/stacks/HDP/2.1/services/FALCON/package/scripts/status_params.py
+++ /dev/null
@@ -1,24 +0,0 @@
-"""
-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 resource_management import *
-
-config = Script.get_config()
-falcon_pid_dir = config['configurations']['falcon-env']['falcon_pid_dir']
-server_pid_file = format('{falcon_pid_dir}/falcon.pid')
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/stacks/HDP/2.1/services/FALCON/package/templates/client.properties.j2
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.1/services/FALCON/package/templates/client.properties.j2 b/ambari-server/src/main/resources/stacks/HDP/2.1/services/FALCON/package/templates/client.properties.j2
deleted file mode 100644
index 63749db..0000000
--- a/ambari-server/src/main/resources/stacks/HDP/2.1/services/FALCON/package/templates/client.properties.j2
+++ /dev/null
@@ -1,42 +0,0 @@
-{#
-# 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.
-#}
-
-#
-# 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.
-#
-
-#########################################################################
-########## This is used for falcon packaging only. ###################
-## Uses default port. Please change if configured for non-default port ##
-#########################################################################
-
-falcon.url=http://{{falcon_host}}:{{falcon_port}}/
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/stacks/HDP/2.1/services/FALCON/package/templates/runtime.properties.j2
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.1/services/FALCON/package/templates/runtime.properties.j2 b/ambari-server/src/main/resources/stacks/HDP/2.1/services/FALCON/package/templates/runtime.properties.j2
deleted file mode 100644
index 06f17de..0000000
--- a/ambari-server/src/main/resources/stacks/HDP/2.1/services/FALCON/package/templates/runtime.properties.j2
+++ /dev/null
@@ -1,50 +0,0 @@
-{#
-# 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.
-#}
-
-#
-# 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.
-#
-
-####################################################
-#### This is used for falcon packaging only. ####
-####################################################
-
-*.domain=${falcon.app.type}
-
-*.log.cleanup.frequency.minutes.retention=hours(6)
-*.log.cleanup.frequency.hours.retention=minutes(1)
-*.log.cleanup.frequency.days.retention=days(7)
-*.log.cleanup.frequency.months.retention=months(3)
-#### To configure falcon servers with prism ####
-#*.all.colos=<comma separated list of colos where falcon servers are installed>
-#*.falcon.<colo>.endpoint=<falcon server endpoint>
-
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/alerts.json
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/alerts.json b/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/alerts.json
deleted file mode 100644
index 4800fcb..0000000
--- a/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/alerts.json
+++ /dev/null
@@ -1,189 +0,0 @@
-{
- "STORM": {
- "service": [
- {
- "name": "storm_supervisor_process_percent",
- "label": "Percent Supervisors Available",
- "interval": 1,
- "scope": "SERVICE",
- "enabled": true,
- "source": {
- "type": "AGGREGATE",
- "alert_name": "storm_supervisor_process",
- "reporting": {
- "ok": {
- "text": "affected: [{1}], total: [{0}]"
- },
- "warning": {
- "text": "affected: [{1}], total: [{0}]",
- "value": 0.1
- },
- "critical": {
- "text": "affected: [{1}], total: [{0}]",
- "value": 0.3
- }
- }
- }
- }
- ],
- "STORM_UI_SERVER": [
- {
- "name": "storm_server_process",
- "label": "Storm Server Process",
- "interval": 1,
- "scope": "ANY",
- "enabled": true,
- "source": {
- "type": "PORT",
- "uri": "{{storm-site/ui.port}}",
- "default_port": 8744,
- "reporting": {
- "ok": {
- "text": "TCP OK - {0:.3f}s response on port {1}"
- },
- "warning": {
- "text": "TCP OK - {0:.3f}s response on port {1}",
- "value": 1.5
- },
- "critical": {
- "text": "Connection failed: {0} to {1}:{2}",
- "value": 5.0
- }
- }
- }
- },
- {
- "name": "storm_webui",
- "label": "Storm Web UI",
- "interval": 1,
- "scope": "ANY",
- "enabled": true,
- "source": {
- "type": "WEB",
- "uri": {
- "http": "{{storm-site/ui.port}}"
- },
- "reporting": {
- "ok": {
- "text": "HTTP {0} response in {2:.4f} seconds"
- },
- "warning":{
- "text": "HTTP {0} response in {2:.4f} seconds"
- },
- "critical": {
- "text": "Connection failed to {1}"
- }
- }
- }
- }
- ],
- "NIMBUS": [
- {
- "name": "storm_nimbus_process",
- "label": "Nimbus Process",
- "interval": 1,
- "scope": "ANY",
- "enabled": true,
- "source": {
- "type": "PORT",
- "uri": "{{storm-site/nimbus.thrift.port}}",
- "default_port": 6627,
- "reporting": {
- "ok": {
- "text": "TCP OK - {0:.3f}s response on port {1}"
- },
- "warning": {
- "text": "TCP OK - {0:.3f}s response on port {1}",
- "value": 1.5
- },
- "critical": {
- "text": "Connection failed: {0} to {1}:{2}",
- "value": 5.0
- }
- }
- }
- }
- ],
- "DRPC_SERVER": [
- {
- "name": "storm_drpc_server",
- "label": "DRPC Server Process",
- "interval": 1,
- "scope": "ANY",
- "enabled": true,
- "source": {
- "type": "PORT",
- "uri": "{{storm-site/drpc.port}}",
- "default_port": 3772,
- "reporting": {
- "ok": {
- "text": "TCP OK - {0:.3f}s response on port {1}"
- },
- "warning": {
- "text": "TCP OK - {0:.3f}s response on port {1}",
- "value": 1.5
- },
- "critical": {
- "text": "Connection failed: {0} to {1}:{2}",
- "value": 5.0
- }
- }
- }
- }
- ],
- "STORM_REST_API": [
- {
- "name": "storm_rest_api",
- "label": "Storm REST API",
- "interval": 1,
- "scope": "ANY",
- "enabled": true,
- "source": {
- "type": "PORT",
- "uri": "8745",
- "default_port": 8745,
- "reporting": {
- "ok": {
- "text": "TCP OK - {0:.3f}s response on port {1}"
- },
- "warning": {
- "text": "TCP OK - {0:.3f}s response on port {1}",
- "value": 1.5
- },
- "critical": {
- "text": "Connection failed: {0} to {1}:{2}",
- "value": 5.0
- }
- }
- }
- }
- ],
- "SUPERVISOR": [
- {
- "name": "storm_supervisor_process",
- "label": "Supervisor Process",
- "interval": 1,
- "scope": "HOST",
- "enabled": true,
- "source": {
- "type": "PORT",
- "uri": "56431",
- "default_port": 56431,
- "reporting": {
- "ok": {
- "text": "TCP OK - {0:.3f}s response on port {1}"
- },
- "warning": {
- "text": "TCP OK - {0:.3f}s response on port {1}",
- "value": 1.5
- },
- "critical": {
- "text": "Connection failed: {0} to {1}:{2}",
- "value": 5.0
- }
- }
- }
- }
- ]
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/configuration/storm-env.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/configuration/storm-env.xml b/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/configuration/storm-env.xml
deleted file mode 100644
index c663116..0000000
--- a/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/configuration/storm-env.xml
+++ /dev/null
@@ -1,56 +0,0 @@
-<?xml version="1.0"?>
-<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
-<!--
-/**
- * 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.
- */
--->
-
-<configuration>
- <property>
- <name>storm_user</name>
- <value>storm</value>
- <property-type>USER</property-type>
- <description></description>
- </property>
- <property>
- <name>storm_log_dir</name>
- <value>/var/log/storm</value>
- <description></description>
- </property>
- <property>
- <name>storm_pid_dir</name>
- <value>/var/run/storm</value>
- <description></description>
- </property>
-
- <!-- storm-env.sh -->
- <property>
- <name>content</name>
- <description>This is the jinja template for storm-env.sh file</description>
- <value>
-#!/bin/bash
-
-# Set Storm specific environment variables here.
-
-# The java implementation to use.
-export JAVA_HOME={{java64_home}}
-
-# export STORM_CONF_DIR=""
- </value>
- </property>
-</configuration>
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/configuration/storm-site.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/configuration/storm-site.xml b/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/configuration/storm-site.xml
deleted file mode 100644
index b6a2cf2..0000000
--- a/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/configuration/storm-site.xml
+++ /dev/null
@@ -1,580 +0,0 @@
-<?xml version="1.0"?>
-<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
-<!--
-/**
- * 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.
- */
--->
-
-<configuration supports_final="true">
- <property>
- <name>java.library.path</name>
- <value>/usr/local/lib:/opt/local/lib:/usr/lib</value>
- <description>This value is passed to spawned JVMs (e.g., Nimbus, Supervisor, and Workers)
- for the java.library.path value. java.library.path tells the JVM where
- to look for native libraries. It is necessary to set this config correctly since
- Storm uses the ZeroMQ and JZMQ native libs. </description>
- </property>
- <property>
- <name>storm.local.dir</name>
- <value>/hadoop/storm</value>
- <description>A directory on the local filesystem used by Storm for any local
- filesystem usage it needs. The directory must exist and the Storm daemons must
- have permission to read/write from this location.</description>
- </property>
- <property>
- <name>storm.zookeeper.servers</name>
- <value>['localhost']</value>
- <description>A list of hosts of ZooKeeper servers used to manage the cluster.</description>
- </property>
- <property>
- <name>storm.zookeeper.port</name>
- <value>2181</value>
- <description>The port Storm will use to connect to each of the ZooKeeper servers.</description>
- </property>
- <property>
- <name>storm.zookeeper.root</name>
- <value>/storm</value>
- <description>The root location at which Storm stores data in ZooKeeper.</description>
- </property>
- <property>
- <name>storm.zookeeper.session.timeout</name>
- <value>20000</value>
- <description>The session timeout for clients to ZooKeeper.</description>
- </property>
- <property>
- <name>storm.zookeeper.connection.timeout</name>
- <value>15000</value>
- <description>The connection timeout for clients to ZooKeeper.</description>
- </property>
- <property>
- <name>storm.zookeeper.retry.times</name>
- <value>5</value>
- <description>The number of times to retry a Zookeeper operation.</description>
- </property>
- <property>
- <name>storm.zookeeper.retry.interval</name>
- <value>1000</value>
- <description>The interval between retries of a Zookeeper operation.</description>
- </property>
- <property>
- <name>storm.zookeeper.retry.intervalceiling.millis</name>
- <value>30000</value>
- <description>The ceiling of the interval between retries of a Zookeeper operation.</description>
- </property>
- <property>
- <name>storm.cluster.mode</name>
- <value>distributed</value>
- <description>The mode this Storm cluster is running in. Either "distributed" or "local".</description>
- </property>
- <property>
- <name>storm.local.mode.zmq</name>
- <value>false</value>
- <description>Whether or not to use ZeroMQ for messaging in local mode. If this is set
- to false, then Storm will use a pure-Java messaging system. The purpose
- of this flag is to make it easy to run Storm in local mode by eliminating
- the need for native dependencies, which can be difficult to install.
- </description>
- </property>
- <property>
- <name>storm.thrift.transport</name>
- <value>backtype.storm.security.auth.SimpleTransportPlugin</value>
- <description>The transport plug-in for Thrift client/server communication.</description>
- </property>
- <property>
- <name>storm.messaging.transport</name>
- <value>backtype.storm.messaging.netty.Context</value>
- <description>The transporter for communication among Storm tasks.</description>
- </property>
- <property>
- <name>nimbus.host</name>
- <value>localhost</value>
- <description>The host that the master server is running on.</description>
- </property>
- <property>
- <name>nimbus.thrift.port</name>
- <value>6627</value>
- <description> Which port the Thrift interface of Nimbus should run on. Clients should
- connect to this port to upload jars and submit topologies.</description>
- </property>
- <property>
- <name>nimbus.thrift.max_buffer_size</name>
- <value>1048576</value>
- <description>The maximum buffer size thrift should use when reading messages.</description>
- </property>
- <property>
- <name>nimbus.childopts</name>
- <value>-Xmx1024m -javaagent:/usr/lib/storm/contrib/storm-jmxetric/lib/jmxetric-1.0.4.jar=host=localhost,port=8649,wireformat31x=true,mode=multicast,config=/usr/lib/storm/contrib/storm-jmxetric/conf/jmxetric-conf.xml,process=Nimbus_JVM</value>
- <description>This parameter is used by the storm-deploy project to configure the jvm options for the nimbus daemon.</description>
- </property>
- <property>
- <name>nimbus.task.timeout.secs</name>
- <value>30</value>
- <description>How long without heartbeating a task can go before nimbus will consider the task dead and reassign it to another location.</description>
- </property>
- <property>
- <name>nimbus.supervisor.timeout.secs</name>
- <value>60</value>
- <description>How long before a supervisor can go without heartbeating before nimbus considers it dead and stops assigning new work to it.</description>
- </property>
- <property>
- <name>nimbus.monitor.freq.secs</name>
- <value>10</value>
- <description>
- How often nimbus should wake up to check heartbeats and do reassignments. Note
- that if a machine ever goes down Nimbus will immediately wake up and take action.
- This parameter is for checking for failures when there's no explicit event like that occuring.
- </description>
- </property>
- <property>
- <name>nimbus.cleanup.inbox.freq.secs</name>
- <value>600</value>
- <description>How often nimbus should wake the cleanup thread to clean the inbox.</description>
- </property>
- <property>
- <name>nimbus.inbox.jar.expiration.secs</name>
- <value>3600</value>
- <description>
- The length of time a jar file lives in the inbox before being deleted by the cleanup thread.
-
- Probably keep this value greater than or equal to NIMBUS_CLEANUP_INBOX_JAR_EXPIRATION_SECS.
- Note that the time it takes to delete an inbox jar file is going to be somewhat more than
- NIMBUS_CLEANUP_INBOX_JAR_EXPIRATION_SECS (depending on how often NIMBUS_CLEANUP_FREQ_SECS is set to).
- </description>
- </property>
- <property>
- <name>nimbus.task.launch.secs</name>
- <value>120</value>
- <description>A special timeout used when a task is initially launched. During launch, this is the timeout
- used until the first heartbeat, overriding nimbus.task.timeout.secs.</description>
- </property>
- <property>
- <name>nimbus.reassign</name>
- <value>true</value>
- <description>Whether or not nimbus should reassign tasks if it detects that a task goes down.
- Defaults to true, and it's not recommended to change this value.</description>
- </property>
- <property>
- <name>nimbus.file.copy.expiration.secs</name>
- <value>600</value>
- <description>During upload/download with the master, how long an upload or download connection is idle
- before nimbus considers it dead and drops the connection.</description>
- </property>
- <property>
- <name>nimbus.topology.validator</name>
- <value>backtype.storm.nimbus.DefaultTopologyValidator</value>
- <description>A custom class that implements ITopologyValidator that is run whenever a
- topology is submitted. Can be used to provide business-specific logic for
- whether topologies are allowed to run or not.</description>
- </property>
- <property>
- <name>ui.port</name>
- <value>8744</value>
- <description>Storm UI binds to this port.</description>
- </property>
- <property>
- <name>ui.childopts</name>
- <value>-Xmx768m</value>
- <description>Childopts for Storm UI Java process.</description>
- </property>
- <property>
- <name>logviewer.port</name>
- <value>8000</value>
- <description>HTTP UI port for log viewer.</description>
- </property>
- <property>
- <name>logviewer.childopts</name>
- <value>-Xmx128m</value>
- <description>Childopts for log viewer java process.</description>
- </property>
- <property>
- <name>logviewer.appender.name</name>
- <value>A1</value>
- <description>Appender name used by log viewer to determine log directory.</description>
- </property>
- <property>
- <name>drpc.port</name>
- <value>3772</value>
- <description>This port is used by Storm DRPC for receiving DPRC requests from clients.</description>
- </property>
- <property>
- <name>drpc.worker.threads</name>
- <value>64</value>
- <description>DRPC thrift server worker threads.</description>
- </property>
- <property>
- <name>drpc.queue.size</name>
- <value>128</value>
- <description>DRPC thrift server queue size.</description>
- </property>
- <property>
- <name>drpc.invocations.port</name>
- <value>3773</value>
- <description>This port on Storm DRPC is used by DRPC topologies to receive function invocations and send results back.</description>
- </property>
- <property>
- <name>drpc.request.timeout.secs</name>
- <value>600</value>
- <description>The timeout on DRPC requests within the DRPC server. Defaults to 10 minutes. Note that requests can also
- timeout based on the socket timeout on the DRPC client, and separately based on the topology message
- timeout for the topology implementing the DRPC function.</description>
- </property>
- <property>
- <name>drpc.childopts</name>
- <value>-Xmx768m</value>
- <description>Childopts for Storm DRPC Java process.</description>
- </property>
- <property>
- <name>transactional.zookeeper.root</name>
- <value>/transactional</value>
- <description>The root directory in ZooKeeper for metadata about TransactionalSpouts.</description>
- </property>
- <property>
- <name>transactional.zookeeper.servers</name>
- <value>null</value>
- <description>The list of zookeeper servers in which to keep the transactional state. If null (which is default),
- will use storm.zookeeper.servers</description>
- </property>
- <property>
- <name>transactional.zookeeper.port</name>
- <value>null</value>
- <description>The port to use to connect to the transactional zookeeper servers. If null (which is default),
- will use storm.zookeeper.port</description>
- </property>
- <property>
- <name>supervisor.slots.ports</name>
- <value>[6700, 6701]</value>
- <description>A list of ports that can run workers on this supervisor. Each worker uses one port, and
- the supervisor will only run one worker per port. Use this configuration to tune
- how many workers run on each machine.</description>
- </property>
- <property>
- <name>supervisor.childopts</name>
- <value>-Xmx256m -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port=56431 -javaagent:/usr/lib/storm/contrib/storm-jmxetric/lib/jmxetric-1.0.4.jar=host=localhost,port=8650,wireformat31x=true,mode=multicast,config=/usr/lib/storm/contrib/storm-jmxetric/conf/jmxetric-conf.xml,process=Supervisor_JVM</value>
- <description>This parameter is used by the storm-deploy project to configure the jvm options for the supervisor daemon.</description>
- </property>
- <property>
- <name>supervisor.worker.start.timeout.secs</name>
- <value>120</value>
- <description>How long a worker can go without heartbeating during the initial launch before
- the supervisor tries to restart the worker process. This value override
- supervisor.worker.timeout.secs during launch because there is additional
- overhead to starting and configuring the JVM on launch.</description>
- </property>
- <property>
- <name>supervisor.worker.timeout.secs</name>
- <value>30</value>
- <description>How long a worker can go without heartbeating before the supervisor tries to restart the worker process.</description>
- </property>
- <property>
- <name>supervisor.monitor.frequency.secs</name>
- <value>3</value>
- <description>How often the supervisor checks the worker heartbeats to see if any of them need to be restarted.</description>
- </property>
- <property>
- <name>supervisor.heartbeat.frequency.secs</name>
- <value>5</value>
- <description>How often the supervisor sends a heartbeat to the master.</description>
- </property>
- <property>
- <name>worker.childopts</name>
- <value>-Xmx768m -javaagent:/usr/lib/storm/contrib/storm-jmxetric/lib/jmxetric-1.0.4.jar=host=localhost,port=8650,wireformat31x=true,mode=multicast,config=/usr/lib/storm/contrib/storm-jmxetric/conf/jmxetric-conf.xml,process=Worker_%ID%_JVM</value>
- <description>The jvm opts provided to workers launched by this supervisor. All \"%ID%\" substrings are replaced with an identifier for this worker.</description>
- </property>
- <property>
- <name>worker.heartbeat.frequency.secs</name>
- <value>1</value>
- <description>How often this worker should heartbeat to the supervisor.</description>
- </property>
- <property>
- <name>task.heartbeat.frequency.secs</name>
- <value>3</value>
- <description>How often a task should heartbeat its status to the master.</description>
- </property>
- <property>
- <name>task.refresh.poll.secs</name>
- <value>10</value>
- <description>How often a task should sync its connections with other tasks (if a task is
- reassigned, the other tasks sending messages to it need to refresh their connections).
- In general though, when a reassignment happens other tasks will be notified
- almost immediately. This configuration is here just in case that notification doesn't
- come through.</description>
- </property>
- <property>
- <name>zmq.threads</name>
- <value>1</value>
- <description>The number of threads that should be used by the zeromq context in each worker process.</description>
- </property>
- <property>
- <name>zmq.linger.millis</name>
- <value>5000</value>
- <description>How long a connection should retry sending messages to a target host when
- the connection is closed. This is an advanced configuration and can almost
- certainly be ignored.</description>
- </property>
- <property>
- <name>zmq.hwm</name>
- <value>0</value>
- <description>The high water for the ZeroMQ push sockets used for networking. Use this config to prevent buffer explosion
- on the networking layer.</description>
- </property>
- <property>
- <name>storm.messaging.netty.server_worker_threads</name>
- <value>1</value>
- <description>Netty based messaging: The # of worker threads for the server.</description>
- </property>
- <property>
- <name>storm.messaging.netty.client_worker_threads</name>
- <value>1</value>
- <description>Netty based messaging: The # of worker threads for the client.</description>
- </property>
- <property>
- <name>storm.messaging.netty.buffer_size</name>
- <value>5242880</value>
- <description>Netty based messaging: The buffer size for send/recv buffer.</description>
- </property>
- <property>
- <name>storm.messaging.netty.max_retries</name>
- <value>30</value>
- <description>Netty based messaging: The max # of retries that a peer will perform when a remote is not accessible.</description>
- </property>
- <property>
- <name>storm.messaging.netty.max_wait_ms</name>
- <value>1000</value>
- <description>Netty based messaging: The max # of milliseconds that a peer will wait.</description>
- </property>
- <property>
- <name>storm.messaging.netty.min_wait_ms</name>
- <value>100</value>
- <description>Netty based messaging: The min # of milliseconds that a peer will wait.</description>
- </property>
- <property>
- <name>topology.enable.message.timeouts</name>
- <value>true</value>
- <description>True if Storm should timeout messages or not. Defaults to true. This is meant to be used
- in unit tests to prevent tuples from being accidentally timed out during the test.</description>
- </property>
- <property>
- <name>topology.debug</name>
- <value>false</value>
- <description>When set to true, Storm will log every message that's emitted.</description>
- </property>
- <property>
- <name>topology.optimize</name>
- <value>true</value>
- <description>Whether or not the master should optimize topologies by running multiple tasks in a single thread where appropriate.</description>
- </property>
- <property>
- <name>topology.workers</name>
- <value>1</value>
- <description>How many processes should be spawned around the cluster to execute this
- topology. Each process will execute some number of tasks as threads within
- them. This parameter should be used in conjunction with the parallelism hints
- on each component in the topology to tune the performance of a topology.</description>
- </property>
- <property>
- <name>topology.acker.executors</name>
- <value>null</value>
- <description>How many executors to spawn for ackers.
-
- If this is set to 0, then Storm will immediately ack tuples as soon
- as they come off the spout, effectively disabling reliability.
- </description>
- </property>
- <property>
- <name>topology.message.timeout.secs</name>
- <value>30</value>
- <description>The maximum amount of time given to the topology to fully process a message
- emitted by a spout. If the message is not acked within this time frame, Storm
- will fail the message on the spout. Some spouts implementations will then replay
- the message at a later time.</description>
- </property>
- <property>
- <name>topology.skip.missing.kryo.registrations</name>
- <value>false</value>
- <description> Whether or not Storm should skip the loading of kryo registrations for which it
- does not know the class or have the serializer implementation. Otherwise, the task will
- fail to load and will throw an error at runtime. The use case of this is if you want to
- declare your serializations on the storm.yaml files on the cluster rather than every single
- time you submit a topology. Different applications may use different serializations and so
- a single application may not have the code for the other serializers used by other apps.
- By setting this config to true, Storm will ignore that it doesn't have those other serializations
- rather than throw an error.</description>
- </property>
- <property>
- <name>topology.max.task.parallelism</name>
- <value>null</value>
- <description>The maximum parallelism allowed for a component in this topology. This configuration is
- typically used in testing to limit the number of threads spawned in local mode.</description>
- </property>
- <property>
- <name>topology.max.spout.pending</name>
- <value>null</value>
- <description>The maximum number of tuples that can be pending on a spout task at any given time.
- This config applies to individual tasks, not to spouts or topologies as a whole.
-
- A pending tuple is one that has been emitted from a spout but has not been acked or failed yet.
- Note that this config parameter has no effect for unreliable spouts that don't tag
- their tuples with a message id.</description>
- </property>
- <property>
- <name>topology.state.synchronization.timeout.secs</name>
- <value>60</value>
- <description>The maximum amount of time a component gives a source of state to synchronize before it requests
- synchronization again.</description>
- </property>
- <property>
- <name>topology.stats.sample.rate</name>
- <value>0.05</value>
- <description>The percentage of tuples to sample to produce stats for a task.</description>
- </property>
- <property>
- <name>topology.builtin.metrics.bucket.size.secs</name>
- <value>60</value>
- <description>The time period that builtin metrics data in bucketed into.</description>
- </property>
- <property>
- <name>topology.fall.back.on.java.serialization</name>
- <value>true</value>
- <description>Whether or not to use Java serialization in a topology.</description>
- </property>
- <property>
- <name>topology.worker.childopts</name>
- <value>null</value>
- <description>Topology-specific options for the worker child process. This is used in addition to WORKER_CHILDOPTS.</description>
- </property>
- <property>
- <name>topology.executor.receive.buffer.size</name>
- <value>1024</value>
- <description>The size of the Disruptor receive queue for each executor. Must be a power of 2.</description>
- </property>
- <property>
- <name>topology.executor.send.buffer.size</name>
- <value>1024</value>
- <description>The size of the Disruptor send queue for each executor. Must be a power of 2.</description>
- </property>
- <property>
- <name>topology.receiver.buffer.size</name>
- <value>8</value>
- <description>The maximum number of messages to batch from the thread receiving off the network to the
- executor queues. Must be a power of 2.</description>
- </property>
- <property>
- <name>topology.transfer.buffer.size</name>
- <value>1024</value>
- <description>The size of the Disruptor transfer queue for each worker.</description>
- </property>
- <property>
- <name>topology.tick.tuple.freq.secs</name>
- <value>null</value>
- <description>How often a tick tuple from the "__system" component and "__tick" stream should be sent
- to tasks. Meant to be used as a component-specific configuration.</description>
- </property>
- <property>
- <name>topology.worker.shared.thread.pool.size</name>
- <value>4</value>
- <description>The size of the shared thread pool for worker tasks to make use of. The thread pool can be accessed
- via the TopologyContext.</description>
- </property>
- <property>
- <name>topology.disruptor.wait.strategy</name>
- <value>com.lmax.disruptor.BlockingWaitStrategy</value>
- <description>Configure the wait strategy used for internal queuing. Can be used to tradeoff latency
- vs. throughput.</description>
- </property>
- <property>
- <name>topology.executor.send.buffer.size</name>
- <value>1024</value>
- <description>The size of the Disruptor send queue for each executor. Must be a power of 2.</description>
- </property>
- <property>
- <name>topology.receiver.buffer.size</name>
- <value>8</value>
- <description>The maximum number of messages to batch from the thread receiving off the network to the
- executor queues. Must be a power of 2.</description>
- </property>
- <property>
- <name>topology.transfer.buffer.size</name>
- <value>1024</value>
- <description>The size of the Disruptor transfer queue for each worker.</description>
- </property>
- <property>
- <name>topology.tick.tuple.freq.secs</name>
- <value>null</value>
- <description>How often a tick tuple from the "__system" component and "__tick" stream should be sent
- to tasks. Meant to be used as a component-specific configuration.</description>
- </property>
- <property>
- <name>topology.worker.shared.thread.pool.size</name>
- <value>4</value>
- <description>The size of the shared thread pool for worker tasks to make use of. The thread pool can be accessed
- via the TopologyContext.</description>
- </property>
- <property>
- <name>topology.spout.wait.strategy</name>
- <value>backtype.storm.spout.SleepSpoutWaitStrategy</value>
- <description>A class that implements a strategy for what to do when a spout needs to wait. Waiting is
- triggered in one of two conditions:
-
- 1. nextTuple emits no tuples
- 2. The spout has hit maxSpoutPending and can't emit any more tuples</description>
- </property>
- <property>
- <name>topology.sleep.spout.wait.strategy.time.ms</name>
- <value>1</value>
- <description>The amount of milliseconds the SleepEmptyEmitStrategy should sleep for.</description>
- </property>
- <property>
- <name>topology.error.throttle.interval.secs</name>
- <value>10</value>
- <description>The interval in seconds to use for determining whether to throttle error reported to Zookeeper. For example,
- an interval of 10 seconds with topology.max.error.report.per.interval set to 5 will only allow 5 errors to be
- reported to Zookeeper per task for every 10 second interval of time.</description>
- </property>
- <property>
- <name>topology.max.error.report.per.interval</name>
- <value>5</value>
- <description>The interval in seconds to use for determining whether to throttle error reported to Zookeeper. For example,
- an interval of 10 seconds with topology.max.error.report.per.interval set to 5 will only allow 5 errors to be
- reported to Zookeeper per task for every 10 second interval of time.</description>
- </property>
- <property>
- <name>topology.kryo.factory</name>
- <value>backtype.storm.serialization.DefaultKryoFactory</value>
- <description>Class that specifies how to create a Kryo instance for serialization. Storm will then apply
- topology.kryo.register and topology.kryo.decorators on top of this. The default implementation
- implements topology.fall.back.on.java.serialization and turns references off.</description>
- </property>
- <property>
- <name>topology.tuple.serializer</name>
- <value>backtype.storm.serialization.types.ListDelegateSerializer</value>
- <description>The serializer class for ListDelegate (tuple payload).
- The default serializer will be ListDelegateSerializer</description>
- </property>
- <property>
- <name>topology.trident.batch.emit.interval.millis</name>
- <value>500</value>
- <description>How often a batch can be emitted in a Trident topology.</description>
- </property>
- <property>
- <name>dev.zookeeper.path</name>
- <value>/tmp/dev-storm-zookeeper</value>
- <description>The path to use as the zookeeper dir when running a zookeeper server via
- "storm dev-zookeeper". This zookeeper instance is only intended for development;
- it is not a production grade zookeeper setup.</description>
- </property>
-</configuration>
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/metainfo.xml b/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/metainfo.xml
index f2c391c..02322c1 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/metainfo.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/2.1/services/STORM/metainfo.xml
@@ -21,106 +21,7 @@
<services>
<service>
<name>STORM</name>
- <displayName>Storm</displayName>
- <comment>Apache Hadoop Stream processing framework</comment>
- <version>0.9.1.2.1</version>
- <components>
-
- <component>
- <name>NIMBUS</name>
- <displayName>Nimbus</displayName>
- <category>MASTER</category>
- <cardinality>1</cardinality>
- <dependencies>
- <dependency>
- <name>ZOOKEEPER/ZOOKEEPER_SERVER</name>
- <scope>cluster</scope>
- <auto-deploy>
- <enabled>true</enabled>
- </auto-deploy>
- </dependency>
- </dependencies>
- <commandScript>
- <script>scripts/nimbus.py</script>
- <scriptType>PYTHON</scriptType>
- <timeout>600</timeout>
- </commandScript>
- </component>
-
- <component>
- <name>STORM_REST_API</name>
- <displayName>Storm REST API Server</displayName>
- <category>MASTER</category>
- <cardinality>1</cardinality>
- <commandScript>
- <script>scripts/rest_api.py</script>
- <scriptType>PYTHON</scriptType>
- <timeout>600</timeout>
- </commandScript>
- </component>
-
- <component>
- <name>SUPERVISOR</name>
- <displayName>Supervisor</displayName>
- <category>SLAVE</category>
- <cardinality>1+</cardinality>
- <commandScript>
- <script>scripts/supervisor.py</script>
- <scriptType>PYTHON</scriptType>
- <timeout>600</timeout>
- </commandScript>
- </component>
-
- <component>
- <name>STORM_UI_SERVER</name>
- <displayName>Storm UI Server</displayName>
- <category>MASTER</category>
- <cardinality>1</cardinality>
- <commandScript>
- <script>scripts/ui_server.py</script>
- <scriptType>PYTHON</scriptType>
- <timeout>600</timeout>
- </commandScript>
- </component>
-
- <component>
- <name>DRPC_SERVER</name>
- <displayName>DRPC Server</displayName>
- <category>MASTER</category>
- <cardinality>1</cardinality>
- <commandScript>
- <script>scripts/drpc_server.py</script>
- <scriptType>PYTHON</scriptType>
- <timeout>600</timeout>
- </commandScript>
- </component>
- </components>
-
- <osSpecifics>
- <osSpecific>
- <osFamily>any</osFamily>
- <packages>
- <package>
- <name>storm</name>
- </package>
- </packages>
- </osSpecific>
- </osSpecifics>
-
- <commandScript>
- <script>scripts/service_check.py</script>
- <scriptType>PYTHON</scriptType>
- <timeout>300</timeout>
- </commandScript>
-
- <requiredServices>
- <service>ZOOKEEPER</service>
- </requiredServices>
-
- <configuration-dependencies>
- <config-type>storm-site</config-type>
- <config-type>storm-env</config-type>
- </configuration-dependencies>
+ <extends>common-services/STORM/0.9.1.2.1</extends>
</service>
</services>
</metainfo>
[4/6] ambari git commit: AMBARI-8779: Common Services: Refactor
HDP-2.1 FALCON, STORM, TEZ services (Jayush Luniya)
Posted by jl...@apache.org.
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/status_params.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/status_params.py b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/status_params.py
new file mode 100644
index 0000000..5eaa446
--- /dev/null
+++ b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/status_params.py
@@ -0,0 +1,36 @@
+#!/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 resource_management import *
+
+config = Script.get_config()
+
+pid_dir = config['configurations']['storm-env']['storm_pid_dir']
+pid_nimbus = format("{pid_dir}/nimbus.pid")
+pid_supervisor = format("{pid_dir}/supervisor.pid")
+pid_drpc = format("{pid_dir}/drpc.pid")
+pid_ui = format("{pid_dir}/ui.pid")
+pid_logviewer = format("{pid_dir}/logviewer.pid")
+pid_rest_api = format("{pid_dir}/restapi.pid")
+pid_files = {"logviewer":pid_logviewer,
+ "ui": pid_ui,
+ "nimbus": pid_nimbus,
+ "supervisor": pid_supervisor,
+ "drpc": pid_drpc,
+ "rest_api": pid_rest_api}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/storm.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/storm.py b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/storm.py
new file mode 100644
index 0000000..3b71751
--- /dev/null
+++ b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/storm.py
@@ -0,0 +1,98 @@
+#!/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 resource_management import *
+from yaml_utils import escape_yaml_propetry
+import sys
+
+def storm():
+ import params
+
+ Directory(params.log_dir,
+ owner=params.storm_user,
+ group=params.user_group,
+ mode=0775,
+ recursive=True
+ )
+
+ Directory([params.pid_dir, params.local_dir, params.conf_dir],
+ owner=params.storm_user,
+ group=params.user_group,
+ recursive=True,
+ recursive_permission=True
+ )
+
+ File(format("{conf_dir}/config.yaml"),
+ content=Template("config.yaml.j2"),
+ owner=params.storm_user,
+ group=params.user_group
+ )
+
+ configurations = params.config['configurations']['storm-site']
+
+ File(format("{conf_dir}/storm.yaml"),
+ content=Template(
+ "storm.yaml.j2",
+ extra_imports=[escape_yaml_propetry],
+ configurations = configurations),
+ owner=params.storm_user,
+ group=params.user_group
+ )
+
+ if params.has_metric_collector:
+ File(format("{conf_dir}/storm-metrics2.properties"),
+ owner=params.storm_user,
+ group=params.user_group,
+ content=Template("storm-metrics2.properties.j2")
+ )
+
+ File(format("{conf_dir}/storm-env.sh"),
+ owner=params.storm_user,
+ content=InlineTemplate(params.storm_env_sh_template)
+ )
+
+ if params.security_enabled:
+ TemplateConfig(format("{conf_dir}/storm_jaas.conf"),
+ owner=params.storm_user
+ )
+ if params.hdp_stack_version != "" and compare_versions(params.hdp_stack_version, '2.2') >= 0:
+ TemplateConfig(format("{conf_dir}/client_jaas.conf"),
+ owner=params.storm_user
+ )
+ minRuid = configurations['_storm.min.ruid'] if configurations.has_key('_storm.min.ruid') else ''
+
+ min_user_ruid = int(minRuid) if minRuid.isdigit() else _find_real_user_min_uid()
+
+ File(format("{conf_dir}/worker-launcher.cfg"),
+ content=Template("worker-launcher.cfg.j2", min_user_ruid = min_user_ruid),
+ owner='root',
+ group=params.user_group
+ )
+
+
+'''
+Finds minimal real user UID
+'''
+def _find_real_user_min_uid():
+ with open('/etc/login.defs') as f:
+ for line in f:
+ if line.strip().startswith('UID_MIN') and len(line.split()) == 2 and line.split()[1].isdigit():
+ return int(line.split()[1])
+ raise Fail("Unable to find UID_MIN in file /etc/login.defs. Expecting format e.g.: 'UID_MIN 500'")
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/supervisor.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/supervisor.py b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/supervisor.py
new file mode 100644
index 0000000..1ebe187
--- /dev/null
+++ b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/supervisor.py
@@ -0,0 +1,61 @@
+#!/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.
+
+"""
+
+import sys
+from resource_management import *
+from storm import storm
+from service import service
+
+
+class Supervisor(Script):
+ def install(self, env):
+ self.install_packages(env)
+ self.configure(env)
+
+ def configure(self, env):
+ import params
+ env.set_params(params)
+ storm()
+
+ def start(self, env):
+ import params
+ env.set_params(params)
+ self.configure(env)
+
+ service("supervisor", action="start")
+ service("logviewer", action="start")
+
+ def stop(self, env):
+ import params
+ env.set_params(params)
+
+ service("supervisor", action="stop")
+ service("logviewer", action="stop")
+
+ def status(self, env):
+ import status_params
+ env.set_params(status_params)
+
+ check_process_status(status_params.pid_supervisor)
+
+
+if __name__ == "__main__":
+ Supervisor().execute()
+
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/supervisor_prod.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/supervisor_prod.py b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/supervisor_prod.py
new file mode 100644
index 0000000..7aecdc5
--- /dev/null
+++ b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/supervisor_prod.py
@@ -0,0 +1,57 @@
+#!/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.
+
+"""
+
+import sys
+from resource_management import *
+from storm import storm
+from service import service
+from supervisord_service import supervisord_service, supervisord_check_status
+
+
+class Supervisor(Script):
+ def install(self, env):
+ self.install_packages(env)
+ self.configure(env)
+
+ def configure(self, env):
+ import params
+ env.set_params(params)
+ storm()
+
+ def start(self, env):
+ import params
+ env.set_params(params)
+ self.configure(env)
+
+ supervisord_service("supervisor", action="start")
+ service("logviewer", action="start")
+
+ def stop(self, env):
+ import params
+ env.set_params(params)
+
+ supervisord_service("supervisor", action="stop")
+ service("logviewer", action="stop")
+
+ def status(self, env):
+ supervisord_check_status("supervisor")
+
+if __name__ == "__main__":
+ Supervisor().execute()
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/supervisord_service.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/supervisord_service.py b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/supervisord_service.py
new file mode 100644
index 0000000..6a5ea0b
--- /dev/null
+++ b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/supervisord_service.py
@@ -0,0 +1,32 @@
+#!/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 resource_management import *
+
+def supervisord_service(component_name, action):
+ Execute(format("supervisorctl {action} storm-{component_name}"),
+ wait_for_finish=False
+ )
+
+def supervisord_check_status(component_name):
+ try:
+ Execute(format("supervisorctl status storm-{component_name} | grep RUNNING"))
+ except Fail:
+ raise ComponentIsNotRunning()
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/ui_server.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/ui_server.py b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/ui_server.py
new file mode 100644
index 0000000..6a9d923
--- /dev/null
+++ b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/ui_server.py
@@ -0,0 +1,58 @@
+#!/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.
+
+"""
+
+import sys
+from resource_management import *
+from storm import storm
+from service import service
+from service_check import ServiceCheck
+
+
+class UiServer(Script):
+ def install(self, env):
+ self.install_packages(env)
+ self.configure(env)
+
+ def configure(self, env):
+ import params
+ env.set_params(params)
+
+ storm()
+
+ def start(self, env):
+ import params
+ env.set_params(params)
+ self.configure(env)
+
+ service("ui", action="start")
+
+ def stop(self, env):
+ import params
+ env.set_params(params)
+
+ service("ui", action="stop")
+
+ def status(self, env):
+ import status_params
+ env.set_params(status_params)
+ check_process_status(status_params.pid_ui)
+
+if __name__ == "__main__":
+ UiServer().execute()
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/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
new file mode 100644
index 0000000..8187666
--- /dev/null
+++ b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/yaml_utils.py
@@ -0,0 +1,49 @@
+#!/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.
+
+"""
+
+import re
+
+def escape_yaml_propetry(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:
+ unquouted = True
+
+ # if is list [a,b,c]
+ if re.match('^\w*\[.+\]\w*$', value):
+ unquouted = True
+
+ try:
+ int(value)
+ unquouted = True
+ except ValueError:
+ pass
+
+ try:
+ float(value)
+ unquouted = True
+ except ValueError:
+ pass
+
+ if not unquouted:
+ value = value.replace("'","''")
+ value = "'"+value+"'"
+
+ return value
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/templates/client_jaas.conf.j2
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/templates/client_jaas.conf.j2 b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/templates/client_jaas.conf.j2
new file mode 100644
index 0000000..e8dc122
--- /dev/null
+++ b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/templates/client_jaas.conf.j2
@@ -0,0 +1,24 @@
+{#
+# 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.
+#}
+
+StormClient {
+ com.sun.security.auth.module.Krb5LoginModule required
+ useTicketCache=true
+ renewTicket=true
+ serviceName="{{nimbus_bare_jaas_principal}}";
+};
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/templates/config.yaml.j2
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/templates/config.yaml.j2 b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/templates/config.yaml.j2
new file mode 100644
index 0000000..445df31
--- /dev/null
+++ b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/templates/config.yaml.j2
@@ -0,0 +1,65 @@
+{#
+# 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.
+#}
+
+# 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.
+
+nimbusHost: {{nimbus_host}}
+nimbusPort: {{nimbus_port}}
+
+# HTTP-specific options.
+http:
+
+ # The port on which the HTTP server listens for service requests.
+ port: {{rest_api_port}}
+
+ # The port on which the HTTP server listens for administrative requests.
+ adminPort: {{rest_api_admin_port}}
+
+{% if ganglia_installed %}
+enableGanglia: {{ganglia_installed}}
+
+# ganglia configuration (necessary if ganglia reporting is enabled)
+ganglia:
+
+ # how often to report to ganglia metrics (in seconds)
+ reportInterval: {{ganglia_report_interval}}
+
+ # the hostname of the gmond server where storm cluster metrics will be sent
+ host: "{{ganglia_server}}"
+
+ # address mode
+ # default is MULTICAST
+ addressMode: "UNICAST"
+
+ # an <IP>:<HOSTNAME> pair to spoof
+ # this allows us to simulate storm cluster metrics coming from a specific host
+ #spoof: "192.168.1.1:storm"
+{% endif %}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/templates/storm-metrics2.properties.j2
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/templates/storm-metrics2.properties.j2 b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/templates/storm-metrics2.properties.j2
new file mode 100644
index 0000000..6d333d5
--- /dev/null
+++ b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/templates/storm-metrics2.properties.j2
@@ -0,0 +1,21 @@
+{#
+# 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.
+#}
+
+collector={{metric_collector_host}}:8188
+maxRowCacheSize=10000
+sendInterval=59000
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/templates/storm.yaml.j2
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/templates/storm.yaml.j2 b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/templates/storm.yaml.j2
new file mode 100644
index 0000000..e6eed41
--- /dev/null
+++ b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/templates/storm.yaml.j2
@@ -0,0 +1,66 @@
+{#
+# 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.
+#}
+{% macro replace_jaas_placeholder(name) -%}
+{% if name.find('_JAAS_PLACEHOLDER') > -1 -%}
+ {%- if security_enabled -%}
+ {{ name.replace('_JAAS_PLACEHOLDER', '-Djava.security.auth.login.config=' +conf_dir + '/storm_jaas.conf') }}
+ {%- else -%}
+ {{ name.replace('_JAAS_PLACEHOLDER', '') }}
+ {%- endif -%}
+{%- else -%}
+ {{name}}
+{%- endif -%}
+{%- endmacro %}
+
+{% for key, value in configurations|dictsort if not key.startswith('_') %}
+{{key}} : {{ escape_yaml_propetry(replace_jaas_placeholder(value)) }}
+{% endfor %}
+
+{% if stack_is_hdp22_or_further %}
+storm.thrift.transport : "{% if security_enabled %}{{configurations['_storm.thrift.secure.transport']}}{% else %}{{configurations['_storm.thrift.nonsecure.transport']}}{% endif %}"
+{% endif %}
+
+{% if security_enabled and stack_is_hdp22_or_further %}
+#
+# Kerberos security section. For the reference please use: https://github.com/hortonworks/storm/blob/champlain/SECURITY.md for details
+#
+
+storm.principal.tolocal: "backtype.storm.security.auth.KerberosPrincipalToLocal"
+storm.zookeeper.superACL: "sasl:{{storm_bare_jaas_principal}}"
+java.security.auth.login.config: "{{conf_dir}}/storm_jaas.conf"
+nimbus.admins:
+ - "{{storm_user}}"
+nimbus.supervisor.users:
+ - "{{storm_user}}"
+nimbus.authorizer: "backtype.storm.security.auth.authorizer.SimpleACLAuthorizer"
+drpc.authorizer: "backtype.storm.security.auth.authorizer.DRPCSimpleACLAuthorizer"
+
+ui.filter: "org.apache.hadoop.security.authentication.server.AuthenticationFilter"
+ui.filter.params:
+ "type": "kerberos"
+ "kerberos.principal": "{{storm_ui_jaas_principal}}"
+ "kerberos.keytab": "{{storm_ui_keytab_path}}"
+ "kerberos.name.rules": "DEFAULT"
+supervisor.enable: true
+{% endif %}
+
+{% if has_metric_collector %}
+topology.metrics.consumer.register:
+ - class: "org.apache.hadoop.metrics2.sink.storm.StormTimelineMetricsSink"
+ parallelism.hint: 1
+{% endif %}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/templates/storm_jaas.conf.j2
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/templates/storm_jaas.conf.j2 b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/templates/storm_jaas.conf.j2
new file mode 100644
index 0000000..75cf178
--- /dev/null
+++ b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/templates/storm_jaas.conf.j2
@@ -0,0 +1,45 @@
+{#
+# 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.
+#}
+{% if stack_is_hdp22_or_further %}
+StormServer {
+ com.sun.security.auth.module.Krb5LoginModule required
+ useKeyTab=true
+ keyTab="{{nimbus_keytab_path}}"
+ storeKey=true
+ useTicketCache=false
+ principal="{{nimbus_jaas_principal}}";
+};
+StormClient {
+ com.sun.security.auth.module.Krb5LoginModule required
+ useKeyTab=true
+ keyTab="{{storm_keytab_path}}"
+ storeKey=true
+ useTicketCache=false
+ serviceName="{{nimbus_bare_jaas_principal}}"
+ principal="{{storm_jaas_principal}}";
+};
+{% endif %}
+Client {
+ com.sun.security.auth.module.Krb5LoginModule required
+ useKeyTab=true
+ keyTab="{{storm_keytab_path}}"
+ storeKey=true
+ useTicketCache=false
+ serviceName="zookeeper"
+ principal="{{storm_jaas_principal}}";
+};
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/templates/worker-launcher.cfg.j2
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/templates/worker-launcher.cfg.j2 b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/templates/worker-launcher.cfg.j2
new file mode 100644
index 0000000..2228601
--- /dev/null
+++ b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/templates/worker-launcher.cfg.j2
@@ -0,0 +1,19 @@
+{#
+# 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.
+#}
+storm.worker-launcher.group={{user_group}}
+min.user.id={{min_user_ruid}}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/common-services/TEZ/0.4.0.2.1/configuration/tez-env.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/TEZ/0.4.0.2.1/configuration/tez-env.xml b/ambari-server/src/main/resources/common-services/TEZ/0.4.0.2.1/configuration/tez-env.xml
new file mode 100644
index 0000000..a1eac56
--- /dev/null
+++ b/ambari-server/src/main/resources/common-services/TEZ/0.4.0.2.1/configuration/tez-env.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
+<!--
+/**
+ * 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.
+ */
+-->
+
+<configuration>
+ <property>
+ <name>tez_user</name>
+ <value>tez</value>
+ <property-type>USER</property-type>
+ <description></description>
+ </property>
+
+ <!-- tez-env.sh -->
+ <property>
+ <name>content</name>
+ <description>This is the jinja template for tez-env.sh file</description>
+ <value>
+# Tez specific configuration
+export TEZ_CONF_DIR={{config_dir}}
+
+# Set HADOOP_HOME to point to a specific hadoop install directory
+export HADOOP_HOME=${HADOOP_HOME:-{{hadoop_home}}}
+
+# The java implementation to use.
+export JAVA_HOME={{java64_home}}
+ </value>
+ </property>
+</configuration>
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/common-services/TEZ/0.4.0.2.1/configuration/tez-site.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/TEZ/0.4.0.2.1/configuration/tez-site.xml b/ambari-server/src/main/resources/common-services/TEZ/0.4.0.2.1/configuration/tez-site.xml
new file mode 100644
index 0000000..218c508
--- /dev/null
+++ b/ambari-server/src/main/resources/common-services/TEZ/0.4.0.2.1/configuration/tez-site.xml
@@ -0,0 +1,215 @@
+<?xml version="1.0"?>
+<!--
+ 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.
+-->
+
+<configuration supports_final="true">
+
+ <property>
+ <name>tez.lib.uris</name>
+ <value>hdfs:///apps/tez/,hdfs:///apps/tez/lib/</value>
+ <description>The location of the Tez libraries which will be localized for DAGs</description>
+ </property>
+
+ <property>
+ <name>tez.am.log.level</name>
+ <value>INFO</value>
+ <description>Root Logging level passed to the Tez app master</description>
+ </property>
+
+ <property>
+ <name>tez.staging-dir</name>
+ <value>/tmp/${user.name}/staging</value>
+ <description>The staging dir used while submitting DAGs</description>
+ </property>
+
+ <property>
+ <name>tez.am.resource.memory.mb</name>
+ <value>1536</value>
+ <description>The amount of memory to be used by the AppMaster</description>
+ </property>
+
+ <!-- tez picks the java opts from yarn.app.mapreduce.am.command-opts for MR tasks. Likewise for the AM memory MB -->
+ <property>
+ <name>tez.am.java.opts</name>
+ <value>-server -Xmx1024m -Djava.net.preferIPv4Stack=true -XX:+UseNUMA -XX:+UseParallelGC</value>
+ <description>Java options for the Tez AppMaster process. The -Xmx parameter value is generally 0.8 times tez.am.resource.memory.mb config.</description>
+ </property>
+
+ <property>
+ <name>tez.am.shuffle-vertex-manager.min-src-fraction</name>
+ <value>0.2</value>
+ <description>In case of a ScatterGather connection, the fraction of source tasks which should
+ complete before tasks for the current vertex are schedule
+ </description>
+ </property>
+
+ <property>
+ <name>tez.am.shuffle-vertex-manager.max-src-fraction</name>
+ <value>0.4</value>
+ <description>In case of a ScatterGather connection, once this fraction of source tasks have
+ completed, all tasks on the current vertex can be scheduled. Number of tasks ready for
+ scheduling on the current vertex scales linearly between min-fraction and max-fraction
+ </description>
+ </property>
+
+ <property>
+ <name>tez.am.am-rm.heartbeat.interval-ms.max</name>
+ <value>250</value>
+ <description>The maximum heartbeat interval between the AM and RM in milliseconds</description>
+ </property>
+
+ <property>
+ <name>tez.am.grouping.split-waves</name>
+ <value>1.4</value>
+ <description>The multiplier for available queue capacity when determining number of tasks for
+ a Vertex. 1.4 with 100% queue available implies generating a number of tasks roughly equal
+ to 140% of the available containers on the queue
+ </description>
+ </property>
+
+ <property>
+ <name>tez.am.grouping.min-size</name>
+ <value>16777216</value>
+ <description>Lower bound on the size (in bytes) of a grouped split, to avoid generating
+ too many splits
+ </description>
+ </property>
+
+ <property>
+ <name>tez.am.grouping.max-size</name>
+ <value>1073741824</value>
+ <description>Upper bound on the size (in bytes) of a grouped split, to avoid generating
+ excessively large split
+ </description>
+ </property>
+
+ <property>
+ <name>tez.am.container.reuse.enabled</name>
+ <value>true</value>
+ <description>Configuration to specify whether container should be reused</description>
+ </property>
+
+ <property>
+ <name>tez.am.container.reuse.rack-fallback.enabled</name>
+ <value>true</value>
+ <description>Whether to reuse containers for rack local tasks. Active only if reuse is enabled
+ </description>
+ </property>
+
+ <property>
+ <name>tez.am.container.reuse.non-local-fallback.enabled</name>
+ <value>true</value>
+ <description>Whether to reuse containers for non-local tasks. Active only if reuse is enabled
+ </description>
+ </property>
+
+ <property>
+ <name>tez.am.container.session.delay-allocation-millis</name>
+ <value>10000</value>
+ <!-- TODO This value may change -->
+ <description>The amount of time to hold on to a container if no task can be assigned to
+ it immediately. Only active when reuse is enabled. Set to -1 to never release a container
+ in a session
+ </description>
+ </property>
+
+ <property>
+ <name>tez.am.container.reuse.locality.delay-allocation-millis</name>
+ <value>250</value>
+ <description>The amount of time to wait before assigning a container to the next level of
+ locality. NODE -> RACK -> NON_LOCAL
+ </description>
+ </property>
+
+ <property>
+ <name>tez.task.get-task.sleep.interval-ms.max</name>
+ <value>200</value>
+ <description>The maximum amount of time, in seconds, to wait before a task asks an AM for
+ another task
+ </description>
+ </property>
+
+ <property>
+ <name>tez.am.env</name>
+ <value>LD_LIBRARY_PATH=/usr/lib/hadoop/lib/native:/usr/lib/hadoop/lib/native/Linux-amd64-64</value>
+ <description>
+ Additional execution environment entries for tez. This is not an additive property. You must preserve the original value if
+ you want to have access to native libraries.
+ </description>
+ </property>
+
+ <!-- Client Submission timeout value when submitting DAGs to a session -->
+ <property>
+ <name>tez.session.client.timeout.secs</name>
+ <value>180</value>
+ <description>Time (in seconds) to wait for AM to come up when trying to submit a DAG from
+ the client
+ </description>
+ </property>
+
+ <property>
+ <name>tez.session.am.dag.submit.timeout.secs</name>
+ <value>300</value>
+ <description>Time (in seconds) for which the Tez AM should wait for a DAG to be submitted
+ before shutting down
+ </description>
+ </property>
+
+
+ <!-- Configuration for runtime components -->
+
+ <!-- These properties can be set on a per edge basis by configuring the payload for each
+ edge independently. -->
+
+ <property>
+ <name>tez.runtime.intermediate-output.should-compress</name>
+ <value>false</value>
+ <description>Whether intermediate output should be compressed or not</description>
+ </property>
+
+ <property>
+ <name>tez.runtime.intermediate-output.compress.codec</name>
+ <value>org.apache.hadoop.io.compress.SnappyCodec</value>
+ <description>The coded to be used if compressing intermediate output. Only
+ applicable if tez.runtime.intermediate-output.should-compress is enabled.
+ </description>
+ </property>
+
+ <property>
+ <name>tez.runtime.intermediate-input.is-compressed</name>
+ <value>false</value>
+ <description>Whether intermediate input is compressed</description>
+ </property>
+
+ <property>
+ <name>tez.runtime.intermediate-input.compress.codec</name>
+ <value>org.apache.hadoop.io.compress.SnappyCodec</value>
+ <description>The coded to be used when reading intermediate compressed input.
+ Only applicable if tez.runtime.intermediate-input.is-compressed is enabled.</description>
+ </property>
+
+ <!-- Configuration for ATS integration -->
+
+ <property>
+ <name>tez.yarn.ats.enabled</name>
+ <value>true</value>
+ <description>Whether to send history events to YARN Application Timeline Server</description>
+ </property>
+
+</configuration>
+
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/common-services/TEZ/0.4.0.2.1/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/TEZ/0.4.0.2.1/metainfo.xml b/ambari-server/src/main/resources/common-services/TEZ/0.4.0.2.1/metainfo.xml
new file mode 100644
index 0000000..641de86
--- /dev/null
+++ b/ambari-server/src/main/resources/common-services/TEZ/0.4.0.2.1/metainfo.xml
@@ -0,0 +1,73 @@
+<?xml version="1.0"?>
+<!--
+ 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.
+-->
+<metainfo>
+ <schemaVersion>2.0</schemaVersion>
+ <services>
+ <service>
+ <name>TEZ</name>
+ <displayName>Tez</displayName>
+ <comment>Tez is the next generation Hadoop Query Processing framework written on top of YARN.</comment>
+ <version>0.4.0.2.1</version>
+ <components>
+ <component>
+ <name>TEZ_CLIENT</name>
+ <displayName>Tez Client</displayName>
+ <cardinality>1+</cardinality>
+ <category>CLIENT</category>
+ <commandScript>
+ <script>scripts/tez_client.py</script>
+ <scriptType>PYTHON</scriptType>
+ <timeout>600</timeout>
+ </commandScript>
+ <configFiles>
+ <configFile>
+ <type>xml</type>
+ <fileName>tez-site.xml</fileName>
+ <dictionaryName>tez-site</dictionaryName>
+ </configFile>
+ <configFile>
+ <type>env</type>
+ <fileName>tez-env.sh</fileName>
+ <dictionaryName>tez-env</dictionaryName>
+ </configFile>
+ </configFiles>
+ </component>
+ </components>
+ <osSpecifics>
+ <osSpecific>
+ <osFamily>any</osFamily>
+ <packages>
+ <package>
+ <name>tez</name>
+ </package>
+ </packages>
+ </osSpecific>
+ </osSpecifics>
+
+ <requiredServices>
+ <service>YARN</service>
+ </requiredServices>
+
+ <configuration-dependencies>
+ <config-type>tez-site</config-type>
+ <config-type>tez-env</config-type>
+ </configuration-dependencies>
+
+ </service>
+ </services>
+</metainfo>
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/common-services/TEZ/0.4.0.2.1/package/scripts/params.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/TEZ/0.4.0.2.1/package/scripts/params.py b/ambari-server/src/main/resources/common-services/TEZ/0.4.0.2.1/package/scripts/params.py
new file mode 100644
index 0000000..31162cd
--- /dev/null
+++ b/ambari-server/src/main/resources/common-services/TEZ/0.4.0.2.1/package/scripts/params.py
@@ -0,0 +1,67 @@
+#!/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 resource_management.libraries.functions.version import format_hdp_stack_version, compare_versions
+from resource_management import *
+
+# server configurations
+config = Script.get_config()
+
+# This is expected to be of the form #.#.#.#
+hdp_stack_version = str(config['hostLevelParams']['stack_version'])
+hdp_stack_version = format_hdp_stack_version(hdp_stack_version)
+
+# New Cluster Stack Version that is defined during the RESTART of a Rolling Upgrade
+version = default("/commandParams/version", None)
+
+if hdp_stack_version != "" and compare_versions(hdp_stack_version, '2.2') >= 0:
+ hadoop_bin_dir = "/usr/hdp/current/hadoop-client/bin"
+else:
+ hadoop_bin_dir = "/usr/bin"
+hadoop_conf_dir = "/etc/hadoop/conf"
+
+kinit_path_local = functions.get_kinit_path(["/usr/bin", "/usr/kerberos/bin", "/usr/sbin"])
+security_enabled = config['configurations']['cluster-env']['security_enabled']
+hdfs_user = config['configurations']['hadoop-env']['hdfs_user']
+hdfs_principal_name = config['configurations']['hadoop-env']['hdfs_principal_name']
+hdfs_user_keytab = config['configurations']['hadoop-env']['hdfs_user_keytab']
+
+config_dir_prefix = "/etc/tez"
+config_dir = format("{config_dir_prefix}/conf")
+
+hadoop_home = '/usr'
+java64_home = config['hostLevelParams']['java_home']
+
+tez_user = config['configurations']['tez-env']['tez_user']
+user_group = config['configurations']['cluster-env']['user_group']
+tez_env_sh_template = config['configurations']['tez-env']['content']
+
+import functools
+# Create partial functions with common arguments for every HdfsDirectory call
+# to create hdfs directory we need to call params.HdfsDirectory in code
+HdfsDirectory = functools.partial(
+ HdfsDirectory,
+ conf_dir=hadoop_conf_dir,
+ hdfs_user=hdfs_principal_name if security_enabled else hdfs_user,
+ security_enabled=security_enabled,
+ keytab=hdfs_user_keytab,
+ kinit_path_local=kinit_path_local,
+ bin_dir=hadoop_bin_dir
+)
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/common-services/TEZ/0.4.0.2.1/package/scripts/tez.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/TEZ/0.4.0.2.1/package/scripts/tez.py b/ambari-server/src/main/resources/common-services/TEZ/0.4.0.2.1/package/scripts/tez.py
new file mode 100644
index 0000000..bb8b7c2
--- /dev/null
+++ b/ambari-server/src/main/resources/common-services/TEZ/0.4.0.2.1/package/scripts/tez.py
@@ -0,0 +1,61 @@
+"""
+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.
+
+Ambari Agent
+
+"""
+
+from resource_management import *
+
+def tez():
+ import params
+
+ Directory(params.config_dir_prefix,
+ mode=0755
+ )
+ Directory(params.config_dir,
+ owner = params.tez_user,
+ group = params.user_group,
+ recursive = True
+ )
+
+ XmlConfig( "tez-site.xml",
+ conf_dir = params.config_dir,
+ configurations = params.config['configurations']['tez-site'],
+ configuration_attributes=params.config['configuration_attributes']['tez-site'],
+ owner = params.tez_user,
+ group = params.user_group,
+ mode = 0664
+ )
+
+ File(format("{config_dir}/tez-env.sh"),
+ owner=params.tez_user,
+ content=InlineTemplate(params.tez_env_sh_template)
+ )
+
+
+def tez_TemplateConfig(name):
+ import params
+
+ if not isinstance(name, list):
+ name = [name]
+
+ for x in name:
+ TemplateConfig(format("{config_dir}/{x}"),
+ owner = params.tez_user
+ )
+
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/common-services/TEZ/0.4.0.2.1/package/scripts/tez_client.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/TEZ/0.4.0.2.1/package/scripts/tez_client.py b/ambari-server/src/main/resources/common-services/TEZ/0.4.0.2.1/package/scripts/tez_client.py
new file mode 100644
index 0000000..04cfb90
--- /dev/null
+++ b/ambari-server/src/main/resources/common-services/TEZ/0.4.0.2.1/package/scripts/tez_client.py
@@ -0,0 +1,49 @@
+"""
+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.
+
+Ambari Agent
+
+"""
+
+import sys
+from resource_management import *
+from tez import tez
+
+class TezClient(Script):
+
+ def pre_rolling_restart(self, env):
+ import params
+ env.set_params(params)
+
+ if params.version and compare_versions(format_hdp_stack_version(params.version), '2.2.0.0') >= 0:
+ Execute(format("hdp-select set hadoop-client {version}"))
+
+ def install(self, env):
+ self.install_packages(env)
+ self.configure(env)
+
+ def configure(self, env):
+ import params
+ env.set_params(params)
+ tez()
+
+ def status(self, env):
+ raise ClientComponentHasNoStatus()
+
+
+if __name__ == "__main__":
+ TezClient().execute()
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/stacks/HDP/2.1/services/FALCON/alerts.json
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.1/services/FALCON/alerts.json b/ambari-server/src/main/resources/stacks/HDP/2.1/services/FALCON/alerts.json
deleted file mode 100644
index c34093f..0000000
--- a/ambari-server/src/main/resources/stacks/HDP/2.1/services/FALCON/alerts.json
+++ /dev/null
@@ -1,58 +0,0 @@
-{
- "FALCON": {
- "service": [],
- "FALCON_SERVER": [
- {
- "name": "falcon_server_process",
- "label": "Falcon Server Process",
- "description": "This host-level alert is triggered if the individual Falcon server process cannot be established to be up and listening on the network.",
- "interval": 1,
- "scope": "ANY",
- "source": {
- "type": "PORT",
- "uri": "{{falcon-env/falcon_port}}",
- "default_port": 15000,
- "reporting": {
- "ok": {
- "text": "TCP OK - {0:.3f}s response on port {1}"
- },
- "warning": {
- "text": "TCP OK - {0:.3f}s response on port {1}",
- "value": 1.5
- },
- "critical": {
- "text": "Connection failed: {0} to {1}:{2}",
- "value": 5.0
- }
- }
- }
- },
- {
- "name": "falcon_server_webui",
- "label": "Falcon Server Web UI",
- "description": "This host-level alert is triggered if the Falcon Server Web UI is unreachable.",
- "interval": 1,
- "scope": "ANY",
- "enabled": true,
- "source": {
- "type": "WEB",
- "uri": {
- "http": "{{falcon-env/falcon_port}}",
- "default_port": 15000
- },
- "reporting": {
- "ok": {
- "text": "HTTP {0} response in {2:.4f} seconds"
- },
- "warning":{
- "text": "HTTP {0} response in {2:.4f} seconds"
- },
- "critical": {
- "text": "Connection failed to {1}"
- }
- }
- }
- }
- ]
- }
-}
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/stacks/HDP/2.1/services/FALCON/configuration/falcon-env.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.1/services/FALCON/configuration/falcon-env.xml b/ambari-server/src/main/resources/stacks/HDP/2.1/services/FALCON/configuration/falcon-env.xml
deleted file mode 100644
index 0eaad86..0000000
--- a/ambari-server/src/main/resources/stacks/HDP/2.1/services/FALCON/configuration/falcon-env.xml
+++ /dev/null
@@ -1,110 +0,0 @@
-<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
-<!--
-/**
- * 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.
- */
--->
-<configuration>
- <property>
- <name>falcon_user</name>
- <value>falcon</value>
- <property-type>USER</property-type>
- <description>Falcon user.</description>
- </property>
- <property>
- <name>falcon_port</name>
- <value>15000</value>
- <description>Port the Falcon Server listens on.</description>
- </property>
- <property>
- <name>falcon_log_dir</name>
- <value>/var/log/falcon</value>
- <description>Falcon log directory.</description>
- </property>
- <property>
- <name>falcon_pid_dir</name>
- <value>/var/run/falcon</value>
- <description>Falcon pid-file directory.</description>
- </property>
- <property>
- <name>falcon_local_dir</name>
- <value>/hadoop/falcon</value>
- <description>Directory where Falcon data, such as activemq data, is stored.</description>
- </property>
- <!--embeddedmq properties-->
- <property>
- <name>falcon.embeddedmq.data</name>
- <value>/hadoop/falcon/embeddedmq/data</value>
- <description>Directory in which embeddedmq data is stored.</description>
- </property>
- <property>
- <name>falcon.embeddedmq</name>
- <value>true</value>
- <description>Whether embeddedmq is enabled or not.</description>
- </property>
- <property>
- <name>falcon.emeddedmq.port</name>
- <value>61616</value>
- <description>Port that embeddedmq will listen on.</description>
- </property>
-
- <!-- falcon-env.sh -->
- <property>
- <name>content</name>
- <description>This is the jinja template for falcon-env.sh file</description>
- <value>
-# The java implementation to use. If JAVA_HOME is not found we expect java and jar to be in path
-export JAVA_HOME={{java_home}}
-
-# any additional java opts you want to set. This will apply to both client and server operations
-#export FALCON_OPTS=
-
-# any additional java opts that you want to set for client only
-#export FALCON_CLIENT_OPTS=
-
-# java heap size we want to set for the client. Default is 1024MB
-#export FALCON_CLIENT_HEAP=
-
-# any additional opts you want to set for prisim service.
-#export FALCON_PRISM_OPTS=
-
-# java heap size we want to set for the prisim service. Default is 1024MB
-#export FALCON_PRISM_HEAP=
-
-# any additional opts you want to set for falcon service.
-export FALCON_SERVER_OPTS="-Dfalcon.embeddedmq={{falcon_embeddedmq_enabled}} -Dfalcon.emeddedmq.port={{falcon_emeddedmq_port}}"
-
-# java heap size we want to set for the falcon server. Default is 1024MB
-#export FALCON_SERVER_HEAP=
-
-# What is is considered as falcon home dir. Default is the base location of the installed software
-#export FALCON_HOME_DIR=
-
-# Where log files are stored. Defatult is logs directory under the base install location
-export FALCON_LOG_DIR={{falcon_log_dir}}
-
-# Where pid files are stored. Defatult is logs directory under the base install location
-export FALCON_PID_DIR={{falcon_pid_dir}}
-
-# where the falcon active mq data is stored. Defatult is logs/data directory under the base install location
-export FALCON_DATA_DIR={{falcon_embeddedmq_data}}
-
-# Where do you want to expand the war file. By Default it is in /server/webapp dir under the base install dir.
-#export FALCON_EXPANDED_WEBAPP_DIR=
- </value>
- </property>
-</configuration>
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/stacks/HDP/2.1/services/FALCON/configuration/falcon-runtime.properties.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.1/services/FALCON/configuration/falcon-runtime.properties.xml b/ambari-server/src/main/resources/stacks/HDP/2.1/services/FALCON/configuration/falcon-runtime.properties.xml
deleted file mode 100644
index 94c8755..0000000
--- a/ambari-server/src/main/resources/stacks/HDP/2.1/services/FALCON/configuration/falcon-runtime.properties.xml
+++ /dev/null
@@ -1,47 +0,0 @@
-<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
-<!--
-/**
- * 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.
- */
--->
-<configuration supports_final="false">
- <property>
- <name>*.domain</name>
- <value>${falcon.app.type}</value>
- <description></description>
- </property>
- <property>
- <name>*.log.cleanup.frequency.minutes.retention</name>
- <value>hours(6)</value>
- <description></description>
- </property>
- <property>
- <name>*.log.cleanup.frequency.hours.retention</name>
- <value>minutes(1)</value>
- <description></description>
- </property>
- <property>
- <name>*.log.cleanup.frequency.days.retention</name>
- <value>days(7)</value>
- <description></description>
- </property>
- <property>
- <name>*.log.cleanup.frequency.months.retention</name>
- <value>months(3)</value>
- <description></description>
- </property>
-</configuration>
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/stacks/HDP/2.1/services/FALCON/configuration/falcon-startup.properties.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.1/services/FALCON/configuration/falcon-startup.properties.xml b/ambari-server/src/main/resources/stacks/HDP/2.1/services/FALCON/configuration/falcon-startup.properties.xml
deleted file mode 100644
index 7459429..0000000
--- a/ambari-server/src/main/resources/stacks/HDP/2.1/services/FALCON/configuration/falcon-startup.properties.xml
+++ /dev/null
@@ -1,207 +0,0 @@
-<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
-<!--
-/**
- * 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.
- */
--->
-<configuration supports_final="false">
- <!--advanced properties-->
- <property>
- <name>*.workflow.engine.impl</name>
- <value>org.apache.falcon.workflow.engine.OozieWorkflowEngine</value>
- <description></description>
- </property>
- <property>
- <name>*.oozie.process.workflow.builder</name>
- <value>org.apache.falcon.workflow.OozieProcessWorkflowBuilder</value>
- <description></description>
- </property>
- <property>
- <name>*.oozie.feed.workflow.builder</name>
- <value>org.apache.falcon.workflow.OozieFeedWorkflowBuilder</value>
- <description></description>
- </property>
- <property>
- <name>*.SchedulableEntityManager.impl</name>
- <value>org.apache.falcon.resource.SchedulableEntityManager</value>
- <description></description>
- </property>
- <property>
- <name>*.ConfigSyncService.impl</name>
- <value>org.apache.falcon.resource.ConfigSyncService</value>
- <description></description>
- </property>
- <property>
- <name>*.ProcessInstanceManager.impl</name>
- <value>org.apache.falcon.resource.InstanceManager</value>
- <description></description>
- </property>
- <property>
- <name>*.catalog.service.impl</name>
- <value>org.apache.falcon.catalog.HiveCatalogService</value>
- <description></description>
- </property>
- <property>
- <name>*.application.services</name>
- <value>org.apache.falcon.security.AuthenticationInitializationService,\
- org.apache.falcon.service.ProcessSubscriberService,\
- org.apache.falcon.entity.store.ConfigurationStore,\
- org.apache.falcon.rerun.service.RetryService,\
- org.apache.falcon.rerun.service.LateRunService,\
- org.apache.falcon.service.LogCleanupService
- </value>
- <description></description>
- </property>
- <property>
- <name>*.configstore.listeners</name>
- <value>org.apache.falcon.entity.v0.EntityGraph,\
- org.apache.falcon.entity.ColoClusterRelation,\
- org.apache.falcon.group.FeedGroupMap,\
- org.apache.falcon.service.SharedLibraryHostingService
- </value>
- <description></description>
- </property>
- <property>
- <name>*.broker.impl.class</name>
- <value>org.apache.activemq.ActiveMQConnectionFactory</value>
- <description></description>
- </property>
- <property>
- <name>*.shared.libs</name>
- <value>activemq-core,ant,geronimo-j2ee-management,hadoop-distcp,jms,json-simple,oozie-client,spring-jms</value>
- <description></description>
- </property>
- <!--common properties-->
- <property>
- <name>*.domain</name>
- <value>${falcon.app.type}</value>
- <description></description>
- </property>
- <property>
- <name>*.config.store.uri</name>
- <value>file:///hadoop/falcon/store</value>
- <description>Location to store user entity configurations</description>
- </property>
- <property>
- <name>*.system.lib.location</name>
- <value>${falcon.home}/server/webapp/${falcon.app.type}/WEB-INF/lib</value>
- <description>Location of libraries that is shipped to Hadoop</description>
- </property>
- <property>
- <name>*.retry.recorder.path</name>
- <value>${falcon.log.dir}/retry</value>
- <description></description>
- </property>
- <property>
- <name>*.falcon.cleanup.service.frequency</name>
- <value>days(1)</value>
- <description></description>
- </property>
- <property>
- <name>*.broker.url</name>
- <value>tcp://localhost:61616</value>
- <description>Default Active MQ url</description>
- </property>
- <property>
- <name>*.broker.ttlInMins</name>
- <value>4320</value>
- <description></description>
- </property>
- <property>
- <name>*.entity.topic</name>
- <value>FALCON.ENTITY.TOPIC</value>
- <description></description>
- </property>
- <property>
- <name>*.max.retry.failure.count</name>
- <value>1</value>
- <description></description>
- </property>
- <property>
- <name>*.internal.queue.size</name>
- <value>1000</value>
- <description></description>
- </property>
- <!--properties without default values-->
- <property>
- <name>*.falcon.http.authentication.cookie.domain</name>
- <value>EXAMPLE.COM</value>
- <description></description>
- </property>
- <property>
- <name>*.falcon.http.authentication.blacklisted.users</name>
- <value></value>
- <description>Comma separated list of black listed users</description>
- </property>
- <!--authentication properties-->
- <property>
- <name>*.falcon.authentication.type</name>
- <value>simple</value>
- <description></description>
- </property>
- <property>
- <name>*.falcon.http.authentication.type</name>
- <value>simple</value>
- <description></description>
- </property>
- <property>
- <name>*.falcon.http.authentication.token.validity</name>
- <value>36000</value>
- <description></description>
- </property>
- <property>
- <name>*.falcon.http.authentication.signature.secret</name>
- <value>falcon</value>
- <description></description>
- </property>
- <property>
- <name>*.falcon.http.authentication.simple.anonymous.allowed</name>
- <value>true</value>
- <description>Indicates if anonymous requests are allowed when using 'simple' authentication</description>
- </property>
- <property>
- <name>*.falcon.http.authentication.kerberos.name.rules</name>
- <value>DEFAULT</value>
- <description>The kerberos names rules is to resolve kerberos principal names, refer to Hadoop's KerberosName for more details.</description>
- </property>
- <!--kerberos params, must be set during security enabling-->
- <property>
- <name>*.falcon.service.authentication.kerberos.principal</name>
- <value>falcon/_HOST@EXAMPLE.COM</value>
- <description></description>
- </property>
- <property>
- <name>*.falcon.service.authentication.kerberos.keytab</name>
- <value>/etc/security/keytabs/falcon.service.keytab</value>
- <description></description>
- </property>
- <property>
- <name>*.dfs.namenode.kerberos.principal</name>
- <value>nn/_HOST@EXAMPLE.COM</value>
- <description>name node principal to talk to config store</description>
- </property>
- <property>
- <name>*.falcon.http.authentication.kerberos.principal</name>
- <value>HTTP/_HOST@EXAMPLE.COM</value>
- <description>Indicates the Kerberos principal to be used for HTTP endpoint</description>
- </property>
- <property>
- <name>*.falcon.http.authentication.kerberos.keytab</name>
- <value>/etc/security/keytabs/spnego.service.keytab</value>
- <description>Location of the keytab file with the credentials for the HTTP principal</description>
- </property>
-</configuration>
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/stacks/HDP/2.1/services/FALCON/configuration/oozie-site.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.1/services/FALCON/configuration/oozie-site.xml b/ambari-server/src/main/resources/stacks/HDP/2.1/services/FALCON/configuration/oozie-site.xml
deleted file mode 100644
index c6962f3..0000000
--- a/ambari-server/src/main/resources/stacks/HDP/2.1/services/FALCON/configuration/oozie-site.xml
+++ /dev/null
@@ -1,176 +0,0 @@
-<?xml version="1.0"?>
-<!--
- 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.
--->
-
-<configuration supports_final="true">
- <property>
- <name>oozie.service.ELService.ext.functions.coord-job-submit-instances</name>
- <value>
- now=org.apache.oozie.extensions.OozieELExtensions#ph1_now_echo,
- today=org.apache.oozie.extensions.OozieELExtensions#ph1_today_echo,
- yesterday=org.apache.oozie.extensions.OozieELExtensions#ph1_yesterday_echo,
- currentMonth=org.apache.oozie.extensions.OozieELExtensions#ph1_currentMonth_echo,
- lastMonth=org.apache.oozie.extensions.OozieELExtensions#ph1_lastMonth_echo,
- currentYear=org.apache.oozie.extensions.OozieELExtensions#ph1_currentYear_echo,
- lastYear=org.apache.oozie.extensions.OozieELExtensions#ph1_lastYear_echo,
- formatTime=org.apache.oozie.coord.CoordELFunctions#ph1_coord_formatTime_echo,
- latest=org.apache.oozie.coord.CoordELFunctions#ph2_coord_latest_echo,
- future=org.apache.oozie.coord.CoordELFunctions#ph2_coord_future_echo
- </value>
- <description>
- EL functions declarations, separated by commas, format is [PREFIX:]NAME=CLASS#METHOD.
- This property is a convenience property to add extensions to the built in executors without having to
- include all the built in ones.
- </description>
- </property>
-
- <property>
- <name>oozie.service.ELService.ext.functions.coord-action-create-inst</name>
- <value>
- now=org.apache.oozie.extensions.OozieELExtensions#ph2_now_inst,
- today=org.apache.oozie.extensions.OozieELExtensions#ph2_today_inst,
- yesterday=org.apache.oozie.extensions.OozieELExtensions#ph2_yesterday_inst,
- currentMonth=org.apache.oozie.extensions.OozieELExtensions#ph2_currentMonth_inst,
- lastMonth=org.apache.oozie.extensions.OozieELExtensions#ph2_lastMonth_inst,
- currentYear=org.apache.oozie.extensions.OozieELExtensions#ph2_currentYear_inst,
- lastYear=org.apache.oozie.extensions.OozieELExtensions#ph2_lastYear_inst,
- latest=org.apache.oozie.coord.CoordELFunctions#ph2_coord_latest_echo,
- future=org.apache.oozie.coord.CoordELFunctions#ph2_coord_future_echo,
- formatTime=org.apache.oozie.coord.CoordELFunctions#ph2_coord_formatTime,
- user=org.apache.oozie.coord.CoordELFunctions#coord_user
- </value>
- <description>
- EL functions declarations, separated by commas, format is [PREFIX:]NAME=CLASS#METHOD.
- This property is a convenience property to add extensions to the built in executors without having to
- include all the built in ones.
- </description>
- </property>
-
- <property>
- <name>oozie.service.ELService.ext.functions.coord-action-create</name>
- <value>
- now=org.apache.oozie.extensions.OozieELExtensions#ph2_now,
- today=org.apache.oozie.extensions.OozieELExtensions#ph2_today,
- yesterday=org.apache.oozie.extensions.OozieELExtensions#ph2_yesterday,
- currentMonth=org.apache.oozie.extensions.OozieELExtensions#ph2_currentMonth,
- lastMonth=org.apache.oozie.extensions.OozieELExtensions#ph2_lastMonth,
- currentYear=org.apache.oozie.extensions.OozieELExtensions#ph2_currentYear,
- lastYear=org.apache.oozie.extensions.OozieELExtensions#ph2_lastYear,
- latest=org.apache.oozie.coord.CoordELFunctions#ph2_coord_latest_echo,
- future=org.apache.oozie.coord.CoordELFunctions#ph2_coord_future_echo,
- formatTime=org.apache.oozie.coord.CoordELFunctions#ph2_coord_formatTime,
- user=org.apache.oozie.coord.CoordELFunctions#coord_user
- </value>
- <description>
- EL functions declarations, separated by commas, format is [PREFIX:]NAME=CLASS#METHOD.
- This property is a convenience property to add extensions to the built in executors without having to
- include all the built in ones.
- </description>
- </property>
-
- <property>
- <name>oozie.service.ELService.ext.functions.coord-job-submit-data</name>
- <value>
- now=org.apache.oozie.extensions.OozieELExtensions#ph1_now_echo,
- today=org.apache.oozie.extensions.OozieELExtensions#ph1_today_echo,
- yesterday=org.apache.oozie.extensions.OozieELExtensions#ph1_yesterday_echo,
- currentMonth=org.apache.oozie.extensions.OozieELExtensions#ph1_currentMonth_echo,
- lastMonth=org.apache.oozie.extensions.OozieELExtensions#ph1_lastMonth_echo,
- currentYear=org.apache.oozie.extensions.OozieELExtensions#ph1_currentYear_echo,
- lastYear=org.apache.oozie.extensions.OozieELExtensions#ph1_lastYear_echo,
- dataIn=org.apache.oozie.extensions.OozieELExtensions#ph1_dataIn_echo,
- instanceTime=org.apache.oozie.coord.CoordELFunctions#ph1_coord_nominalTime_echo_wrap,
- formatTime=org.apache.oozie.coord.CoordELFunctions#ph1_coord_formatTime_echo,
- dateOffset=org.apache.oozie.coord.CoordELFunctions#ph1_coord_dateOffset_echo,
- user=org.apache.oozie.coord.CoordELFunctions#coord_user
- </value>
- <description>
- EL constant declarations, separated by commas, format is [PREFIX:]NAME=CLASS#CONSTANT.
- This property is a convenience property to add extensions to the built in executors without having to
- include all the built in ones.
- </description>
- </property>
-
- <property>
- <name>oozie.service.ELService.ext.functions.coord-action-start</name>
- <value>
- now=org.apache.oozie.extensions.OozieELExtensions#ph2_now,
- today=org.apache.oozie.extensions.OozieELExtensions#ph2_today,
- yesterday=org.apache.oozie.extensions.OozieELExtensions#ph2_yesterday,
- currentMonth=org.apache.oozie.extensions.OozieELExtensions#ph2_currentMonth,
- lastMonth=org.apache.oozie.extensions.OozieELExtensions#ph2_lastMonth,
- currentYear=org.apache.oozie.extensions.OozieELExtensions#ph2_currentYear,
- lastYear=org.apache.oozie.extensions.OozieELExtensions#ph2_lastYear,
- latest=org.apache.oozie.coord.CoordELFunctions#ph3_coord_latest,
- future=org.apache.oozie.coord.CoordELFunctions#ph3_coord_future,
- dataIn=org.apache.oozie.extensions.OozieELExtensions#ph3_dataIn,
- instanceTime=org.apache.oozie.coord.CoordELFunctions#ph3_coord_nominalTime,
- dateOffset=org.apache.oozie.coord.CoordELFunctions#ph3_coord_dateOffset,
- formatTime=org.apache.oozie.coord.CoordELFunctions#ph3_coord_formatTime,
- user=org.apache.oozie.coord.CoordELFunctions#coord_user
- </value>
- <description>
- EL functions declarations, separated by commas, format is [PREFIX:]NAME=CLASS#METHOD.
- This property is a convenience property to add extensions to the built in executors without having to
- include all the built in ones.
- </description>
- </property>
-
- <property>
- <name>oozie.service.ELService.ext.functions.coord-sla-submit</name>
- <value>
- instanceTime=org.apache.oozie.coord.CoordELFunctions#ph1_coord_nominalTime_echo_fixed,
- user=org.apache.oozie.coord.CoordELFunctions#coord_user
- </value>
- <description>
- EL functions declarations, separated by commas, format is [PREFIX:]NAME=CLASS#METHOD.
- </description>
- </property>
-
- <property>
- <name>oozie.service.ELService.ext.functions.coord-sla-create</name>
- <value>
- instanceTime=org.apache.oozie.coord.CoordELFunctions#ph2_coord_nominalTime,
- user=org.apache.oozie.coord.CoordELFunctions#coord_user
- </value>
- <description>
- EL functions declarations, separated by commas, format is [PREFIX:]NAME=CLASS#METHOD.
- </description>
- </property>
-
- <property>
- <name>oozie.service.HadoopAccessorService.supported.filesystems</name>
- <value>*</value>
- <description>
- Enlist the different filesystems supported for federation. If wildcard "*" is specified, then ALL file schemes will be allowed.
- </description>
- </property>
-
- <!--web ui should add following properties to oozie site accordingly to FALCON_USER-->
- <!--<property>-->
- <!--<name>oozie.service.ProxyUserService.proxyuser.#FALCON_USER#.hosts</name>-->
- <!--<value>*</value>-->
- <!--<description>Falcon proxyuser hosts</description>-->
- <!--</property>-->
-
- <!--<property>-->
- <!--<name>oozie.service.ProxyUserService.proxyuser.#FALCON_USER#.groups</name>-->
- <!--<value>*</value>-->
- <!--<description>Falcon proxyuser groups</description>-->
- <!--</property>-->
-</configuration>
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/stacks/HDP/2.1/services/FALCON/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.1/services/FALCON/metainfo.xml b/ambari-server/src/main/resources/stacks/HDP/2.1/services/FALCON/metainfo.xml
index 78336e6..78cf5d4 100644
--- a/ambari-server/src/main/resources/stacks/HDP/2.1/services/FALCON/metainfo.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/2.1/services/FALCON/metainfo.xml
@@ -20,98 +20,7 @@
<services>
<service>
<name>FALCON</name>
- <displayName>Falcon</displayName>
- <comment>Data management and processing platform</comment>
- <version>0.5.0.2.1</version>
- <components>
- <component>
- <name>FALCON_CLIENT</name>
- <displayName>Falcon Client</displayName>
- <category>CLIENT</category>
- <cardinality>1+</cardinality>
- <commandScript>
- <script>scripts/falcon_client.py</script>
- <scriptType>PYTHON</scriptType>
- <timeout>600</timeout>
- </commandScript>
- <configFiles>
- <configFile>
- <type>env</type>
- <fileName>falcon-env.sh</fileName>
- <dictionaryName>falcon-env</dictionaryName>
- </configFile>
- <configFile>
- <type>properties</type>
- <fileName>runtime.properties</fileName>
- <dictionaryName>falcon-runtime.properties</dictionaryName>
- </configFile>
- <configFile>
- <type>properties</type>
- <fileName>startup.properties</fileName>
- <dictionaryName>falcon-startup.properties</dictionaryName>
- </configFile>
- </configFiles>
- </component>
- <component>
- <name>FALCON_SERVER</name>
- <displayName>Falcon Server</displayName>
- <category>MASTER</category>
- <cardinality>1</cardinality>
- <dependencies>
- <dependency>
- <name>OOZIE/OOZIE_SERVER</name>
- <scope>cluster</scope>
- <auto-deploy>
- <enabled>true</enabled>
- </auto-deploy>
- </dependency>
- <dependency>
- <name>OOZIE/OOZIE_CLIENT</name>
- <scope>cluster</scope>
- <auto-deploy>
- <enabled>true</enabled>
- </auto-deploy>
- </dependency>
- </dependencies>
- <commandScript>
- <script>scripts/falcon_server.py</script>
- <scriptType>PYTHON</scriptType>
- <timeout>600</timeout>
- </commandScript>
- </component>
- </components>
-
- <osSpecifics>
- <osSpecific>
- <osFamily>any</osFamily>
- <packages>
- <package>
- <name>falcon</name>
- </package>
- </packages>
- </osSpecific>
- </osSpecifics>
-
- <commandScript>
- <script>scripts/service_check.py</script>
- <scriptType>PYTHON</scriptType>
- <timeout>300</timeout>
- </commandScript>
-
- <requiredServices>
- <service>OOZIE</service>
- </requiredServices>
-
- <configuration-dependencies>
- <config-type>falcon-env</config-type>
- <config-type>falcon-startup.properties</config-type>
- <config-type>falcon-runtime.properties</config-type>
- </configuration-dependencies>
-
- <excluded-config-types>
- <config-type>oozie-site</config-type>
- </excluded-config-types>
-
+ <extends>common-services/FALCON/0.5.0.2.1</extends>
</service>
</services>
</metainfo>
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/stacks/HDP/2.1/services/FALCON/package/scripts/falcon.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.1/services/FALCON/package/scripts/falcon.py b/ambari-server/src/main/resources/stacks/HDP/2.1/services/FALCON/package/scripts/falcon.py
deleted file mode 100644
index a903e5c..0000000
--- a/ambari-server/src/main/resources/stacks/HDP/2.1/services/FALCON/package/scripts/falcon.py
+++ /dev/null
@@ -1,124 +0,0 @@
-"""
-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 resource_management import *
-import os.path
-
-def falcon(type, action = None):
- import params
- if action == 'config':
- Directory(params.falcon_pid_dir,
- owner=params.falcon_user
- )
- Directory(params.falcon_log_dir,
- owner=params.falcon_user,
- recursive=True
- )
- Directory(params.falcon_webapp_dir,
- owner=params.falcon_user
- )
- Directory(params.falcon_home,
- owner=params.falcon_user
- )
- Directory(params.falcon_conf_dir_prefix,
- mode=0755
- )
- Directory(params.falcon_conf_dir,
- owner=params.falcon_user,
- recursive=True
- )
- File(params.falcon_conf_dir + '/falcon-env.sh',
- content=InlineTemplate(params.falcon_env_sh_template),
- owner=params.falcon_user
- )
- File(params.falcon_conf_dir + '/client.properties',
- content=Template('client.properties.j2'),
- mode=0644,
- owner=params.falcon_user
- )
- PropertiesFile(params.falcon_conf_dir + '/runtime.properties',
- properties=params.falcon_runtime_properties,
- mode=0644,
- owner=params.falcon_user
- )
- PropertiesFile(params.falcon_conf_dir + '/startup.properties',
- properties=params.falcon_startup_properties,
- mode=0644,
- owner=params.falcon_user
- )
-
- if params.falcon_graph_storage_directory:
- Directory(params.falcon_graph_storage_directory,
- owner=params.falcon_user,
- group=params.user_group,
- mode=0775,
- recursive=True,
- recursive_permission=True
- )
-
- if params.falcon_graph_serialize_path:
- Directory(params.falcon_graph_serialize_path,
- owner=params.falcon_user,
- group=params.user_group,
- mode=0775,
- recursive=True,
- recursive_permission=True
- )
-
- if type == 'server':
- if action == 'config':
- if params.store_uri[0:4] == "hdfs":
- params.HdfsDirectory(params.store_uri,
- action="create_delayed",
- owner=params.falcon_user,
- mode=0755
- )
- params.HdfsDirectory(params.flacon_apps_dir,
- action="create_delayed",
- owner=params.falcon_user,
- mode=0777#TODO change to proper mode
- )
- params.HdfsDirectory(None, action="create")
- Directory(params.falcon_local_dir,
- owner=params.falcon_user,
- recursive=True,
- recursive_permission=True
- )
- if params.falcon_embeddedmq_enabled == True:
- Directory(os.path.abspath(os.path.join(params.falcon_embeddedmq_data, "..")),
- owner=params.falcon_user
- )
- Directory(params.falcon_embeddedmq_data,
- owner=params.falcon_user,
- recursive=True
- )
-
- if action == 'start':
- Execute(format('{falcon_home}/bin/falcon-start -port {falcon_port}'),
- user=params.falcon_user,
- path=params.hadoop_bin_dir
- )
- if action == 'stop':
- Execute(format('{falcon_home}/bin/falcon-stop'),
- user=params.falcon_user,
- path=params.hadoop_bin_dir
- )
- File(params.server_pid_file,
- action='delete'
- )
http://git-wip-us.apache.org/repos/asf/ambari/blob/dc534389/ambari-server/src/main/resources/stacks/HDP/2.1/services/FALCON/package/scripts/falcon_client.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.1/services/FALCON/package/scripts/falcon_client.py b/ambari-server/src/main/resources/stacks/HDP/2.1/services/FALCON/package/scripts/falcon_client.py
deleted file mode 100644
index fd8c005..0000000
--- a/ambari-server/src/main/resources/stacks/HDP/2.1/services/FALCON/package/scripts/falcon_client.py
+++ /dev/null
@@ -1,38 +0,0 @@
-"""
-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 resource_management import *
-from falcon import falcon
-
-class FalconClient(Script):
- def install(self, env):
- self.install_packages(env)
- self.configure(env)
-
- def configure(self, env):
- import params
-
- env.set_params(params)
- falcon('client', action='config')
-
- def status(self, env):
- raise ClientComponentHasNoStatus()
-
-if __name__ == "__main__":
- FalconClient().execute()