You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by ao...@apache.org on 2013/12/25 19:09:42 UTC

[1/3] AMBARI-4176. HBase on HDP1. Rewrite to resource management. (aonishuk)

Updated Branches:
  refs/heads/trunk 47d2ff693 -> aefbc6142


http://git-wip-us.apache.org/repos/asf/ambari/blob/aefbc614/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/files/hbaseSmokeVerify.sh
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/files/hbaseSmokeVerify.sh b/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/files/hbaseSmokeVerify.sh
new file mode 100644
index 0000000..39fe6e5
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/files/hbaseSmokeVerify.sh
@@ -0,0 +1,32 @@
+#
+#
+# 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.
+#
+#
+conf_dir=$1
+data=$2
+echo "scan 'ambarismoketest'" | hbase --config $conf_dir shell > /tmp/hbase_chk_verify
+cat /tmp/hbase_chk_verify
+echo "Looking for $data"
+grep -q $data /tmp/hbase_chk_verify
+if [ "$?" -ne 0 ]
+then
+  exit 1
+fi
+
+grep -q '1 row(s)' /tmp/hbase_chk_verify
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/aefbc614/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/scripts/__init__.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/scripts/__init__.py b/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/scripts/__init__.py
new file mode 100644
index 0000000..5561e10
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/scripts/__init__.py
@@ -0,0 +1,19 @@
+#!/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.
+
+"""

http://git-wip-us.apache.org/repos/asf/ambari/blob/aefbc614/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/scripts/functions.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/scripts/functions.py b/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/scripts/functions.py
new file mode 100644
index 0000000..80b49e6
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/scripts/functions.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.
+
+"""
+
+import os
+import re
+import math
+import datetime
+
+from resource_management.core.shell import checked_call
+
+def calc_xmn_from_xms(heapsize_str, xmn_percent, xmn_max):
+  """
+  @param heapsize_str: str (e.g '1000m')
+  @param xmn_percent: float (e.g 0.2)
+  @param xmn_max: integer (e.g 512)
+  """
+  heapsize = int(re.search('\d+',heapsize_str).group(0))
+  heapsize_unit = re.search('\D+',heapsize_str).group(0)
+  xmn_val = int(math.floor(heapsize*xmn_percent))
+  xmn_val -= xmn_val % 8
+  
+  result_xmn_val = xmn_max if xmn_val > xmn_max else xmn_val
+  return str(result_xmn_val) + heapsize_unit
+
+def get_unique_id_and_date():
+    code, out = checked_call("hostid")
+    id = out.strip()
+    
+    now = datetime.datetime.now()
+    date = now.strftime("%M%d%y")
+
+    return "id{id}_date{date}".format(id=id, date=date)
+  
+def get_kinit_path(pathes_list):
+  """
+  @param pathes: comma separated list
+  """
+  kinit_path = ""
+  
+  for x in pathes_list:
+    if not x:
+      continue
+    
+    path = os.path.join(x,"kinit")
+
+    if os.path.isfile(path):
+      kinit_path = path
+      break
+    
+  return kinit_path

http://git-wip-us.apache.org/repos/asf/ambari/blob/aefbc614/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/scripts/hbase.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/scripts/hbase.py b/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/scripts/hbase.py
new file mode 100644
index 0000000..bd33463
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/scripts/hbase.py
@@ -0,0 +1,91 @@
+#!/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 sys
+
+def hbase(type=None # 'master' or 'regionserver' or 'client'
+              ):
+  import params
+  
+  Directory( params.conf_dir,
+      owner = params.hbase_user,
+      group = params.user_group,
+      recursive = True
+  )
+  
+  XmlConfig( "hbase-site.xml",
+            conf_dir = params.conf_dir,
+            configurations = params.config['configurations']['hbase-site'],
+            owner = params.hbase_user,
+            group = params.user_group
+  )
+
+  XmlConfig( "hdfs-site.xml",
+            conf_dir = params.conf_dir,
+            configurations = params.config['configurations']['hdfs-site'],
+            owner = params.hbase_user,
+            group = params.user_group
+  )
+  
+  if 'hbase-policy' in params.config['configurations']:
+    XmlConfig( "hbase-policy.xml",
+      configurations = params.config['configurations']['hbase-policy'],
+      owner = params.hbase_user,
+      group = params.user_group
+    )
+  # Manually overriding ownership of file installed by hadoop package
+  else: 
+    File( format("{conf_dir}/hbase-policy.xml"),
+      owner = params.hbase_user,
+      group = params.user_group
+    )
+  
+  hbase_TemplateConfig( 'hbase-env.sh')     
+       
+  hbase_TemplateConfig( params.metric_prop_file_name,
+    tag = 'GANGLIA-MASTER' if type == 'master' else 'GANGLIA-RS'
+  )
+
+  hbase_TemplateConfig( 'regionservers')
+
+  if params.security_enabled:
+    hbase_TemplateConfig( format("hbase_{type}_jaas.conf"))
+  
+  if type != "client":
+    Directory( params.pid_dir,
+      owner = params.hbase_user,
+      recursive = True
+    )
+  
+    Directory ( [params.tmp_dir, params.log_dir],
+      owner = params.hbase_user,
+      recursive = True
+    )    
+
+def hbase_TemplateConfig(name, 
+                         tag=None
+                         ):
+  import params
+
+  TemplateConfig( format("{conf_dir}/{name}"),
+      owner = params.hbase_user,
+      template_tag = tag
+  )

http://git-wip-us.apache.org/repos/asf/ambari/blob/aefbc614/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/scripts/hbase_client.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/scripts/hbase_client.py b/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/scripts/hbase_client.py
new file mode 100644
index 0000000..0f2a1bc
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/scripts/hbase_client.py
@@ -0,0 +1,52 @@
+#!/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 hbase import hbase
+
+         
+class HbaseClient(Script):
+  def install(self, env):
+    self.install_packages(env)
+    self.configure(env)
+    
+  def configure(self, env):
+    import params
+    env.set_params(params)
+    
+    hbase(type='client')
+
+  def status(self, env):
+    raise ClientComponentHasNoStatus()
+
+#for tests
+def main():
+  command_type = 'install'
+  command_data_file = '/root/workspace/HBase/input.json'
+  basedir = '/root/workspace/HBase/'
+  stdoutfile = '/1.txt'
+  sys.argv = ["", command_type, command_data_file, basedir, stdoutfile]
+  
+  HbaseClient().execute()
+  
+if __name__ == "__main__":
+  HbaseClient().execute()

http://git-wip-us.apache.org/repos/asf/ambari/blob/aefbc614/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/scripts/hbase_master.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/scripts/hbase_master.py b/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/scripts/hbase_master.py
new file mode 100644
index 0000000..d94b4b4
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/scripts/hbase_master.py
@@ -0,0 +1,74 @@
+#!/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 hbase import hbase
+from hbase_service import hbase_service
+
+         
+class HbaseMaster(Script):
+  def install(self, env):
+    self.install_packages(env)
+    self.configure(env)
+    
+  def configure(self, env):
+    import params
+    env.set_params(params)
+
+    hbase(type='master')
+    
+  def start(self, env):
+    import params
+    env.set_params(params)
+    self.configure(env) # for security
+
+    hbase_service( 'master',
+      action = 'start'
+    )
+    
+  def stop(self, env):
+    import params
+    env.set_params(params)
+
+    hbase_service( 'master',
+      action = 'stop'
+    )
+
+  def status(self, env):
+    import status_params
+    env.set_params(status_params)
+    pid_file = format("{pid_dir}/hbase-hbase-master.pid")
+    check_process_status(pid_file)
+
+def main():
+  command_type = sys.argv[1] if len(sys.argv)>1 else "install"
+  print "Running "+command_type
+  command_data_file = '/var/lib/ambari-agent/data/command-3.json'
+  basedir = '/root/ambari/ambari-server/src/main/resources/stacks/HDP/2.0._/services/HBASE/package'
+  stroutputf = '/1.txt'
+  sys.argv = ["", command_type, command_data_file, basedir, stroutputf]
+  
+  HbaseMaster().execute()
+  
+if __name__ == "__main__":
+  HbaseMaster().execute()
+  #main()

http://git-wip-us.apache.org/repos/asf/ambari/blob/aefbc614/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/scripts/hbase_regionserver.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/scripts/hbase_regionserver.py b/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/scripts/hbase_regionserver.py
new file mode 100644
index 0000000..2d91e75
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/scripts/hbase_regionserver.py
@@ -0,0 +1,75 @@
+#!/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 hbase import hbase
+from hbase_service import hbase_service
+
+         
+class HbaseRegionServer(Script):
+  def install(self, env):
+    self.install_packages(env)
+    self.configure(env)
+    
+  def configure(self, env):
+    import params
+    env.set_params(params)
+
+    hbase(type='regionserver')
+      
+  def start(self, env):
+    import params
+    env.set_params(params)
+    self.configure(env) # for security
+
+    hbase_service( 'regionserver',
+      action = 'start'
+    )
+    
+  def stop(self, env):
+    import params
+    env.set_params(params)
+
+    hbase_service( 'regionserver',
+      action = 'stop'
+    )
+
+  def status(self, env):
+    import status_params
+    env.set_params(status_params)
+    pid_file = format("{pid_dir}/hbase-hbase-regionserver.pid")
+    check_process_status(pid_file)
+    
+  def decommission(self, env):
+    print "Decommission not yet implemented!"
+    
+def main():
+  command_type = sys.argv[1] if len(sys.argv)>1 else "stop"
+  print "Running "+command_type
+  command_data_file = '/root/workspace/HBase/input.json'
+  basedir = '/root/workspace/HBase/main'
+  sys.argv = ["", command_type, command_data_file, basedir]
+  
+  HbaseRegionServer().execute()
+  
+if __name__ == "__main__":
+  HbaseRegionServer().execute()

http://git-wip-us.apache.org/repos/asf/ambari/blob/aefbc614/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/scripts/hbase_service.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/scripts/hbase_service.py b/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/scripts/hbase_service.py
new file mode 100644
index 0000000..7a1248b
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/scripts/hbase_service.py
@@ -0,0 +1,46 @@
+#!/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 hbase_service(
+  name,
+  action = 'start'): # 'start' or 'stop' or 'status'
+    
+    import params
+  
+    role = name
+    cmd = format("{daemon_script} --config {conf_dir}")
+    pid_file = format("{pid_dir}/hbase-hbase-{role}.pid")
+    
+    daemon_cmd = None
+    no_op_test = None
+    
+    if action == 'start':
+      daemon_cmd = format("{cmd} start {role}")
+      no_op_test = format("ls {pid_file} >/dev/null 2>&1 && ps `cat {pid_file}` >/dev/null 2>&1")
+    elif action == 'stop':
+      daemon_cmd = format("{cmd} stop {role} && rm -f {pid_file}")
+
+    if daemon_cmd is not None:
+      Execute ( daemon_cmd,
+        not_if = no_op_test,
+        user = params.hbase_user
+      )

http://git-wip-us.apache.org/repos/asf/ambari/blob/aefbc614/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/scripts/params.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/scripts/params.py b/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/scripts/params.py
new file mode 100644
index 0000000..6820c19
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/scripts/params.py
@@ -0,0 +1,81 @@
+#!/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 functions
+import status_params
+
+# server configurations
+config = Script.get_config()
+
+conf_dir = "/etc/hbase/conf"
+daemon_script = "/usr/lib/hbase/bin/hbase-daemon.sh"
+
+hbase_user = config['configurations']['global']['hbase_user']
+smokeuser = config['configurations']['global']['smokeuser']
+security_enabled = config['configurations']['global']['security_enabled']
+user_group = config['configurations']['global']['user_group']
+
+# this is "hadoop-metrics2-hbase.properties" for 2.x stacks
+metric_prop_file_name = "hadoop-metrics.properties" 
+
+# not supporting 32 bit jdk.
+java64_home = config['configurations']['global']['java64_home']
+
+log_dir = config['configurations']['global']['hbase_log_dir']
+master_heapsize = config['configurations']['global']['hbase_master_heapsize']
+
+regionserver_heapsize = config['configurations']['global']['hbase_regionserver_heapsize']
+regionserver_xmn_size = functions.calc_xmn_from_xms(regionserver_heapsize, 0.2, 512)
+
+pid_dir = status_params.pid_dir
+tmp_dir = config['configurations']['hbase-site']['hbase.tmp.dir']
+
+client_jaas_config_file = default('hbase_client_jaas_config_file', format("{conf_dir}/hbase_client_jaas.conf"))
+master_jaas_config_file = default('hbase_master_jaas_config_file', format("{conf_dir}/hbase_master_jaas.conf"))
+regionserver_jaas_config_file = default('hbase_regionserver_jaas_config_file', format("{conf_dir}/hbase_regionserver_jaas.conf"))
+ganglia_server_host = default('ganglia_server_host', "") # is not passed when ganglia is not present
+rs_hosts = default('hbase_rs_hosts', config['clusterHostInfo']['slave_hosts']) #if hbase_rs_hosts not given it is assumed that region servers on same nodes as slaves
+
+smoke_test_user = config['configurations']['global']['smokeuser']
+smokeuser_permissions = default('smokeuser_permissions', "RWXCA")
+service_check_data = get_unique_id_and_date()
+
+if security_enabled:
+  
+  _use_hostname_in_principal = default('instance_name', True)
+  _master_primary_name = config['configurations']['global']['hbase_master_primary_name']
+  _hostname = config['hostname']
+  _kerberos_domain = config['configurations']['global']['kerberos_domain']
+  _master_principal_name = config['configurations']['global']['hbase_master_principal_name']
+  _regionserver_primary_name = config['configurations']['global']['hbase_regionserver_primary_name']
+  
+  if _use_hostname_in_principal:
+    master_jaas_princ = format("{_master_primary_name}/{_hostname}@{_kerberos_domain}")
+    regionserver_jaas_princ = format("{_regionserver_primary_name}/{_hostname}@{_kerberos_domain}")
+  else:
+    master_jaas_princ = format("{_master_principal_name}@{_kerberos_domain}")
+    regionserver_jaas_princ = format("{_regionserver_primary_name}@{_kerberos_domain}")
+    
+master_keytab_path = config['configurations']['hbase-site']['hbase.master.keytab.file']
+regionserver_keytab_path = config['configurations']['hbase-site']['hbase.regionserver.keytab.file']
+smoke_user_keytab = config['configurations']['global']['smokeuser_keytab']
+hbase_user_keytab = config['configurations']['global']['hbase_user_keytab']
+kinit_path_local = get_kinit_path([default("kinit_path_local",None), "/usr/bin", "/usr/kerberos/bin", "/usr/sbin"])

http://git-wip-us.apache.org/repos/asf/ambari/blob/aefbc614/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/scripts/service_check.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/scripts/service_check.py b/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/scripts/service_check.py
new file mode 100644
index 0000000..ff6d0ed
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/scripts/service_check.py
@@ -0,0 +1,89 @@
+#!/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 functions
+
+
+class HbaseServiceCheck(Script):
+  def service_check(self, env):
+    import params
+    env.set_params(params)
+    
+    output_file = "/apps/hbase/data/ambarismoketest"
+    test_cmd = format("fs -test -e {output_file}")
+    kinit_cmd = format("{kinit_path_local} -kt {smoke_user_keytab} {smoke_test_user};") if params.security_enabled else ""
+    hbase_servicecheck_file = '/tmp/hbase-smoke.sh'
+  
+    File( '/tmp/hbaseSmokeVerify.sh',
+      content = StaticFile("hbaseSmokeVerify.sh"),
+      mode = 0755
+    )
+  
+    File( hbase_servicecheck_file,
+      mode = 0755,
+      content = Template('hbase-smoke.sh.j2')
+    )
+    
+    if params.security_enabled:    
+      hbase_grant_premissions_file = '/tmp/hbase_grant_permissions.sh'
+      hbase_kinit_cmd = format("{kinit_path_local} -kt {hbase_user_keytab} {hbase_user};")
+      grantprivelegecmd = format("{hbase_kinit_cmd} hbase shell {hbase_grant_premissions_file}")
+  
+      File( hbase_grant_premissions_file,
+        owner   = params.hbase_user,
+        group   = params.user_group,
+        mode    = 0644,
+        content = Template('hbase_grant_permissions.j2')
+      )
+      
+      Execute( grantprivelegecmd,
+        user = params.hbase_user,
+      )
+
+    servicecheckcmd = format("{kinit_cmd} hbase --config {conf_dir} shell {hbase_servicecheck_file}")
+    smokeverifycmd = format("{kinit_cmd} /tmp/hbaseSmokeVerify.sh {conf_dir} {service_check_data}")
+  
+    Execute( servicecheckcmd,
+      tries     = 3,
+      try_sleep = 5,
+      user = params.smoke_test_user,
+      logoutput = True
+    )
+  
+    Execute ( smokeverifycmd,
+      tries     = 3,
+      try_sleep = 5,
+      user = params.smoke_test_user,
+      logoutput = True
+    )
+    
+def main():
+  import sys
+  command_type = 'perform'
+  command_data_file = '/root/workspace/HBase/input.json'
+  basedir = '/root/workspace/HBase/main'
+  sys.argv = ["", command_type, command_data_file, basedir]
+  
+  HbaseServiceCheck().execute()
+  
+if __name__ == "__main__":
+  HbaseServiceCheck().execute()
+  

http://git-wip-us.apache.org/repos/asf/ambari/blob/aefbc614/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/scripts/status_params.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/scripts/status_params.py b/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/scripts/status_params.py
new file mode 100644
index 0000000..c9b20ef
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/scripts/status_params.py
@@ -0,0 +1,25 @@
+#!/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']['global']['hbase_pid_dir']

http://git-wip-us.apache.org/repos/asf/ambari/blob/aefbc614/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/templates/hadoop-metrics.properties-GANGLIA-MASTER.j2
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/templates/hadoop-metrics.properties-GANGLIA-MASTER.j2 b/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/templates/hadoop-metrics.properties-GANGLIA-MASTER.j2
new file mode 100644
index 0000000..acad0e3
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/templates/hadoop-metrics.properties-GANGLIA-MASTER.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.
+
+# See http://wiki.apache.org/hadoop/GangliaMetrics
+#
+# Make sure you know whether you are using ganglia 3.0 or 3.1.
+# If 3.1, you will have to patch your hadoop instance with HADOOP-4675
+# And, yes, this file is named hadoop-metrics.properties rather than
+# hbase-metrics.properties because we're leveraging the hadoop metrics
+# package and hadoop-metrics.properties is an hardcoded-name, at least
+# for the moment.
+#
+# See also http://hadoop.apache.org/hbase/docs/current/metrics.html
+
+# HBase-specific configuration to reset long-running stats (e.g. compactions)
+# If this variable is left out, then the default is no expiration.
+hbase.extendedperiod = 3600
+
+# Configuration of the "hbase" context for ganglia
+# Pick one: Ganglia 3.0 (former) or Ganglia 3.1 (latter)
+# hbase.class=org.apache.hadoop.metrics.ganglia.GangliaContext
+hbase.class=org.apache.hadoop.metrics.ganglia.GangliaContext31
+hbase.period=10
+hbase.servers=<%=scope.function_hdp_host("ganglia_server_host")%>:8663
+
+# Configuration of the "jvm" context for ganglia
+# Pick one: Ganglia 3.0 (former) or Ganglia 3.1 (latter)
+# jvm.class=org.apache.hadoop.metrics.ganglia.GangliaContext
+jvm.class=org.apache.hadoop.metrics.ganglia.GangliaContext31
+jvm.period=10
+jvm.servers={{ganglia_server_host}}:8663
+
+# Configuration of the "rpc" context for ganglia
+# Pick one: Ganglia 3.0 (former) or Ganglia 3.1 (latter)
+# rpc.class=org.apache.hadoop.metrics.ganglia.GangliaContext
+rpc.class=org.apache.hadoop.metrics.ganglia.GangliaContext31
+rpc.period=10
+rpc.servers={{ganglia_server_host}}:8663

http://git-wip-us.apache.org/repos/asf/ambari/blob/aefbc614/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/templates/hadoop-metrics.properties-GANGLIA-RS.j2
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/templates/hadoop-metrics.properties-GANGLIA-RS.j2 b/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/templates/hadoop-metrics.properties-GANGLIA-RS.j2
new file mode 100644
index 0000000..b9d7e31
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/templates/hadoop-metrics.properties-GANGLIA-RS.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.
+
+# See http://wiki.apache.org/hadoop/GangliaMetrics
+#
+# Make sure you know whether you are using ganglia 3.0 or 3.1.
+# If 3.1, you will have to patch your hadoop instance with HADOOP-4675
+# And, yes, this file is named hadoop-metrics.properties rather than
+# hbase-metrics.properties because we're leveraging the hadoop metrics
+# package and hadoop-metrics.properties is an hardcoded-name, at least
+# for the moment.
+#
+# See also http://hadoop.apache.org/hbase/docs/current/metrics.html
+
+# HBase-specific configuration to reset long-running stats (e.g. compactions)
+# If this variable is left out, then the default is no expiration.
+hbase.extendedperiod = 3600
+
+# Configuration of the "hbase" context for ganglia
+# Pick one: Ganglia 3.0 (former) or Ganglia 3.1 (latter)
+# hbase.class=org.apache.hadoop.metrics.ganglia.GangliaContext
+hbase.class=org.apache.hadoop.metrics.ganglia.GangliaContext31
+hbase.period=10
+hbase.servers={{ganglia_server_host}}:8660
+
+# Configuration of the "jvm" context for ganglia
+# Pick one: Ganglia 3.0 (former) or Ganglia 3.1 (latter)
+# jvm.class=org.apache.hadoop.metrics.ganglia.GangliaContext
+jvm.class=org.apache.hadoop.metrics.ganglia.GangliaContext31
+jvm.period=10
+jvm.servers={{ganglia_server_host}}:8660
+
+# Configuration of the "rpc" context for ganglia
+# Pick one: Ganglia 3.0 (former) or Ganglia 3.1 (latter)
+# rpc.class=org.apache.hadoop.metrics.ganglia.GangliaContext
+rpc.class=org.apache.hadoop.metrics.ganglia.GangliaContext31
+rpc.period=10
+rpc.servers={{ganglia_server_host}}:8660

http://git-wip-us.apache.org/repos/asf/ambari/blob/aefbc614/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/templates/hadoop-metrics.properties.j2
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/templates/hadoop-metrics.properties.j2 b/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/templates/hadoop-metrics.properties.j2
new file mode 100644
index 0000000..1c75d15
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/templates/hadoop-metrics.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.
+
+# See http://wiki.apache.org/hadoop/GangliaMetrics
+#
+# Make sure you know whether you are using ganglia 3.0 or 3.1.
+# If 3.1, you will have to patch your hadoop instance with HADOOP-4675
+# And, yes, this file is named hadoop-metrics.properties rather than
+# hbase-metrics.properties because we're leveraging the hadoop metrics
+# package and hadoop-metrics.properties is an hardcoded-name, at least
+# for the moment.
+#
+# See also http://hadoop.apache.org/hbase/docs/current/metrics.html
+
+# HBase-specific configuration to reset long-running stats (e.g. compactions)
+# If this variable is left out, then the default is no expiration.
+hbase.extendedperiod = 3600
+
+# Configuration of the "hbase" context for ganglia
+# Pick one: Ganglia 3.0 (former) or Ganglia 3.1 (latter)
+# hbase.class=org.apache.hadoop.metrics.ganglia.GangliaContext
+hbase.class=org.apache.hadoop.metrics.ganglia.GangliaContext31
+hbase.period=10
+hbase.servers={{ganglia_server_host}}:8663
+
+# Configuration of the "jvm" context for ganglia
+# Pick one: Ganglia 3.0 (former) or Ganglia 3.1 (latter)
+# jvm.class=org.apache.hadoop.metrics.ganglia.GangliaContext
+jvm.class=org.apache.hadoop.metrics.ganglia.GangliaContext31
+jvm.period=10
+jvm.servers={{ganglia_server_host}}:8663
+
+# Configuration of the "rpc" context for ganglia
+# Pick one: Ganglia 3.0 (former) or Ganglia 3.1 (latter)
+# rpc.class=org.apache.hadoop.metrics.ganglia.GangliaContext
+rpc.class=org.apache.hadoop.metrics.ganglia.GangliaContext31
+rpc.period=10
+rpc.servers={{ganglia_server_host}}:8663

http://git-wip-us.apache.org/repos/asf/ambari/blob/aefbc614/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/templates/hbase-env.sh.j2
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/templates/hbase-env.sh.j2 b/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/templates/hbase-env.sh.j2
new file mode 100644
index 0000000..b8505b5
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/templates/hbase-env.sh.j2
@@ -0,0 +1,82 @@
+#
+# 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.
+#
+
+# Set environment variables here.
+
+# The java implementation to use. Java 1.6 required.
+export JAVA_HOME={{java64_home}}
+
+# HBase Configuration directory
+export HBASE_CONF_DIR=${HBASE_CONF_DIR:-{{conf_dir}}}
+
+# Extra Java CLASSPATH elements. Optional.
+export HBASE_CLASSPATH=${HBASE_CLASSPATH}
+
+# The maximum amount of heap to use, in MB. Default is 1000.
+# export HBASE_HEAPSIZE=1000
+
+# Extra Java runtime options.
+# Below are what we set by default. May only work with SUN JVM.
+# For more on why as well as other possible settings,
+# see http://wiki.apache.org/hadoop/PerformanceTuning
+export HBASE_OPTS="-XX:+UseConcMarkSweepGC -XX:ErrorFile={{log_dir}}/hs_err_pid%p.log"
+export SERVER_GC_OPTS="-verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:{{log_dir}}/gc.log-`date +'%Y%m%d%H%M'`"
+# Uncomment below to enable java garbage collection logging.
+# export HBASE_OPTS="$HBASE_OPTS -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:$HBASE_HOME/logs/gc-hbase.log"
+
+# Uncomment and adjust to enable JMX exporting
+# See jmxremote.password and jmxremote.access in $JRE_HOME/lib/management to configure remote password access.
+# More details at: http://java.sun.com/javase/6/docs/technotes/guides/management/agent.html
+#
+# export HBASE_JMX_BASE="-Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
+export HBASE_MASTER_OPTS="-Xmx{{master_heapsize}}"
+export HBASE_REGIONSERVER_OPTS="-Xmn{{regionserver_xmn_size}} -XX:CMSInitiatingOccupancyFraction=70  -Xms{{regionserver_heapsize}} -Xmx{{regionserver_heapsize}}"
+# export HBASE_THRIFT_OPTS="$HBASE_JMX_BASE -Dcom.sun.management.jmxremote.port=10103"
+# export HBASE_ZOOKEEPER_OPTS="$HBASE_JMX_BASE -Dcom.sun.management.jmxremote.port=10104"
+
+# File naming hosts on which HRegionServers will run. $HBASE_HOME/conf/regionservers by default.
+export HBASE_REGIONSERVERS=${HBASE_CONF_DIR}/regionservers
+
+# Extra ssh options. Empty by default.
+# export HBASE_SSH_OPTS="-o ConnectTimeout=1 -o SendEnv=HBASE_CONF_DIR"
+
+# Where log files are stored. $HBASE_HOME/logs by default.
+export HBASE_LOG_DIR={{log_dir}}
+
+# A string representing this instance of hbase. $USER by default.
+# export HBASE_IDENT_STRING=$USER
+
+# The scheduling priority for daemon processes. See 'man nice'.
+# export HBASE_NICENESS=10
+
+# The directory where pid files are stored. /tmp by default.
+export HBASE_PID_DIR={{pid_dir}}
+
+# Seconds to sleep between slave commands. Unset by default. This
+# can be useful in large clusters, where, e.g., slave rsyncs can
+# otherwise arrive faster than the master can service them.
+# export HBASE_SLAVE_SLEEP=0.1
+
+# Tell HBase whether it should manage it's own instance of Zookeeper or not.
+export HBASE_MANAGES_ZK=false
+
+{% if security_enabled %}
+export HBASE_OPTS="$HBASE_OPTS -Djava.security.auth.login.config={{client_jaas_config_file}}"
+export HBASE_MASTER_OPTS="$HBASE_MASTER_OPTS -Djava.security.auth.login.config={{master_jaas_config_file}}"
+export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS -Djava.security.auth.login.config={{regionserver_jaas_config_file}}"
+{% endif %}

http://git-wip-us.apache.org/repos/asf/ambari/blob/aefbc614/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/templates/hbase-smoke.sh.j2
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/templates/hbase-smoke.sh.j2 b/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/templates/hbase-smoke.sh.j2
new file mode 100644
index 0000000..61fe62f
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/templates/hbase-smoke.sh.j2
@@ -0,0 +1,26 @@
+#
+#
+# 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.
+#
+#
+disable 'ambarismoketest'
+drop 'ambarismoketest'
+create 'ambarismoketest','family'
+put 'ambarismoketest','row01','family:col01','{{service_check_data}}'
+scan 'ambarismoketest'
+exit
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/aefbc614/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/templates/hbase_client_jaas.conf.j2
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/templates/hbase_client_jaas.conf.j2 b/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/templates/hbase_client_jaas.conf.j2
new file mode 100644
index 0000000..696718e
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/templates/hbase_client_jaas.conf.j2
@@ -0,0 +1,5 @@
+Client {
+com.sun.security.auth.module.Krb5LoginModule required
+useKeyTab=false
+useTicketCache=true;
+};

http://git-wip-us.apache.org/repos/asf/ambari/blob/aefbc614/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/templates/hbase_grant_permissions.j2
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/templates/hbase_grant_permissions.j2 b/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/templates/hbase_grant_permissions.j2
new file mode 100644
index 0000000..9102d35
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/templates/hbase_grant_permissions.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.
+#
+#
+grant '{{smoke_test_user}}', '{{smokeuser_permissions}}'
+exit
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/aefbc614/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/templates/hbase_master_jaas.conf.j2
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/templates/hbase_master_jaas.conf.j2 b/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/templates/hbase_master_jaas.conf.j2
new file mode 100644
index 0000000..722cfcc
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/templates/hbase_master_jaas.conf.j2
@@ -0,0 +1,8 @@
+Client {
+com.sun.security.auth.module.Krb5LoginModule required
+useKeyTab=true
+storeKey=true
+useTicketCache=false
+keyTab="{{master_keytab_path}}"
+principal="{{master_jaas_princ}}";
+};

http://git-wip-us.apache.org/repos/asf/ambari/blob/aefbc614/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/templates/hbase_regionserver_jaas.conf.j2
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/templates/hbase_regionserver_jaas.conf.j2 b/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/templates/hbase_regionserver_jaas.conf.j2
new file mode 100644
index 0000000..cb9b7b0
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/templates/hbase_regionserver_jaas.conf.j2
@@ -0,0 +1,8 @@
+Client {
+com.sun.security.auth.module.Krb5LoginModule required
+useKeyTab=true
+storeKey=true
+useTicketCache=false
+keyTab="{{regionserver_keytab_path}}"
+principal="{{regionserver_jaas_princ}}";
+};

http://git-wip-us.apache.org/repos/asf/ambari/blob/aefbc614/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/templates/regionservers.j2
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/templates/regionservers.j2 b/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/templates/regionservers.j2
new file mode 100644
index 0000000..b22ae5f
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/package/templates/regionservers.j2
@@ -0,0 +1,2 @@
+{% for host in rs_hosts %}{{host}}
+{% endfor %}
\ No newline at end of file


[2/3] AMBARI-4176. HBase on HDP1. Rewrite to resource management. (aonishuk)

Posted by ao...@apache.org.
http://git-wip-us.apache.org/repos/asf/ambari/blob/aefbc614/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/metrics.json
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/metrics.json b/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/metrics.json
new file mode 100644
index 0000000..37f73bf
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/metrics.json
@@ -0,0 +1,13635 @@
+{
+  "HBASE_REGIONSERVER": {
+    "Component": [
+      {
+        "type": "ganglia",
+        "metrics": {
+          "metrics/hbase/regionserver/compactionTime_avg_time": {
+            "metric": "hbase.regionserver.compactionTime_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/closeRegion_num_ops": {
+            "metric": "rpc.rpc.closeRegion_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/mutationsWithoutWALSize": {
+            "metric": "regionserver.Server.mutationsWithoutWALSize",
+            "pointInTime": false,
+            "temporal": true
+          },
+          "metrics/rpc/unassign_num_ops": {
+            "metric": "rpc.rpc.unassign_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/modifyTable_num_ops": {
+            "metric": "rpc.rpc.modifyTable_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/getProtocolVersion_avg_time": {
+            "metric": "rpc.rpc.getProtocolVersion_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/getZooKeeper/aboveOneSec/_avg_time": {
+            "metric": "rpc.rpc.getZooKeeper.aboveOneSec._avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/load/load_one": {
+            "metric": "load_one",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/getClosestRowBefore_num_ops": {
+            "metric": "rpc.rpc.getClosestRowBefore_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/slowAppendCount": {
+            "metric": "regionserver.Server.slowAppendCount",
+            "pointInTime": false,
+            "temporal": true
+          },
+          "metrics/rpc/getClosestRowBefore/aboveOneSec/_avg_time": {
+            "metric": "rpc.rpc.getClosestRowBefore.aboveOneSec._avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/lockRow_num_ops": {
+            "metric": "rpc.rpc.lockRow_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/flushRegion_avg_time": {
+            "metric": "rpc.rpc.flushRegion_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/memory/swap_total": {
+            "metric": "swap_total",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/stopMaster_num_ops": {
+            "metric": "rpc.rpc.stopMaster_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/openRegions/aboveOneSec/_num_ops": {
+            "metric": "rpc.rpc.openRegions.aboveOneSec._num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/balance_avg_time": {
+            "metric": "rpc.rpc.balance_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/process/proc_total": {
+            "metric": "proc_total",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/disk/part_max_used": {
+            "metric": "part_max_used",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/modifyColumn_avg_time": {
+            "metric": "rpc.rpc.modifyColumn_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/multi/aboveOneSec/_avg_time": {
+            "metric": "rpc.rpc.multi.aboveOneSec._avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/rootIndexSizeKB": {
+            "metric": "hbase.regionserver.rootIndexSizeKB",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/getZooKeeper_num_ops": {
+            "metric": "rpc.rpc.getZooKeeper_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/blockCacheCount": {
+            "metric": "regionserver.Server.blockCacheCount",
+            "pointInTime": false,
+            "temporal": true
+          },
+          "metrics/rpc/flushRegion_num_ops": {
+            "metric": "rpc.rpc.flushRegion_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/ugi/loginSuccess_num_ops": {
+            "metric": "ugi.UgiMetrics.LoginSuccessNumOps",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/rollHLogWriter/aboveOneSec/_avg_time": {
+            "metric": "rpc.rpc.rollHLogWriter.aboveOneSec._avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/removeFromOnlineRegions/aboveOneSec/_num_ops": {
+            "metric": "rpc.rpc.removeFromOnlineRegions.aboveOneSec._num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/putRequestLatency_std_dev": {
+            "metric": "hbase.regionserver.putRequestLatency_std_dev",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/getRequestLatency_std_dev": {
+            "metric": "hbase.regionserver.getRequestLatency_std_dev",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/get_num_ops": {
+            "metric": "rpc.rpc.get_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/stopMaster_avg_time": {
+            "metric": "rpc.rpc.stopMaster_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/getOnlineRegions/aboveOneSec/_avg_time": {
+            "metric": "rpc.rpc.getOnlineRegions.aboveOneSec._avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/network/bytes_in": {
+            "metric": "bytes_in",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/removeFromOnlineRegions_num_ops": {
+            "metric": "rpc.rpc.removeFromOnlineRegions_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpcdetailed/ping_avg_time": {
+            "metric": "rpcdetailed.rpcdetailed.ping_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/openScanner/aboveOneSec/_avg_time": {
+            "metric": "rpc.rpc.openScanner.aboveOneSec._avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/getRegionInfo_avg_time": {
+            "metric": "rpc.rpc.getRegionInfo_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/lockRow_avg_time": {
+            "metric": "rpc.rpc.lockRow_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpcdetailed/commitPending_num_ops": {
+            "metric": "rpcdetailed.rpcdetailed.commitPending_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/checkOOME_num_ops": {
+            "metric": "rpc.rpc.checkOOME_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/reportRSFatalError_num_ops": {
+            "metric": "rpc.rpc.reportRSFatalError_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/getConfiguration/aboveOneSec/_avg_time": {
+            "metric": "rpc.rpc.getConfiguration.aboveOneSec._avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/reportRSFatalError_avg_time": {
+            "metric": "rpc.rpc.reportRSFatalError_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/network/pkts_in": {
+            "metric": "pkts_in",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/memory/mem_total": {
+            "metric": "mem_total",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/jvm/memHeapCommittedM": {
+            "metric": "jvm.JvmMetrics.MemHeapCommittedM",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/jvm/threadsRunnable": {
+            "metric": "jvm.JvmMetrics.ThreadsRunnable",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/unlockRow/aboveOneSec/_num_ops": {
+            "metric": "rpc.rpc.unlockRow.aboveOneSec._num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/deleteRequestLatency_min": {
+            "metric": "regionserver.Server.Delete_min",
+            "pointInTime": false,
+            "temporal": true
+          },
+          "metrics/jvm/threadsNew": {
+            "metric": "jvm.JvmMetrics.ThreadsNew",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/getClusterStatus_num_ops": {
+            "metric": "rpc.rpc.getClusterStatus_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/getHTableDescriptors_avg_time": {
+            "metric": "rpc.rpc.getHTableDescriptors_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/rpcAuthorizationFailures": {
+            "metric": "rpc.rpc.rpcAuthorizationFailures",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/deleteColumn_num_ops": {
+            "metric": "rpc.rpc.deleteColumn_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/delete/aboveOneSec/_avg_time": {
+            "metric": "rpc.rpc.delete.aboveOneSec._avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/RpcQueueTime_avg_time": {
+            "metric": "rpc.rpc.RpcQueueTimeAvgTime",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/increment_num_ops": {
+            "metric": "rpc.rpc.increment_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpcdetailed/getMapCompletionEvents_num_ops": {
+            "metric": "rpcdetailed.rpcdetailed.getMapCompletionEvents_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/stop/aboveOneSec/_avg_time": {
+            "metric": "rpc.rpc.stop.aboveOneSec._avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/modifyColumn_num_ops": {
+            "metric": "rpc.rpc.modifyColumn_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/checkOOME_avg_time": {
+            "metric": "rpc.rpc.checkOOME_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/next/aboveOneSec/_avg_time": {
+            "metric": "rpc.rpc.next.aboveOneSec._avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/RpcSlowResponse_avg_time": {
+            "metric": "rpc.rpc.RpcSlowResponse_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/getConfiguration_avg_time": {
+            "metric": "rpc.rpc.getConfiguration_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/getServerName/aboveOneSec/_avg_time": {
+            "metric": "rpc.rpc.getServerName.aboveOneSec._avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/cpu/cpu_nice": {
+            "metric": "cpu_nice",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/unassign_avg_time": {
+            "metric": "rpc.rpc.unassign_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/NumOpenConnections": {
+            "metric": "rpc.rpc.NumOpenConnections",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/delete/aboveOneSec/_num_ops": {
+            "metric": "rpc.rpc.delete.aboveOneSec._num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpcdetailed/canCommit_num_ops": {
+            "metric": "rpcdetailed.rpcdetailed.canCommit_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/multi/aboveOneSec/_num_ops": {
+            "metric": "rpc.rpc.multi.aboveOneSec._num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/network/bytes_out": {
+            "metric": "bytes_out",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/load/load_five": {
+            "metric": "load_five",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/fsReadLatencyHistogram_75th_percentile": {
+            "metric": "hbase.regionserver.fsReadLatencyHistogram_75th_percentile",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/deleteRequestLatency_num_ops": {
+            "metric": "regionserver.Server.Delete_num_ops",
+            "pointInTime": false,
+            "temporal": true
+          },
+          "metrics/boottime": {
+            "metric": "boottime",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/compactRegion_avg_time": {
+            "metric": "rpc.rpc.compactRegion_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/fsWriteLatencyHistogram_num_ops": {
+            "metric": "hbase.regionserver.fsWriteLatencyHistogram_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/writeRequestsCount": {
+            "metric": "regionserver.Server.writeRequestCount",
+            "pointInTime": false,
+            "temporal": true
+          },
+          "metrics/rpc/getProtocolSignature/aboveOneSec/_avg_time": {
+            "metric": "rpc.rpc.getProtocolSignature.aboveOneSec._avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/execCoprocessor_num_ops": {
+            "metric": "rpc.rpc.execCoprocessor_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpcdetailed/canCommit_avg_time": {
+            "metric": "rpcdetailed.rpcdetailed.canCommit_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/getHServerInfo/aboveOneSec/_num_ops": {
+            "metric": "rpc.rpc.getHServerInfo.aboveOneSec._num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/getRequestLatency_min": {
+            "metric": "regionserver.Server.Get_min",
+            "pointInTime": false,
+            "temporal": true
+          },
+          "metrics/rpc/getCatalogTracker/aboveOneSec/_avg_time": {
+            "metric": "rpc.rpc.getCatalogTracker.aboveOneSec._avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/incrementColumnValue_avg_time": {
+            "metric": "rpc.rpc.incrementColumnValue_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/RpcProcessingTime_num_ops": {
+            "metric": "rpc.rpc.RpcProcessingTimeNumOps",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/deleteTable_num_ops": {
+            "metric": "rpc.rpc.deleteTable_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/jvm/logError": {
+            "metric": "jvm.JvmMetrics.LogError",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/getBlockCacheColumnFamilySummaries_num_ops": {
+            "metric": "rpc.rpc.getBlockCacheColumnFamilySummaries_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/putRequestLatency_75th_percentile": {
+            "metric": "regionserver.Server.Mutate_75th_percentile",
+            "pointInTime": false,
+            "temporal": true
+          },
+          "metrics/rpc/getFromOnlineRegions/aboveOneSec/_num_ops": {
+            "metric": "rpc.rpc.getFromOnlineRegions.aboveOneSec._num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/getRegionInfo/aboveOneSec/_avg_time": {
+            "metric": "rpc.rpc.getRegionInfo.aboveOneSec._avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/blockCacheHitCount": {
+            "metric": "regionserver.Server.blockCacheHitCount",
+            "pointInTime": false,
+            "temporal": true
+          },
+          "metrics/rpc/exists_avg_time": {
+            "metric": "rpc.rpc.exists_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/slowPutCount": {
+            "metric": "regionserver.Server.slowPutCount",
+            "pointInTime": false,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/fsWriteLatency_num_ops": {
+            "metric": "hbase.regionserver.fsWriteLatency_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/getOnlineRegions/aboveOneSec/_num_ops": {
+            "metric": "rpc.rpc.getOnlineRegions.aboveOneSec._num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/exists/aboveOneSec/_num_ops": {
+            "metric": "rpc.rpc.exists.aboveOneSec._num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/replicateLogEntries/aboveOneSec/_num_ops": {
+            "metric": "rpc.rpc.replicateLogEntries.aboveOneSec._num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/delete_num_ops": {
+            "metric": "rpc.rpc.delete_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/exists_num_ops": {
+            "metric": "rpc.rpc.exists_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/regionServerStartup_avg_time": {
+            "metric": "rpc.rpc.regionServerStartup_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/checkAndDelete_num_ops": {
+            "metric": "rpc.rpc.checkAndDelete_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/closeRegion_avg_time": {
+            "metric": "rpc.rpc.closeRegion_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpcdetailed/getBlockLocalPathInfo_avg_time": {
+            "metric": "rpcdetailed.rpcdetailed.getBlockLocalPathInfo_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/getProtocolSignature_avg_time": {
+            "metric": "rpc.rpc.getProtocolSignature_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/assign_avg_time": {
+            "metric": "rpc.rpc.assign_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/compactionSize_num_ops": {
+            "metric": "hbase.regionserver.compactionSize_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/close_avg_time": {
+            "metric": "rpc.rpc.close_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/blockCacheSize": {
+            "metric": "regionserver.Server.blockCacheSize",
+            "pointInTime": false,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/putRequestLatency_num_ops": {
+            "metric": "regionserver.Server.Mutate_num_ops",
+            "pointInTime": false,
+            "temporal": true
+          },
+          "metrics/jvm/threadsBlocked": {
+            "metric": "jvm.JvmMetrics.ThreadsBlocked",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/getHServerInfo_num_ops": {
+            "metric": "rpc.rpc.getHServerInfo_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/stop_avg_time": {
+            "metric": "rpc.rpc.stop_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/isStopped_num_ops": {
+            "metric": "rpc.rpc.isStopped_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/putRequestLatency_median": {
+            "metric": "regionserver.Server.Mutate_median",
+            "pointInTime": false,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/fsReadLatencyHistogram_num_ops": {
+            "metric": "hbase.regionserver.fsReadLatencyHistogram_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/fsWriteLatencyHistogram_median": {
+            "metric": "hbase.regionserver.fsWriteLatencyHistogram_median",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/isMasterRunning_avg_time": {
+            "metric": "rpc.rpc.isMasterRunning_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/incrementColumnValue_num_ops": {
+            "metric": "rpc.rpc.incrementColumnValue_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/deleteRequestLatency_std_dev": {
+            "metric": "hbase.regionserver.deleteRequestLatency_std_dev",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/bulkLoadHFiles/aboveOneSec/_avg_time": {
+            "metric": "rpc.rpc.bulkLoadHFiles.aboveOneSec._avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/hdfsBlocksLocalityIndex": {
+            "metric": "hbase.regionserver.hdfsBlocksLocalityIndex",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/readRequestsCount": {
+            "metric": "regionserver.Server.readRequestCount",
+            "pointInTime": false,
+            "temporal": true
+          },
+          "metrics/memory/mem_free": {
+            "metric": "mem_free",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/execCoprocessor/aboveOneSec/_avg_time": {
+            "metric": "rpc.rpc.execCoprocessor.aboveOneSec._avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/putRequestLatency_min": {
+            "metric": "regionserver.Server.Mutate_min",
+            "pointInTime": false,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/storefileIndexSizeMB": {
+            "metric": "regionserver.Server.storeFileIndexSize",
+            "pointInTime": false,
+            "temporal": true
+          },
+          "metrics/rpc/assign_num_ops": {
+            "metric": "rpc.rpc.assign_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/close/aboveOneSec/_num_ops": {
+            "metric": "rpc.rpc.close.aboveOneSec._num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/deleteRequestLatency_median": {
+            "metric": "regionserver.Server.Delete_median",
+            "pointInTime": false,
+            "temporal": true
+          },
+          "metrics/rpc/enableTable_avg_time": {
+            "metric": "rpc.rpc.enableTable_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/putRequestLatency_mean": {
+            "metric": "regionserver.Server.Mutate_mean",
+            "pointInTime": false,
+            "temporal": true
+          },
+          "metrics/rpc/incrementColumnValue/aboveOneSec/_avg_time": {
+            "metric": "rpc.rpc.incrementColumnValue.aboveOneSec._avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/network/pkts_out": {
+            "metric": "pkts_out",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/close_num_ops": {
+            "metric": "rpc.rpc.close_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/memory/mem_cached": {
+            "metric": "mem_cached",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/getConfiguration/aboveOneSec/_num_ops": {
+            "metric": "rpc.rpc.getConfiguration.aboveOneSec._num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpcdetailed/done_avg_time": {
+            "metric": "rpcdetailed.rpcdetailed.done_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/compactionSize_avg_time": {
+            "metric": "hbase.regionserver.compactionSize_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/getFromOnlineRegions_avg_time": {
+            "metric": "rpc.rpc.getFromOnlineRegions_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/fsReadLatencyHistogram_min": {
+            "metric": "hbase.regionserver.fsReadLatencyHistogram_min",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/increment/aboveOneSec/_num_ops": {
+            "metric": "rpc.rpc.increment.aboveOneSec._num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/deleteTable_avg_time": {
+            "metric": "rpc.rpc.deleteTable_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/put/aboveOneSec/_num_ops": {
+            "metric": "rpc.rpc.put.aboveOneSec._num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/delete_avg_time": {
+            "metric": "rpc.rpc.delete_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpcdetailed/statusUpdate_num_ops": {
+            "metric": "rpcdetailed.rpcdetailed.statusUpdate_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/openRegions/aboveOneSec/_avg_time": {
+            "metric": "rpc.rpc.openRegions.aboveOneSec._avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/compactRegion/aboveOneSec/_avg_time": {
+            "metric": "rpc.rpc.compactRegion.aboveOneSec._avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/RpcProcessingTime_avg_time": {
+            "metric": "rpc.rpc.RpcProcessingTimeAvgTime",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/rpcAuthenticationFailures": {
+            "metric": "rpc.rpc.rpcAuthenticationFailures",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/openScanner/aboveOneSec/_num_ops": {
+            "metric": "rpc.rpc.openScanner.aboveOneSec._num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/getClusterStatus_avg_time": {
+            "metric": "rpc.rpc.getClusterStatus_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/unlockRow/aboveOneSec/_avg_time": {
+            "metric": "rpc.rpc.unlockRow.aboveOneSec._avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/removeFromOnlineRegions_avg_time": {
+            "metric": "rpc.rpc.removeFromOnlineRegions_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/put/aboveOneSec/_avg_time": {
+            "metric": "rpc.rpc.put.aboveOneSec._avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/modifyTable_avg_time": {
+            "metric": "rpc.rpc.modifyTable_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/checkAndPut_avg_time": {
+            "metric": "rpc.rpc.checkAndPut_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/isStopped/aboveOneSec/_avg_time": {
+            "metric": "rpc.rpc.isStopped.aboveOneSec._avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/put_avg_time": {
+            "metric": "rpc.rpc.put_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/blockCacheHitRatio": {
+            "metric": "hbase.regionserver.blockCacheHitRatio",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/createTable_avg_time": {
+            "metric": "rpc.rpc.createTable_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/getRegionInfo/aboveOneSec/_num_ops": {
+            "metric": "rpc.rpc.getRegionInfo.aboveOneSec._num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/fsReadLatencyHistogram_std_dev": {
+            "metric": "hbase.regionserver.fsReadLatencyHistogram_std_dev",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/getHTableDescriptors_num_ops": {
+            "metric": "rpc.rpc.getHTableDescriptors_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/getAlterStatus_avg_time": {
+            "metric": "rpc.rpc.getAlterStatus_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/getRegionInfo_num_ops": {
+            "metric": "rpc.rpc.getRegionInfo_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpcdetailed/statusUpdate_avg_time": {
+            "metric": "rpcdetailed.rpcdetailed.statusUpdate_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/compactRegion_num_ops": {
+            "metric": "rpc.rpc.compactRegion_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/isAborted_num_ops": {
+            "metric": "rpc.rpc.isAborted_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/getFromOnlineRegions/aboveOneSec/_avg_time": {
+            "metric": "rpc.rpc.getFromOnlineRegions.aboveOneSec._avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/fsReadLatencyHistogram_max": {
+            "metric": "hbase.regionserver.fsReadLatencyHistogram_max",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/blockCacheEvictedCount": {
+            "metric": "regionserver.Server.blockCacheEvictionCount",
+            "pointInTime": false,
+            "temporal": true
+          },
+          "metrics/rpc/checkOOME/aboveOneSec/_num_ops": {
+            "metric": "rpc.rpc.checkOOME.aboveOneSec._num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/memory/mem_buffers": {
+            "metric": "mem_buffers",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/disableTable_num_ops": {
+            "metric": "rpc.rpc.disableTable_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/openScanner_num_ops": {
+            "metric": "rpc.rpc.openScanner_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/bulkLoadHFiles/aboveOneSec/_num_ops": {
+            "metric": "rpc.rpc.bulkLoadHFiles.aboveOneSec._num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/cpu/cpu_user": {
+            "metric": "cpu_user",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/memory/swap_free": {
+            "metric": "swap_free",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/regionServerReport_num_ops": {
+            "metric": "rpc.rpc.regionServerReport_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/openRegions_avg_time": {
+            "metric": "rpc.rpc.openRegions_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/exists/aboveOneSec/_avg_time": {
+            "metric": "rpc.rpc.exists.aboveOneSec._avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/putRequestLatency_99th_percentile": {
+            "metric": "regionserver.Server.Mutate_99th_percentile",
+            "pointInTime": false,
+            "temporal": true
+          },
+          "metrics/load/load_fifteen": {
+            "metric": "load_fifteen",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/getBlockCacheColumnFamilySummaries/aboveOneSec/_num_ops": {
+            "metric": "rpc.rpc.getBlockCacheColumnFamilySummaries.aboveOneSec._num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/execCoprocessor/aboveOneSec/_num_ops": {
+            "metric": "rpc.rpc.execCoprocessor.aboveOneSec._num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/isMasterRunning_num_ops": {
+            "metric": "rpc.rpc.isMasterRunning_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/balanceSwitch_num_ops": {
+            "metric": "rpc.rpc.balanceSwitch_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/offline_num_ops": {
+            "metric": "rpc.rpc.offline_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/getRequestLatency_max": {
+            "metric": "regionserver.Server.Get_max",
+            "pointInTime": false,
+            "temporal": true
+          },
+          "metrics/memory/mem_shared": {
+            "metric": "mem_shared",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/abort_num_ops": {
+            "metric": "rpc.rpc.abort_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/fsReadLatencyHistogram_95th_percentile": {
+            "metric": "hbase.regionserver.fsReadLatencyHistogram_95th_percentile",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/blockCacheHitCachingRatio": {
+            "metric": "hbase.regionserver.blockCacheHitCachingRatio",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/ugi/loginFailure_avg_time": {
+            "metric": "ugi.UgiMetrics.LoginFailureAvgTime",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpcdetailed/getProtocolVersion_avg_time": {
+            "metric": "rpcdetailed.rpcdetailed.getProtocolVersion_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/cpu/cpu_num": {
+            "metric": "cpu_num",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/rollHLogWriter_num_ops": {
+            "metric": "rpc.rpc.rollHLogWriter_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/openRegions_num_ops": {
+            "metric": "rpc.rpc.openRegions_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/jvm/logFatal": {
+            "metric": "jvm.JvmMetrics.LogFatal",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/splitRegion_avg_time": {
+            "metric": "rpc.rpc.splitRegion_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/closeRegion/aboveOneSec/_avg_time": {
+            "metric": "rpc.rpc.closeRegion.aboveOneSec._avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/checkAndPut/aboveOneSec/_num_ops": {
+            "metric": "rpc.rpc.checkAndPut.aboveOneSec._num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/getRequestLatency_99th_percentile": {
+            "metric": "regionserver.Server.Get_99th_percentile",
+            "pointInTime": false,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/fsWriteLatencyHistogram_min": {
+            "metric": "hbase.regionserver.fsWriteLatencyHistogram_min",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/splitRegion/aboveOneSec/_avg_time": {
+            "metric": "rpc.rpc.splitRegion.aboveOneSec._avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpcdetailed/getProtocolVersion_num_ops": {
+            "metric": "rpcdetailed.rpcdetailed.getProtocolVersion_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/fsWriteLatencyHistogram_std_dev": {
+            "metric": "hbase.regionserver.fsWriteLatencyHistogram_std_dev",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/ugi/loginSuccess_avg_time": {
+            "metric": "ugi.UgiMetrics.LoginSuccessAvgTime",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/deleteRequestLatency_99th_percentile": {
+            "metric": "regionserver.Server.Delete_99th_percentile",
+            "pointInTime": false,
+            "temporal": true
+          },
+          "metrics/rpc/getHServerInfo/aboveOneSec/_avg_time": {
+            "metric": "rpc.rpc.getHServerInfo.aboveOneSec._avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/fsWriteLatencyHistogram_max": {
+            "metric": "hbase.regionserver.fsWriteLatencyHistogram_max",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/jvm/memNonHeapUsedM": {
+            "metric": "jvm.JvmMetrics.MemNonHeapUsedM",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpcdetailed/getTask_avg_time": {
+            "metric": "rpcdetailed.rpcdetailed.getTask_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/replicateLogEntries_num_ops": {
+            "metric": "rpc.rpc.replicateLogEntries_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/multi_avg_time": {
+            "metric": "rpc.rpc.multi_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/slowIncrementCount": {
+            "metric": "regionserver.Server.slowIncrementCount",
+            "pointInTime": false,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/putRequestLatency_95th_percentile": {
+            "metric": "regionserver.Server.Mutate_95th_percentile",
+            "pointInTime": false,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/compactionQueueSize": {
+            "metric": "regionserver.Server.compactionQueueLength",
+            "pointInTime": false,
+            "temporal": true
+          },
+          "metrics/rpc/getCatalogTracker_avg_time": {
+            "metric": "rpc.rpc.getCatalogTracker_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/splitRegion_num_ops": {
+            "metric": "rpc.rpc.splitRegion_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/balance_num_ops": {
+            "metric": "rpc.rpc.balance_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/flushTime_num_ops": {
+            "metric": "hbase.regionserver.flushTime_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/shutdown_num_ops": {
+            "metric": "rpc.rpc.shutdown_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/fsReadLatency_num_ops": {
+            "metric": "hbase.regionserver.fsReadLatency_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/isAborted/aboveOneSec/_num_ops": {
+            "metric": "rpc.rpc.isAborted.aboveOneSec._num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/cpu/cpu_idle": {
+            "metric": "cpu_idle",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/getRequestLatency_75th_percentile": {
+            "metric": "regionserver.Server.Get_75th_percentile",
+            "pointInTime": false,
+            "temporal": true
+          },
+          "metrics/rpc/getProtocolSignature/aboveOneSec/_num_ops": {
+            "metric": "rpc.rpc.getProtocolSignature.aboveOneSec._num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/getServerName_avg_time": {
+            "metric": "rpc.rpc.getServerName_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/jvm/memNonHeapCommittedM": {
+            "metric": "jvm.JvmMetrics.MemNonHeapCommittedM",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/compactionTime_num_ops": {
+            "metric": "hbase.regionserver.compactionTime_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/abort_avg_time": {
+            "metric": "rpc.rpc.abort_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/getCatalogTracker/aboveOneSec/_num_ops": {
+            "metric": "rpc.rpc.getCatalogTracker.aboveOneSec._num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpcdetailed/getBlockLocalPathInfo_num_ops": {
+            "metric": "rpcdetailed.rpcdetailed.getBlockLocalPathInfo_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/enableTable_num_ops": {
+            "metric": "rpc.rpc.enableTable_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/lockRow/aboveOneSec/_num_ops": {
+            "metric": "rpc.rpc.lockRow.aboveOneSec._num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/stores": {
+            "metric": "regionserver.Server.storeCount",
+            "pointInTime": false,
+            "temporal": true
+          },
+          "metrics/rpc/addColumn_avg_time": {
+            "metric": "rpc.rpc.addColumn_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/addToOnlineRegions/aboveOneSec/_num_ops": {
+            "metric": "rpc.rpc.addToOnlineRegions.aboveOneSec._num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/ugi/loginFailure_num_ops": {
+            "metric": "ugi.UgiMetrics.LoginFailureNumOps",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/cpu/cpu_wio": {
+            "metric": "cpu_wio",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/getZooKeeper/aboveOneSec/_num_ops": {
+            "metric": "rpc.rpc.getZooKeeper.aboveOneSec._num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/getServerName_num_ops": {
+            "metric": "rpc.rpc.getServerName_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/getServerName/aboveOneSec/_num_ops": {
+            "metric": "rpc.rpc.getServerName.aboveOneSec._num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/rpcAuthenticationSuccesses": {
+            "metric": "rpc.rpc.rpcAuthenticationSuccesses",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/isStopped/aboveOneSec/_num_ops": {
+            "metric": "rpc.rpc.isStopped.aboveOneSec._num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/disableTable_avg_time": {
+            "metric": "rpc.rpc.disableTable_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/rollHLogWriter/aboveOneSec/_num_ops": {
+            "metric": "rpc.rpc.rollHLogWriter.aboveOneSec._num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/abort/aboveOneSec/_num_ops": {
+            "metric": "rpc.rpc.abort.aboveOneSec._num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/openRegion_avg_time": {
+            "metric": "rpc.rpc.openRegion_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/regionServerReport_avg_time": {
+            "metric": "rpc.rpc.regionServerReport_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/getAlterStatus_num_ops": {
+            "metric": "rpc.rpc.getAlterStatus_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/flushRegion/aboveOneSec/_avg_time": {
+            "metric": "rpc.rpc.flushRegion.aboveOneSec._avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/incrementColumnValue/aboveOneSec/_num_ops": {
+            "metric": "rpc.rpc.incrementColumnValue.aboveOneSec._num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/next_avg_time": {
+            "metric": "rpc.rpc.next_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/getRequestLatency_num_ops": {
+            "metric": "regionserver.Server.Get_num_ops",
+            "pointInTime": false,
+            "temporal": true
+          },
+          "metrics/rpc/ReceivedBytes": {
+            "metric": "rpc.rpc.ReceivedBytes",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/bulkLoadHFiles_num_ops": {
+            "metric": "rpc.rpc.bulkLoadHFiles_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpcdetailed/ping_num_ops": {
+            "metric": "rpcdetailed.rpcdetailed.ping_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/fsReadLatency_avg_time": {
+            "metric": "hbase.regionserver.fsReadLatency_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/flushSize_num_ops": {
+            "metric": "hbase.regionserver.flushSize_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/jvm/gcTimeMillis": {
+            "metric": "jvm.JvmMetrics.GcTimeMillis",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/jvm/threadsTerminated": {
+            "metric": "jvm.JvmMetrics.ThreadsTerminated",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/getProtocolVersion/aboveOneSec/_avg_time": {
+            "metric": "rpc.rpc.getProtocolVersion.aboveOneSec._avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/checkAndDelete/aboveOneSec/_avg_time": {
+            "metric": "rpc.rpc.checkAndDelete.aboveOneSec._avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/balanceSwitch_avg_time": {
+            "metric": "rpc.rpc.balanceSwitch_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/putRequestLatency_max": {
+            "metric": "regionserver.Server.Mutate_max",
+            "pointInTime": false,
+            "temporal": true
+          },
+          "metrics/rpc/openRegion/aboveOneSec/_avg_time": {
+            "metric": "rpc.rpc.openRegion.aboveOneSec._avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/lockRow/aboveOneSec/_avg_time": {
+            "metric": "rpc.rpc.lockRow.aboveOneSec._avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/callQueueLen": {
+            "metric": "rpc.rpc.callQueueLen",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/openRegion_num_ops": {
+            "metric": "rpc.rpc.openRegion_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/compactRegion/aboveOneSec/_num_ops": {
+            "metric": "rpc.rpc.compactRegion.aboveOneSec._num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/fsSyncLatency_num_ops": {
+            "metric": "hbase.regionserver.fsSyncLatency_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/fsWriteLatencyHistogram_95th_percentile": {
+            "metric": "hbase.regionserver.fsWriteLatencyHistogram_95th_percentile",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/getOnlineRegions_avg_time": {
+            "metric": "rpc.rpc.getOnlineRegions_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/fsWriteLatencyHistogram_75th_percentile": {
+            "metric": "hbase.regionserver.fsWriteLatencyHistogram_75th_percentile",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/move_num_ops": {
+            "metric": "rpc.rpc.move_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/stop_num_ops": {
+            "metric": "rpc.rpc.stop_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/replicateLogEntries_avg_time": {
+            "metric": "rpc.rpc.replicateLogEntries_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/getRequestLatency_mean": {
+            "metric": "regionserver.Server.Get_mean",
+            "pointInTime": false,
+            "temporal": true
+          },
+          "metrics/rpc/get_avg_time": {
+            "metric": "rpc.rpc.get_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/multi_num_ops": {
+            "metric": "rpc.rpc.multi_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/next/aboveOneSec/_num_ops": {
+            "metric": "rpc.rpc.next.aboveOneSec._num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/addToOnlineRegions_avg_time": {
+            "metric": "rpc.rpc.addToOnlineRegions_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/deleteColumn_avg_time": {
+            "metric": "rpc.rpc.deleteColumn_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/regions": {
+            "metric": "regionserver.Server.regionCount",
+            "pointInTime": false,
+            "temporal": true
+          },
+          "metrics/rpc/bulkLoadHFiles_avg_time": {
+            "metric": "rpc.rpc.bulkLoadHFiles_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/isAborted/aboveOneSec/_avg_time": {
+            "metric": "rpc.rpc.isAborted.aboveOneSec._avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/stop/aboveOneSec/_num_ops": {
+            "metric": "rpc.rpc.stop.aboveOneSec._num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/addToOnlineRegions_num_ops": {
+            "metric": "rpc.rpc.addToOnlineRegions_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/abort/aboveOneSec/_avg_time": {
+            "metric": "rpc.rpc.abort.aboveOneSec._avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/removeFromOnlineRegions/aboveOneSec/_avg_time": {
+            "metric": "rpc.rpc.removeFromOnlineRegions.aboveOneSec._avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/blockCacheFree": {
+            "metric": "regionserver.Server.blockCacheFreeSize",
+            "pointInTime": false,
+            "temporal": true
+          },
+          "metrics/rpc/offline_avg_time": {
+            "metric": "rpc.rpc.offline_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/unlockRow_avg_time": {
+            "metric": "rpc.rpc.unlockRow_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/blockCacheMissCount": {
+            "metric": "regionserver.Server.blockCacheMissCount",
+            "pointInTime": false,
+            "temporal": true
+          },
+          "metrics/rpc/getCatalogTracker_num_ops": {
+            "metric": "rpc.rpc.getCatalogTracker_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/checkOOME/aboveOneSec/_avg_time": {
+            "metric": "rpc.rpc.checkOOME.aboveOneSec._avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/flushQueueSize": {
+            "metric": "regionserver.Server.flushQueueLength",
+            "pointInTime": false,
+            "temporal": true
+          },
+          "metrics/rpc/checkAndPut/aboveOneSec/_avg_time": {
+            "metric": "rpc.rpc.checkAndPut.aboveOneSec._avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/close/aboveOneSec/_avg_time": {
+            "metric": "rpc.rpc.close.aboveOneSec._avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/execCoprocessor_avg_time": {
+            "metric": "rpc.rpc.execCoprocessor_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/fsWriteLatencyHistogram_mean": {
+            "metric": "hbase.regionserver.fsWriteLatencyHistogram_mean",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/createTable_num_ops": {
+            "metric": "rpc.rpc.createTable_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/process/proc_run": {
+            "metric": "proc_run",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/getConfiguration_num_ops": {
+            "metric": "rpc.rpc.getConfiguration_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/isStopped_avg_time": {
+            "metric": "rpc.rpc.isStopped_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/RpcQueueTime_num_ops": {
+            "metric": "rpc.rpc.RpcQueueTimeNumOps",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/rollHLogWriter_avg_time": {
+            "metric": "rpc.rpc.rollHLogWriter_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/fsSyncLatency_avg_time": {
+            "metric": "hbase.regionserver.fsSyncLatency_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/deleteRequestLatency_mean": {
+            "metric": "regionserver.Server.Delete_mean",
+            "pointInTime": false,
+            "temporal": true
+          },
+          "metrics/rpc/addToOnlineRegions/aboveOneSec/_avg_time": {
+            "metric": "rpc.rpc.addToOnlineRegions.aboveOneSec._avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpcdetailed/getMapCompletionEvents_avg_time": {
+            "metric": "rpcdetailed.rpcdetailed.getMapCompletionEvents_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/cpu/cpu_aidle": {
+            "metric": "cpu_aidle",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/fsReadLatencyHistogram_mean": {
+            "metric": "hbase.regionserver.fsReadLatencyHistogram_mean",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/totalStaticIndexSizeKB": {
+            "metric": "regionserver.Server.staticIndexSize",
+            "pointInTime": false,
+            "temporal": true
+          },
+          "metrics/rpc/checkAndDelete/aboveOneSec/_num_ops": {
+            "metric": "rpc.rpc.checkAndDelete.aboveOneSec._num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/getFromOnlineRegions_num_ops": {
+            "metric": "rpc.rpc.getFromOnlineRegions_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/mutationsWithoutWALCount": {
+            "metric": "regionserver.Server.mutationsWithoutWALCount",
+            "pointInTime": false,
+            "temporal": true
+          },
+          "metrics/disk/disk_total": {
+            "metric": "disk_total",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/get/aboveOneSec/_avg_time": {
+            "metric": "rpc.rpc.get.aboveOneSec._avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/getRequestLatency_median": {
+            "metric": "regionserver.Server.Get_median",
+            "pointInTime": false,
+            "temporal": true
+          },
+          "metrics/rpc/openScanner_avg_time": {
+            "metric": "rpc.rpc.openScanner_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/RpcSlowResponse_num_ops": {
+            "metric": "rpc.rpc.RpcSlowResponse_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/splitRegion/aboveOneSec/_num_ops": {
+            "metric": "rpc.rpc.splitRegion.aboveOneSec._num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/isAborted_avg_time": {
+            "metric": "rpc.rpc.isAborted_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/getClosestRowBefore/aboveOneSec/_num_ops": {
+            "metric": "rpc.rpc.getClosestRowBefore.aboveOneSec._num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/flushRegion/aboveOneSec/_num_ops": {
+            "metric": "rpc.rpc.flushRegion.aboveOneSec._num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/flushSize_avg_time": {
+            "metric": "hbase.regionserver.flushSize_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/getBlockCacheColumnFamilySummaries/aboveOneSec/_avg_time": {
+            "metric": "rpc.rpc.getBlockCacheColumnFamilySummaries.aboveOneSec._avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpcdetailed/commitPending_avg_time": {
+            "metric": "rpcdetailed.rpcdetailed.commitPending_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/getClosestRowBefore_avg_time": {
+            "metric": "rpc.rpc.getClosestRowBefore_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/cpu/cpu_speed": {
+            "metric": "cpu_speed",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/deleteRequestLatency_max": {
+            "metric": "regionserver.Server.Delete_max",
+            "pointInTime": false,
+            "temporal": true
+          },
+          "metrics/rpc/get/aboveOneSec/_num_ops": {
+            "metric": "rpc.rpc.get.aboveOneSec._num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/put_num_ops": {
+            "metric": "rpc.rpc.put_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/move_avg_time": {
+            "metric": "rpc.rpc.move_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/percentFilesLocal": {
+            "metric": "regionserver.Server.percentFilesLocal",
+            "pointInTime": false,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/fsWriteLatency_avg_time": {
+            "metric": "hbase.regionserver.fsWriteLatency_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/increment/aboveOneSec/_avg_time": {
+            "metric": "rpc.rpc.increment.aboveOneSec._avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/openRegion/aboveOneSec/_num_ops": {
+            "metric": "rpc.rpc.openRegion.aboveOneSec._num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/SentBytes": {
+            "metric": "rpc.rpc.SentBytes",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpcdetailed/getTask_num_ops": {
+            "metric": "rpcdetailed.rpcdetailed.getTask_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/addColumn_num_ops": {
+            "metric": "rpc.rpc.addColumn_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/jvm/logWarn": {
+            "metric": "jvm.JvmMetrics.LogWarn",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/jvm/maxMemoryM": {
+            "metric": "jvm.metrics.maxMemoryM",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/jvm/threadsTimedWaiting": {
+            "metric": "jvm.JvmMetrics.ThreadsTimedWaiting",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/jvm/gcCount": {
+            "metric": "jvm.JvmMetrics.GcCount",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/getOnlineRegions_num_ops": {
+            "metric": "rpc.rpc.getOnlineRegions_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/flushTime_avg_time": {
+            "metric": "hbase.regionserver.flushTime_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpcdetailed/done_num_ops": {
+            "metric": "rpcdetailed.rpcdetailed.done_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/getProtocolVersion_num_ops": {
+            "metric": "rpc.rpc.getProtocolVersion_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/jvm/memHeapUsedM": {
+            "metric": "jvm.JvmMetrics.MemHeapUsedM",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/unlockRow_num_ops": {
+            "metric": "rpc.rpc.unlockRow_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/disk/disk_free": {
+            "metric": "disk_free",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/jvm/threadsWaiting": {
+            "metric": "jvm.JvmMetrics.ThreadsWaiting",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/slowGetCount": {
+            "metric": "regionserver.Server.slowGetCount",
+            "pointInTime": false,
+            "temporal": true
+          },
+          "metrics/rpc/replicateLogEntries/aboveOneSec/_avg_time": {
+            "metric": "rpc.rpc.replicateLogEntries.aboveOneSec._avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/shutdown_avg_time": {
+            "metric": "rpc.rpc.shutdown_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/regionServerStartup_num_ops": {
+            "metric": "rpc.rpc.regionServerStartup_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/cpu/cpu_system": {
+            "metric": "cpu_system",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/requests": {
+            "metric": "regionserver.Server.totalRequestCount",
+            "pointInTime": false,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/fsReadLatencyHistogram_99th_percentile": {
+            "metric": "hbase.regionserver.fsReadLatencyHistogram_99th_percentile",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/fsWriteLatencyHistogram_99th_percentile": {
+            "metric": "hbase.regionserver.fsWriteLatencyHistogram_99th_percentile",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/storefiles": {
+            "metric": "regionserver.Server.storeFileCount",
+            "pointInTime": false,
+            "temporal": true
+          },
+          "metrics/rpc/next_num_ops": {
+            "metric": "rpc.rpc.next_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/getBlockCacheColumnFamilySummaries_avg_time": {
+            "metric": "rpc.rpc.getBlockCacheColumnFamilySummaries_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/slowDeleteCount": {
+            "metric": "regionserver.Server.slowDeleteCount",
+            "pointInTime": false,
+            "temporal": true
+          },
+          "metrics/rpc/checkAndDelete_avg_time": {
+            "metric": "rpc.rpc.checkAndDelete_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/closeRegion/aboveOneSec/_num_ops": {
+            "metric": "rpc.rpc.closeRegion.aboveOneSec._num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/getHServerInfo_avg_time": {
+            "metric": "rpc.rpc.getHServerInfo_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/jvm/logInfo": {
+            "metric": "jvm.JvmMetrics.LogInfo",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/getZooKeeper_avg_time": {
+            "metric": "rpc.rpc.getZooKeeper_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/hlogFileCount": {
+            "metric": "hbase.regionserver.hlogFileCount",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/getRequestLatency_95th_percentile": {
+            "metric": "regionserver.Server.Get_95th_percentile",
+            "pointInTime": false,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/deleteRequestLatency_95th_percentile": {
+            "metric": "regionserver.Server.Delete_95th_percentile",
+            "pointInTime": false,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/memstoreSizeMB": {
+            "metric": "regionserver.Server.memStoreSize",
+            "pointInTime": false,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/fsReadLatencyHistogram_median": {
+            "metric": "hbase.regionserver.fsReadLatencyHistogram_median",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/getProtocolSignature_num_ops": {
+            "metric": "rpc.rpc.getProtocolSignature_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/getProtocolVersion/aboveOneSec/_num_ops": {
+            "metric": "rpc.rpc.getProtocolVersion.aboveOneSec._num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/deleteRequestLatency_75th_percentile": {
+            "metric": "regionserver.Server.Delete_75th_percentile",
+            "pointInTime": false,
+            "temporal": true
+          },
+          "metrics/rpc/rpcAuthorizationSuccesses": {
+            "metric": "rpc.rpc.rpcAuthorizationSuccesses",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/totalStaticBloomSizeKB": {
+            "metric": "regionserver.Server.staticBloomSize",
+            "pointInTime": false,
+            "temporal": true
+          },
+          "metrics/rpc/checkAndPut_num_ops": {
+            "metric": "rpc.rpc.checkAndPut_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/increment_avg_time": {
+            "metric": "rpc.rpc.increment_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          }
+        }
+      },
+      {
+        "type": "jmx",
+        "metrics": {
+          "metrics/hbase/regionserver/slowPutCount": {
+            "metric": "Hadoop:service=HBase,name=RegionServer,sub=Server.slowPutCount",
+            "pointInTime": true,
+            "temporal": false
+          },
+          "metrics/hbase/regionserver/percentFilesLocal": {
+            "metric": "Hadoop:service=HBase,name=RegionServer,sub=Server.percentFilesLocal",
+            "pointInTime": true,
+            "temporal": false
+          },
+          "metrics/hbase/regionserver/deleteRequestLatency_min": {
+            "metric": "Hadoop:service=HBase,name=RegionServer,sub=Server.Delete_min",
+            "pointInTime": true,
+            "temporal": false
+          },
+          "metrics/hbase/regionserver/blockCacheFree": {
+            "metric": "Hadoop:service=HBase,name=RegionServer,sub=Server.blockCacheFreeSize",
+            "pointInTime": true,
+            "temporal": false
+          },
+          "metrics/hbase/regionserver/mutationsWithoutWALSize": {
+            "metric": "Hadoop:service=HBase,name=RegionServer,sub=Server.mutationsWithoutWALSize",
+            "pointInTime": true,
+            "temporal": false
+          },
+          "metrics/hbase/regionserver/blockCacheMissCount": {
+            "metric": "Hadoop:service=HBase,name=RegionServer,sub=Server.blockCacheMissCount",
+            "pointInTime": true,
+            "temporal": false
+          },
+          "metrics/hbase/regionserver/flushQueueSize": {
+            "metric": "Hadoop:service=HBase,name=RegionServer,sub=Server.flushQueueLength",
+            "pointInTime": true,
+            "temporal": false
+          },
+          "metrics/hbase/regionserver/deleteRequestLatency_99th_percentile": {
+            "metric": "Hadoop:service=HBase,name=RegionServer,sub=Server.Delete_99th_percentile",
+            "pointInTime": true,
+            "temporal": false
+          },
+          "metrics/hbase/regionserver/getRequestLatency_num_ops": {
+            "metric": "Hadoop:service=HBase,name=RegionServer,sub=Server.Get_num_ops",
+            "pointInTime": true,
+            "temporal": false
+          },
+          "metrics/hbase/regionserver/slowAppendCount": {
+            "metric": "Hadoop:service=HBase,name=RegionServer,sub=Server.slowAppendCount",
+            "pointInTime": true,
+            "temporal": false
+          },
+          "metrics/hbase/regionserver/blockCacheSize": {
+            "metric": "Hadoop:service=HBase,name=RegionServer,sub=Server.blockCacheSize",
+            "pointInTime": true,
+            "temporal": false
+          },
+          "metrics/hbase/regionserver/putRequestLatency_num_ops": {
+            "metric": "Hadoop:service=HBase,name=RegionServer,sub=Server.Mutate_num_ops",
+            "pointInTime": true,
+            "temporal": false
+          },
+          "metrics/hbase/regionserver/slowIncrementCount": {
+            "metric": "Hadoop:service=HBase,name=RegionServer,sub=Server.slowIncrementCount",
+            "pointInTime": true,
+            "temporal": false
+          },
+          "metrics/hbase/regionserver/blockCacheEvictedCount": {
+            "metric": "Hadoop:service=HBase,name=RegionServer,sub=Server.blockCacheEvictionCount",
+            "pointInTime": true,
+            "temporal": false
+          },
+          "metrics/hbase/regionserver/putRequestLatency_95th_percentile": {
+            "metric": "Hadoop:service=HBase,name=RegionServer,sub=Server.Mutate_95th_percentile",
+            "pointInTime": true,
+            "temporal": false
+          },
+          "metrics/hbase/regionserver/compactionQueueSize": {
+            "metric": "Hadoop:service=HBase,name=RegionServer,sub=Server.compactionQueueLength",
+            "pointInTime": true,
+            "temporal": false
+          },
+          "metrics/hbase/regionserver/putRequestLatency_median": {
+            "metric": "Hadoop:service=HBase,name=RegionServer,sub=Server.Mutate_median",
+            "pointInTime": true,
+            "temporal": false
+          },
+          "metrics/hbase/regionserver/deleteRequestLatency_mean": {
+            "metric": "Hadoop:service=HBase,name=RegionServer,sub=Server.Delete_mean",
+            "pointInTime": true,
+            "temporal": false
+          },
+          "metrics/hbase/regionserver/slowGetCount": {
+            "metric": "Hadoop:service=HBase,name=RegionServer,sub=Server.slowGetCount",
+            "pointInTime": true,
+            "temporal": false
+          },
+          "metrics/hbase/regionserver/blockCacheCount": {
+            "metric": "Hadoop:service=HBase,name=RegionServer,sub=Server.blockCacheCount",
+            "pointInTime": true,
+            "temporal": false
+          },
+          "metrics/hbase/regionserver/getRequestLatency_75th_percentile": {
+            "metric": "Hadoop:service=HBase,name=RegionServer,sub=Server.Get_75th_percentile",
+            "pointInTime": true,
+            "temporal": false
+          },
+          "metrics/hbase/regionserver/readRequestsCount": {
+            "metric": "Hadoop:service=HBase,name=RegionServer,sub=Server.readRequestCount",
+            "pointInTime": true,
+            "temporal": false
+          },
+          "metrics/hbase/regionserver/putRequestLatency_min": {
+            "metric": "Hadoop:service=HBase,name=RegionServer,sub=Server.Mutate_min",
+            "pointInTime": true,
+            "temporal": false
+          },
+          "metrics/hbase/regionserver/storefileIndexSizeMB": {
+            "metric": "Hadoop:service=HBase,name=RegionServer,sub=Server.storeFileIndexSize",
+            "pointInTime": true,
+            "temporal": false
+          },
+          "metrics/hbase/regionserver/deleteRequestLatency_median": {
+            "metric": "Hadoop:service=HBase,name=RegionServer,sub=Server.Delete_median",
+            "pointInTime": true,
+            "temporal": false
+          },
+          "metrics/hbase/regionserver/putRequestLatency_max": {
+            "metric": "Hadoop:service=HBase,name=RegionServer,sub=Server.Mutate_max",
+            "pointInTime": true,
+            "temporal": false
+          },
+          "metrics/hbase/regionserver/totalStaticIndexSizeKB": {
+            "metric": "Hadoop:service=HBase,name=RegionServer,sub=Server.staticIndexSize",
+            "pointInTime": true,
+            "temporal": false
+          },
+          "metrics/hbase/regionserver/deleteRequestLatency_num_ops": {
+            "metric": "Hadoop:service=HBase,name=RegionServer,sub=Server.Delete_num_ops",
+            "pointInTime": true,
+            "temporal": false
+          },
+          "metrics/hbase/regionserver/putRequestLatency_mean": {
+            "metric": "Hadoop:service=HBase,name=RegionServer,sub=Server.Mutate_mean",
+            "pointInTime": true,
+            "temporal": false
+          },
+          "metrics/hbase/regionserver/requests": {
+            "metric": "Hadoop:service=HBase,name=RegionServer,sub=Server.totalRequestCount",
+            "pointInTime": true,
+            "temporal": false
+          },
+          "metrics/hbase/regionserver/storefiles": {
+            "metric": "Hadoop:service=HBase,name=RegionServer,sub=Server.storeFileCount",
+            "pointInTime": true,
+            "temporal": false
+          },
+          "metrics/hbase/regionserver/mutationsWithoutWALCount": {
+            "metric": "Hadoop:service=HBase,name=RegionServer,sub=Server.mutationsWithoutWALCount",
+            "pointInTime": true,
+            "temporal": false
+          },
+          "metrics/hbase/regionserver/writeRequestsCount": {
+            "metric": "Hadoop:service=HBase,name=RegionServer,sub=Server.writeRequestCount",
+            "pointInTime": true,
+            "temporal": false
+          },
+          "metrics/hbase/regionserver/getRequestLatency_median": {
+            "metric": "Hadoop:service=HBase,name=RegionServer,sub=Server.Get_median",
+            "pointInTime": true,
+            "temporal": false
+          },
+          "metrics/hbase/regionserver/slowDeleteCount": {
+            "metric": "Hadoop:service=HBase,name=RegionServer,sub=Server.slowDeleteCount",
+            "pointInTime": true,
+            "temporal": false
+          },
+          "metrics/hbase/regionserver/putRequestLatency_99th_percentile": {
+            "metric": "Hadoop:service=HBase,name=RegionServer,sub=Server.Mutate_99th_percentile",
+            "pointInTime": true,
+            "temporal": false
+          },
+          "metrics/hbase/regionserver/stores": {
+            "metric": "Hadoop:service=HBase,name=RegionServer,sub=Server.storeCount",
+            "pointInTime": true,
+            "temporal": false
+          },
+          "metrics/hbase/regionserver/getRequestLatency_min": {
+            "metric": "Hadoop:service=HBase,name=RegionServer,sub=Server.Get_min",
+            "pointInTime": true,
+            "temporal": false
+          },
+          "metrics/hbase/regionserver/getRequestLatency_95th_percentile": {
+            "metric": "Hadoop:service=HBase,name=RegionServer,sub=Server.Get_95th_percentile",
+            "pointInTime": true,
+            "temporal": false
+          },
+          "metrics/hbase/regionserver/deleteRequestLatency_95th_percentile": {
+            "metric": "Hadoop:service=HBase,name=RegionServer,sub=Server.Delete_95th_percentile",
+            "pointInTime": true,
+            "temporal": false
+          },
+          "metrics/hbase/regionserver/memstoreSizeMB": {
+            "metric": "Hadoop:service=HBase,name=RegionServer,sub=Server.memStoreSize",
+            "pointInTime": true,
+            "temporal": false
+          },
+          "metrics/hbase/regionserver/getRequestLatency_max": {
+            "metric": "Hadoop:service=HBase,name=RegionServer,sub=Server.Get_max",
+            "pointInTime": true,
+            "temporal": false
+          },
+          "metrics/hbase/regionserver/getRequestLatency_mean": {
+            "metric": "Hadoop:service=HBase,name=RegionServer,sub=Server.Get_mean",
+            "pointInTime": true,
+            "temporal": false
+          },
+          "metrics/hbase/regionserver/deleteRequestLatency_75th_percentile": {
+            "metric": "Hadoop:service=HBase,name=RegionServer,sub=Server.Delete_75th_percentile",
+            "pointInTime": true,
+            "temporal": false
+          },
+          "metrics/hbase/regionserver/deleteRequestLatency_max": {
+            "metric": "Hadoop:service=HBase,name=RegionServer,sub=Server.Delete_max",
+            "pointInTime": true,
+            "temporal": false
+          },
+          "metrics/hbase/regionserver/putRequestLatency_75th_percentile": {
+            "metric": "Hadoop:service=HBase,name=RegionServer,sub=Server.Mutate_75th_percentile",
+            "pointInTime": true,
+            "temporal": false
+          },
+          "metrics/hbase/regionserver/regions": {
+            "metric": "Hadoop:service=HBase,name=RegionServer,sub=Server.regionCount",
+            "pointInTime": true,
+            "temporal": false
+          },
+          "metrics/hbase/regionserver/totalStaticBloomSizeKB": {
+            "metric": "Hadoop:service=HBase,name=RegionServer,sub=Server.staticBloomSize",
+            "pointInTime": true,
+            "temporal": false
+          },
+          "metrics/hbase/regionserver/blockCacheHitCount": {
+            "metric": "Hadoop:service=HBase,name=RegionServer,sub=Server.blockCacheHitCount",
+            "pointInTime": true,
+            "temporal": false
+          },
+          "metrics/hbase/regionserver/getRequestLatency_99th_percentile": {
+            "metric": "Hadoop:service=HBase,name=RegionServer,sub=Server.Get_99th_percentile",
+            "pointInTime": true,
+            "temporal": false
+          }
+        }
+      }
+    ],
+    "HostComponent": [
+      {
+        "type": "ganglia",
+        "metrics": {
+          "metrics/hbase/regionserver/compactionTime_avg_time": {
+            "metric": "hbase.regionserver.compactionTime_avg_time",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/closeRegion_num_ops": {
+            "metric": "rpc.rpc.closeRegion_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/hbase/regionserver/mutationsWithoutWALSize": {
+            "metric": "regionserver.Server.mutationsWithoutWALSize",
+            "pointInTime": false,
+            "temporal": true
+          },
+          "metrics/rpc/unassign_num_ops": {
+            "metric": "rpc.rpc.unassign_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/modifyTable_num_ops": {
+            "metric": "rpc.rpc.modifyTable_num_ops",
+            "pointInTime": true,
+            "temporal": true
+          },
+          "metrics/rpc/splitRegion/aboveOneSec/_avg_time": {
+            "metric": "rpc.rpc.splitRegion.aboveOneSec._avg_time",
+            "pointInTime": tru

<TRUNCATED>

[3/3] git commit: AMBARI-4176. HBase on HDP1. Rewrite to resource management. (aonishuk)

Posted by ao...@apache.org.
AMBARI-4176. HBase on HDP1. Rewrite to resource management. (aonishuk)


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/aefbc614
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/aefbc614
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/aefbc614

Branch: refs/heads/trunk
Commit: aefbc614214c39b26fe1dcdfb54ca7817fb99e08
Parents: 47d2ff6
Author: Andrew Onischuk <ao...@hortonworks.com>
Authored: Wed Dec 25 10:07:58 2013 -0800
Committer: Andrew Onischuk <ao...@hortonworks.com>
Committed: Wed Dec 25 10:07:58 2013 -0800

----------------------------------------------------------------------
 .../HDP/1.3._/services/HBASE/metainfo.xml       |    83 +-
 .../HDP/1.3._/services/HBASE/metrics.json       | 13635 +++++++++++++++++
 .../HBASE/package/files/hbaseSmokeVerify.sh     |    32 +
 .../services/HBASE/package/scripts/__init__.py  |    19 +
 .../services/HBASE/package/scripts/functions.py |    67 +
 .../services/HBASE/package/scripts/hbase.py     |    91 +
 .../HBASE/package/scripts/hbase_client.py       |    52 +
 .../HBASE/package/scripts/hbase_master.py       |    74 +
 .../HBASE/package/scripts/hbase_regionserver.py |    75 +
 .../HBASE/package/scripts/hbase_service.py      |    46 +
 .../services/HBASE/package/scripts/params.py    |    81 +
 .../HBASE/package/scripts/service_check.py      |    89 +
 .../HBASE/package/scripts/status_params.py      |    25 +
 .../hadoop-metrics.properties-GANGLIA-MASTER.j2 |    50 +
 .../hadoop-metrics.properties-GANGLIA-RS.j2     |    50 +
 .../templates/hadoop-metrics.properties.j2      |    50 +
 .../HBASE/package/templates/hbase-env.sh.j2     |    82 +
 .../HBASE/package/templates/hbase-smoke.sh.j2   |    26 +
 .../package/templates/hbase_client_jaas.conf.j2 |     5 +
 .../templates/hbase_grant_permissions.j2        |    21 +
 .../package/templates/hbase_master_jaas.conf.j2 |     8 +
 .../templates/hbase_regionserver_jaas.conf.j2   |     8 +
 .../HBASE/package/templates/regionservers.j2    |     2 +
 23 files changed, 14654 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/aefbc614/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/metainfo.xml
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/metainfo.xml b/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/metainfo.xml
index 6643782..aedb8e0 100644
--- a/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/metainfo.xml
+++ b/ambari-server/src/main/resources/stacks/HDP/1.3._/services/HBASE/metainfo.xml
@@ -16,29 +16,78 @@
    limitations under the License.
 -->
 <metainfo>
-    <user>mapred</user>
-    <comment>Non-relational distributed database and centralized service for configuration management &amp; synchronization</comment>
-    <version>0.94.6.1.3.3.0</version>
-
-    <components>
+  <schemaVersion>2.0</schemaVersion>
+  <services>
+    <service>
+      <name>HBASE</name>
+      <comment>Non-relational distributed database and centralized service for configuration management &amp;
+        synchronization
+      </comment>
+      <version>0.94.6.1.3.3.0</version>
+      <components>
         <component>
-            <name>HBASE_MASTER</name>
-            <category>MASTER</category>
+          <name>HBASE_MASTER</name>
+          <category>MASTER</category>
+          <commandScript>
+            <script>scripts/hbase_master.py</script>
+            <scriptType>PYTHON</scriptType>
+            <timeout>600</timeout>
+          </commandScript>
         </component>
 
         <component>
-            <name>HBASE_REGIONSERVER</name>
-            <category>SLAVE</category>
+          <name>HBASE_REGIONSERVER</name>
+          <category>SLAVE</category>
+          <commandScript>
+            <script>scripts/hbase_regionserver.py</script>
+            <scriptType>PYTHON</scriptType>
+          </commandScript>
+          <customCommands>
+            <customCommand>
+              <name>DECOMMISSION</name>
+              <commandScript>
+                <script>scripts/hbase_regionserver.py</script>
+                <scriptType>PYTHON</scriptType>
+                <timeout>600</timeout>
+              </commandScript>
+            </customCommand>
+          </customCommands>
         </component>
 
         <component>
-            <name>HBASE_CLIENT</name>
-            <category>CLIENT</category>
+          <name>HBASE_CLIENT</name>
+          <category>CLIENT</category>
+          <commandScript>
+            <script>scripts/hbase_client.py</script>
+            <scriptType>PYTHON</scriptType>
+          </commandScript>
         </component>
-    </components>
-    <configuration-dependencies>
-      <config-type>global</config-type>
-      <config-type>hbase-site</config-type>
-      <config-type>hbase-policy</config-type>
-    </configuration-dependencies>
+      </components>
+
+      <osSpecifics>
+        <osSpecific>
+          <osType>centos6</osType>
+          <packages>
+            <package>
+              <type>rpm</type>
+              <name>hbase</name>
+            </package>
+          </packages>
+        </osSpecific>
+      </osSpecifics>
+
+      <commandScript>
+        <script>scripts/service_check.py</script>
+        <scriptType>PYTHON</scriptType>
+        <timeout>300</timeout>
+      </commandScript>
+
+      <configuration-dependencies>
+        <config-type>global</config-type>
+        <config-type>hbase-policy</config-type>
+        <config-type>hbase-site</config-type>
+      </configuration-dependencies>
+
+    </service>
+  </services>
 </metainfo>