http://git-wip-us.apache.org/repos/asf/ambari/blob/41006ebe/ambari-server/src/main/resources/common-services/HBASE/2.0.0.3.0/package/scripts/setup_ranger_hbase.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/HBASE/2.0.0.3.0/package/scripts/setup_ranger_hbase.py b/ambari-server/src/main/resources/common-services/HBASE/2.0.0.3.0/package/scripts/setup_ranger_hbase.py new file mode 100644 index 0000000..d32dce1 --- /dev/null +++ b/ambari-server/src/main/resources/common-services/HBASE/2.0.0.3.0/package/scripts/setup_ranger_hbase.py @@ -0,0 +1,106 @@ +#!/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.core.logger import Logger + +def setup_ranger_hbase(upgrade_type=None, service_name="hbase-master"): + import params + + if params.enable_ranger_hbase: + + stack_version = None + + if upgrade_type is not None: + stack_version = params.version + + if params.retryAble: + Logger.info("HBase: Setup ranger: command retry enables thus retrying if ranger admin is down !") + else: + Logger.info("HBase: Setup ranger: command retry not enabled thus skipping if ranger admin is down !") + + if params.xml_configurations_supported and params.enable_ranger_hbase and params.xa_audit_hdfs_is_enabled and service_name == 'hbase-master' : + params.HdfsResource("/ranger/audit", + type="directory", + action="create_on_execute", + owner=params.hdfs_user, + group=params.hdfs_user, + mode=0755, + recursive_chmod=True + ) + params.HdfsResource("/ranger/audit/hbaseMaster", + type="directory", + action="create_on_execute", + owner=params.hbase_user, + group=params.hbase_user, + mode=0700, + recursive_chmod=True + ) + params.HdfsResource("/ranger/audit/hbaseRegional", + type="directory", + action="create_on_execute", + owner=params.hbase_user, + group=params.hbase_user, + mode=0700, + recursive_chmod=True + ) + params.HdfsResource(None, action="execute") + + if params.xml_configurations_supported: + api_version=None + if params.stack_supports_ranger_kerberos: + api_version='v2' + from resource_management.libraries.functions.setup_ranger_plugin_xml import setup_ranger_plugin + setup_ranger_plugin('hbase-client', 'hbase', params.previous_jdbc_jar, params.downloaded_custom_connector, + params.driver_curl_source, params.driver_curl_target, params.java64_home, + params.repo_name, params.hbase_ranger_plugin_repo, + params.ranger_env, params.ranger_plugin_properties, + params.policy_user, params.policymgr_mgr_url, + params.enable_ranger_hbase, conf_dict=params.hbase_conf_dir, + component_user=params.hbase_user, component_group=params.user_group, cache_service_list=['hbaseMaster', 'hbaseRegional'], + plugin_audit_properties=params.config['configurations']['ranger-hbase-audit'], plugin_audit_attributes=params.config['configuration_attributes']['ranger-hbase-audit'], + plugin_security_properties=params.config['configurations']['ranger-hbase-security'], plugin_security_attributes=params.config['configuration_attributes']['ranger-hbase-security'], + plugin_policymgr_ssl_properties=params.config['configurations']['ranger-hbase-policymgr-ssl'], plugin_policymgr_ssl_attributes=params.config['configuration_attributes']['ranger-hbase-policymgr-ssl'], + component_list=['hbase-client', 'hbase-master', 'hbase-regionserver'], audit_db_is_enabled=params.xa_audit_db_is_enabled, + credential_file=params.credential_file, xa_audit_db_password=params.xa_audit_db_password, + ssl_truststore_password=params.ssl_truststore_password, ssl_keystore_password=params.ssl_keystore_password, + stack_version_override = stack_version, skip_if_rangeradmin_down= not params.retryAble, api_version=api_version, + is_security_enabled = params.security_enabled, + is_stack_supports_ranger_kerberos = params.stack_supports_ranger_kerberos if params.security_enabled else None, + component_user_principal=params.ranger_hbase_principal if params.security_enabled else None, + component_user_keytab=params.ranger_hbase_keytab if params.security_enabled else None) + + else: + from resource_management.libraries.functions.setup_ranger_plugin import setup_ranger_plugin + setup_ranger_plugin('hbase-client', 'hbase', params.previous_jdbc_jar, + params.downloaded_custom_connector, params.driver_curl_source, + params.driver_curl_target, params.java64_home, + params.repo_name, params.hbase_ranger_plugin_repo, + params.ranger_env, params.ranger_plugin_properties, + params.policy_user, params.policymgr_mgr_url, + params.enable_ranger_hbase, conf_dict=params.hbase_conf_dir, + component_user=params.hbase_user, component_group=params.user_group, cache_service_list=['hbaseMaster', 'hbaseRegional'], + plugin_audit_properties=params.config['configurations']['ranger-hbase-audit'], plugin_audit_attributes=params.config['configuration_attributes']['ranger-hbase-audit'], + plugin_security_properties=params.config['configurations']['ranger-hbase-security'], plugin_security_attributes=params.config['configuration_attributes']['ranger-hbase-security'], + plugin_policymgr_ssl_properties=params.config['configurations']['ranger-hbase-policymgr-ssl'], plugin_policymgr_ssl_attributes=params.config['configuration_attributes']['ranger-hbase-policymgr-ssl'], + component_list=['hbase-client', 'hbase-master', 'hbase-regionserver'], audit_db_is_enabled=params.xa_audit_db_is_enabled, + credential_file=params.credential_file, xa_audit_db_password=params.xa_audit_db_password, + ssl_truststore_password=params.ssl_truststore_password, ssl_keystore_password=params.ssl_keystore_password, + stack_version_override = stack_version, skip_if_rangeradmin_down= not params.retryAble) + else: + Logger.info('Ranger HBase plugin is not enabled')
http://git-wip-us.apache.org/repos/asf/ambari/blob/41006ebe/ambari-server/src/main/resources/common-services/HBASE/2.0.0.3.0/package/scripts/status_params.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/HBASE/2.0.0.3.0/package/scripts/status_params.py b/ambari-server/src/main/resources/common-services/HBASE/2.0.0.3.0/package/scripts/status_params.py new file mode 100644 index 0000000..bc75c78 --- /dev/null +++ b/ambari-server/src/main/resources/common-services/HBASE/2.0.0.3.0/package/scripts/status_params.py @@ -0,0 +1,68 @@ +#!/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 ambari_commons.os_check import OSCheck + +from resource_management.libraries.functions import format +from resource_management.libraries.functions.default import default +from resource_management.libraries.functions.version import format_stack_version +from resource_management.libraries.functions.stack_features import check_stack_feature +from resource_management.libraries.functions import StackFeature +from resource_management.libraries.functions import get_kinit_path +from resource_management.libraries.script.script import Script + +# a map of the Ambari role to the component name +# for use with <stack-root>/current/<component> +SERVER_ROLE_DIRECTORY_MAP = { + 'HBASE_MASTER' : 'hbase-master', + 'HBASE_REGIONSERVER' : 'hbase-regionserver', + 'HBASE_CLIENT' : 'hbase-client' +} + +component_directory = Script.get_component_from_role(SERVER_ROLE_DIRECTORY_MAP, "HBASE_CLIENT") + +config = Script.get_config() + +if OSCheck.is_windows_family(): + hbase_master_win_service_name = "master" + hbase_regionserver_win_service_name = "regionserver" +else: + pid_dir = config['configurations']['hbase-env']['hbase_pid_dir'] + hbase_user = config['configurations']['hbase-env']['hbase_user'] + + hbase_master_pid_file = format("{pid_dir}/hbase-{hbase_user}-master.pid") + regionserver_pid_file = format("{pid_dir}/hbase-{hbase_user}-regionserver.pid") + phoenix_pid_file = format("{pid_dir}/phoenix-{hbase_user}-server.pid") + + # Security related/required params + hostname = config['hostname'] + security_enabled = config['configurations']['cluster-env']['security_enabled'] + kinit_path_local = get_kinit_path(default('/configurations/kerberos-env/executable_search_paths', None)) + tmp_dir = Script.get_tmp_dir() + + stack_version_unformatted = str(config['hostLevelParams']['stack_version']) + stack_version_formatted = format_stack_version(stack_version_unformatted) + stack_root = Script.get_stack_root() + + hbase_conf_dir = "/etc/hbase/conf" + limits_conf_dir = "/etc/security/limits.d" + if stack_version_formatted and check_stack_feature(StackFeature.ROLLING_UPGRADE, stack_version_formatted): + hbase_conf_dir = format("{stack_root}/current/{component_directory}/conf") + +stack_name = default("/hostLevelParams/stack_name", None) http://git-wip-us.apache.org/repos/asf/ambari/blob/41006ebe/ambari-server/src/main/resources/common-services/HBASE/2.0.0.3.0/package/scripts/upgrade.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/HBASE/2.0.0.3.0/package/scripts/upgrade.py b/ambari-server/src/main/resources/common-services/HBASE/2.0.0.3.0/package/scripts/upgrade.py new file mode 100644 index 0000000..703fe26 --- /dev/null +++ b/ambari-server/src/main/resources/common-services/HBASE/2.0.0.3.0/package/scripts/upgrade.py @@ -0,0 +1,106 @@ + +#!/usr/bin/env python +""" +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +""" +import re +import socket + +from resource_management.core import shell +from resource_management.core.exceptions import ComponentIsNotRunning +from resource_management.core.exceptions import Fail +from resource_management.core.logger import Logger +from resource_management.libraries.functions import conf_select, stack_select +from resource_management.libraries.functions.constants import StackFeature +from resource_management.libraries.functions.stack_features import check_stack_feature +from resource_management.libraries.functions.decorator import retry +from resource_management.libraries.functions.format import format +from resource_management.libraries.functions import check_process_status + + +def prestart(env, stack_component): + import params + + if params.version and check_stack_feature(StackFeature.ROLLING_UPGRADE, params.version): + conf_select.select(params.stack_name, "hbase", params.version) + stack_select.select(stack_component, params.version) + +def post_regionserver(env): + import params + env.set_params(params) + + check_cmd = "echo 'status \"simple\"' | {0} shell".format(params.hbase_cmd) + + exec_cmd = "{0} {1}".format(params.kinit_cmd, check_cmd) + is_regionserver_registered(exec_cmd, params.hbase_user, params.hostname, re.IGNORECASE) + + +def is_region_server_process_running(): + try: + pid_file = format("{pid_dir}/hbase-{hbase_user}-regionserver.pid") + check_process_status(pid_file) + return True + except ComponentIsNotRunning: + return False + + +@retry(times=30, sleep_time=30, err_class=Fail) +def is_regionserver_registered(cmd, user, hostname, regex_search_flags): + """ + Queries HBase through the HBase shell to see which servers have successfully registered. This is + useful in cases, such as upgrades, where we must ensure that a RegionServer has not only started, + but also completed it's registration handshake before moving into upgrading the next RegionServer. + + The hbase shell is used along with the "show 'simple'" command in order to determine if the + specified host has registered. + :param cmd: + :param user: + :param hostname: + :param regex_search_flags: + :return: + """ + if not is_region_server_process_running(): + Logger.info("RegionServer process is not running") + raise Fail("RegionServer process is not running") + + # use hbase shell with "status 'simple'" command + code, out = shell.call(cmd, user=user) + + # if we don't have ouput, then we can't check + if not out: + raise Fail("Unable to retrieve status information from the HBase shell") + + # try matching the hostname with a colon (which indicates a bound port) + bound_hostname_to_match = hostname + ":" + match = re.search(bound_hostname_to_match, out, regex_search_flags) + + # if there's no match, try again with the IP address + if not match: + try: + ip_address = socket.gethostbyname(hostname) + bound_ip_address_to_match = ip_address + ":" + match = re.search(bound_ip_address_to_match, out, regex_search_flags) + except socket.error: + # this is merely a backup, so just log that it failed + Logger.warning("Unable to lookup the IP address of {0}, reverse DNS lookup may not be working.".format(hostname)) + pass + + # failed with both a hostname and an IP address, so raise the Fail and let the function auto retry + if not match: + raise Fail( + "The RegionServer named {0} has not yet registered with the HBase Master".format(hostname)) http://git-wip-us.apache.org/repos/asf/ambari/blob/41006ebe/ambari-server/src/main/resources/common-services/HBASE/2.0.0.3.0/package/templates/hbase-smoke.sh.j2 ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/HBASE/2.0.0.3.0/package/templates/hbase-smoke.sh.j2 b/ambari-server/src/main/resources/common-services/HBASE/2.0.0.3.0/package/templates/hbase-smoke.sh.j2 new file mode 100644 index 0000000..458da95 --- /dev/null +++ b/ambari-server/src/main/resources/common-services/HBASE/2.0.0.3.0/package/templates/hbase-smoke.sh.j2 @@ -0,0 +1,44 @@ +{# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#} + +# +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# +# +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/41006ebe/ambari-server/src/main/resources/common-services/HBASE/2.0.0.3.0/package/templates/hbase.conf.j2 ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/HBASE/2.0.0.3.0/package/templates/hbase.conf.j2 b/ambari-server/src/main/resources/common-services/HBASE/2.0.0.3.0/package/templates/hbase.conf.j2 new file mode 100644 index 0000000..3580db0 --- /dev/null +++ b/ambari-server/src/main/resources/common-services/HBASE/2.0.0.3.0/package/templates/hbase.conf.j2 @@ -0,0 +1,35 @@ +{# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#} + +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +{{hbase_user}} - nofile {{hbase_user_nofile_limit}} +{{hbase_user}} - nproc {{hbase_user_nproc_limit}} http://git-wip-us.apache.org/repos/asf/ambari/blob/41006ebe/ambari-server/src/main/resources/common-services/HBASE/2.0.0.3.0/package/templates/hbase_client_jaas.conf.j2 ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/HBASE/2.0.0.3.0/package/templates/hbase_client_jaas.conf.j2 b/ambari-server/src/main/resources/common-services/HBASE/2.0.0.3.0/package/templates/hbase_client_jaas.conf.j2 new file mode 100644 index 0000000..38f9721 --- /dev/null +++ b/ambari-server/src/main/resources/common-services/HBASE/2.0.0.3.0/package/templates/hbase_client_jaas.conf.j2 @@ -0,0 +1,23 @@ +{# +# 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. +#} + +Client { +com.sun.security.auth.module.Krb5LoginModule required +useKeyTab=false +useTicketCache=true; +}; http://git-wip-us.apache.org/repos/asf/ambari/blob/41006ebe/ambari-server/src/main/resources/common-services/HBASE/2.0.0.3.0/package/templates/hbase_grant_permissions.j2 ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/HBASE/2.0.0.3.0/package/templates/hbase_grant_permissions.j2 b/ambari-server/src/main/resources/common-services/HBASE/2.0.0.3.0/package/templates/hbase_grant_permissions.j2 new file mode 100644 index 0000000..3378983 --- /dev/null +++ b/ambari-server/src/main/resources/common-services/HBASE/2.0.0.3.0/package/templates/hbase_grant_permissions.j2 @@ -0,0 +1,39 @@ +{# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#} + +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# +# +grant '{{smoke_test_user}}', '{{smokeuser_permissions}}' +exit \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ambari/blob/41006ebe/ambari-server/src/main/resources/common-services/HBASE/2.0.0.3.0/package/templates/hbase_master_jaas.conf.j2 ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/HBASE/2.0.0.3.0/package/templates/hbase_master_jaas.conf.j2 b/ambari-server/src/main/resources/common-services/HBASE/2.0.0.3.0/package/templates/hbase_master_jaas.conf.j2 new file mode 100644 index 0000000..a93c36c --- /dev/null +++ b/ambari-server/src/main/resources/common-services/HBASE/2.0.0.3.0/package/templates/hbase_master_jaas.conf.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. +#} + +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/41006ebe/ambari-server/src/main/resources/common-services/HBASE/2.0.0.3.0/package/templates/hbase_queryserver_jaas.conf.j2 ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/HBASE/2.0.0.3.0/package/templates/hbase_queryserver_jaas.conf.j2 b/ambari-server/src/main/resources/common-services/HBASE/2.0.0.3.0/package/templates/hbase_queryserver_jaas.conf.j2 new file mode 100644 index 0000000..c5a6c3f --- /dev/null +++ b/ambari-server/src/main/resources/common-services/HBASE/2.0.0.3.0/package/templates/hbase_queryserver_jaas.conf.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. +#} + +Client { +com.sun.security.auth.module.Krb5LoginModule required +useKeyTab=true +storeKey=true +useTicketCache=false +keyTab="{{queryserver_keytab_path}}" +principal="{{queryserver_jaas_princ}}"; +}; http://git-wip-us.apache.org/repos/asf/ambari/blob/41006ebe/ambari-server/src/main/resources/common-services/HBASE/2.0.0.3.0/package/templates/hbase_regionserver_jaas.conf.j2 ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/HBASE/2.0.0.3.0/package/templates/hbase_regionserver_jaas.conf.j2 b/ambari-server/src/main/resources/common-services/HBASE/2.0.0.3.0/package/templates/hbase_regionserver_jaas.conf.j2 new file mode 100644 index 0000000..7097481 --- /dev/null +++ b/ambari-server/src/main/resources/common-services/HBASE/2.0.0.3.0/package/templates/hbase_regionserver_jaas.conf.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. +#} + +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/41006ebe/ambari-server/src/main/resources/common-services/HBASE/2.0.0.3.0/package/templates/input.config-hbase.json.j2 ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/HBASE/2.0.0.3.0/package/templates/input.config-hbase.json.j2 b/ambari-server/src/main/resources/common-services/HBASE/2.0.0.3.0/package/templates/input.config-hbase.json.j2 new file mode 100644 index 0000000..94fbc64 --- /dev/null +++ b/ambari-server/src/main/resources/common-services/HBASE/2.0.0.3.0/package/templates/input.config-hbase.json.j2 @@ -0,0 +1,79 @@ +{# + # 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. + #} +{ + "input":[ + { + "type":"hbase_master", + "rowtype":"service", + "path":"{{default('/configurations/hbase-env/hbase_log_dir', '/var/log/hbase')}}/hbase-*-master-*.log" + }, + { + "type":"hbase_regionserver", + "rowtype":"service", + "path":"{{default('/configurations/hbase-env/hbase_log_dir', '/var/log/hbase')}}/hbase-*-regionserver-*.log" + }, + { + "type":"hbase_phoenix_server", + "rowtype":"service", + "path":"{{default('/configurations/hbase-env/hbase_log_dir', '/var/log/hbase')}}/phoenix-*-server.log" + } + ], + "filter":[ + { + "filter":"grok", + "conditions":{ + "fields":{ + "type":[ + "hbase_master", + "hbase_regionserver" + ] + } + }, + "log4j_format":"%d{ISO8601} %-5p [%t] %c{2}: %m%n", + "multiline_pattern":"^(%{TIMESTAMP_ISO8601:logtime})", + "message_pattern":"(?m)^%{TIMESTAMP_ISO8601:logtime}%{SPACE}%{LOGLEVEL:level}%{SPACE}\\[%{DATA:thread_name}\\]%{SPACE}%{JAVACLASS:logger_name}:%{SPACE}%{GREEDYDATA:log_message}", + "post_map_values":{ + "logtime":{ + "map_date":{ + "target_date_pattern":"yyyy-MM-dd HH:mm:ss,SSS" + } + } + } + }, + { + "filter":"grok", + "conditions":{ + "fields":{ + "type":[ + "hbase_phoenix_server" + ] + } + }, + "log4j_format":"%d{ISO8601} %-5p [%t] %c{2}: %m%n", + "multiline_pattern":"^(%{TIMESTAMP_ISO8601:logtime})", + "message_pattern":"(?m)^%{TIMESTAMP_ISO8601:logtime}%{SPACE}%{LOGLEVEL:level}%{SPACE}%{JAVACLASS:logger_name}:%{SPACE}%{GREEDYDATA:log_message}", + "post_map_values":{ + "logtime":{ + "map_date":{ + "target_date_pattern":"yyyy-MM-dd HH:mm:ss,SSS" + } + } + } + } + ] +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ambari/blob/41006ebe/ambari-server/src/main/resources/common-services/HBASE/2.0.0.3.0/package/templates/regionservers.j2 ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/HBASE/2.0.0.3.0/package/templates/regionservers.j2 b/ambari-server/src/main/resources/common-services/HBASE/2.0.0.3.0/package/templates/regionservers.j2 new file mode 100644 index 0000000..fc6cc37 --- /dev/null +++ b/ambari-server/src/main/resources/common-services/HBASE/2.0.0.3.0/package/templates/regionservers.j2 @@ -0,0 +1,20 @@ +{# +# 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. +#} + +{% for host in rs_hosts %}{{host}} +{% endfor %} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ambari/blob/41006ebe/ambari-server/src/main/resources/common-services/HBASE/2.0.0.3.0/quicklinks/quicklinks.json ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/HBASE/2.0.0.3.0/quicklinks/quicklinks.json b/ambari-server/src/main/resources/common-services/HBASE/2.0.0.3.0/quicklinks/quicklinks.json new file mode 100644 index 0000000..5568122 --- /dev/null +++ b/ambari-server/src/main/resources/common-services/HBASE/2.0.0.3.0/quicklinks/quicklinks.json @@ -0,0 +1,97 @@ +{ + "name": "default", + "description": "default quick links configuration", + "configuration": { + "protocol": + { + "type":"http" + }, + + "links": [ + { + "name": "hbase_master_ui", + "label": "HBase Master UI", + "url":"%@://%@:%@/master-status", + "requires_user_name": "false", + "port":{ + "http_property": "hbase.master.info.port", + "http_default_port": "60010", + "https_property": "hbase.master.info.port", + "https_default_port": "60443", + "regex": "", + "site": "hbase-site" + } + }, + { + "name": "hbase_logs", + "label": "HBase Logs", + "url":"%@://%@:%@/logs", + "requires_user_name": "false", + "port":{ + "http_property": "hbase.master.info.port", + "http_default_port": "60010", + "https_property": "hbase.master.info.port", + "https_default_port": "60443", + "regex": "", + "site": "hbase-site" + } + }, + { + "name": "zookeeper_info", + "label": "Zookeeper Info", + "url":"%@://%@:%@/zk.jsp", + "requires_user_name": "false", + "port":{ + "http_property": "hbase.master.info.port", + "http_default_port": "60010", + "https_property": "hbase.master.info.port", + "https_default_port": "60443", + "regex": "", + "site": "hbase-site" + } + }, + { + "name": "hbase_master_jmx", + "label": "HBase Master JMX", + "url":"%@://%@:%@/jmx", + "requires_user_name": "false", + "port":{ + "http_property": "hbase.master.info.port", + "http_default_port": "60010", + "https_property": "hbase.master.info.port", + "https_default_port": "60443", + "regex": "", + "site": "hbase-site" + } + }, + { + "name": "debug_dump", + "label": "Debug Dump", + "url":"%@://%@:%@/dump", + "requires_user_name": "false", + "port":{ + "http_property": "hbase.master.info.port", + "http_default_port": "60010", + "https_property": "hbase.master.info.port", + "https_default_port": "60443", + "regex": "", + "site": "hbase-site" + } + }, + { + "name": "thread_stacks", + "label": "Thread Stacks", + "url":"%@://%@:%@/stacks", + "requires_user_name": "false", + "port":{ + "http_property": "hbase.master.info.port", + "http_default_port": "60010", + "https_property": "hbase.master.info.port", + "https_default_port": "60443", + "regex": "", + "site": "hbase-site" + } + } + ] + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ambari/blob/41006ebe/ambari-server/src/main/resources/common-services/HBASE/2.0.0.3.0/role_command_order.json ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/HBASE/2.0.0.3.0/role_command_order.json b/ambari-server/src/main/resources/common-services/HBASE/2.0.0.3.0/role_command_order.json new file mode 100644 index 0000000..44d0c61 --- /dev/null +++ b/ambari-server/src/main/resources/common-services/HBASE/2.0.0.3.0/role_command_order.json @@ -0,0 +1,10 @@ +{ + "general_deps" : { + "_comment" : "dependencies for HBase", + "HBASE_REGIONSERVER-START": ["HBASE_MASTER-START"], + "HBASE_SERVICE_CHECK-SERVICE_CHECK": ["HBASE_MASTER-START", "HBASE_REGIONSERVER-START"], + "HBASE_MASTER-STOP": ["HBASE_REGIONSERVER-STOP"], + "HBASE_MASTER-START": ["NAMENODE-START", "DATANODE-START", "ZOOKEEPER_SERVER-START", "RANGER_USERSYNC-START"], + "PHOENIX_QUERY_SERVER-START": ["HBASE_MASTER-START"] + } +} http://git-wip-us.apache.org/repos/asf/ambari/blob/41006ebe/ambari-server/src/main/resources/common-services/HBASE/2.0.0.3.0/themes/theme.json ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/HBASE/2.0.0.3.0/themes/theme.json b/ambari-server/src/main/resources/common-services/HBASE/2.0.0.3.0/themes/theme.json new file mode 100644 index 0000000..6ed89a1 --- /dev/null +++ b/ambari-server/src/main/resources/common-services/HBASE/2.0.0.3.0/themes/theme.json @@ -0,0 +1,407 @@ +{ + "name": "default", + "description": "Default theme for HBASE service", + "configuration": { + "layouts": [ + { + "name": "default", + "tabs": [ + { + "name": "settings", + "display-name": "Settings", + "layout": { + "tab-columns": "3", + "tab-rows": "3", + "sections": [ + { + "name": "section-hbase-memory", + "display-name": "Server", + "row-index": "0", + "column-index": "0", + "row-span": "1", + "column-span": "2", + "section-columns": "2", + "section-rows": "1", + "subsections": [ + { + "name": "subsection-hbase-memory-col1", + "row-index": "0", + "column-index": "0", + "row-span": "1", + "column-span": "1" + }, + { + "name": "subsection-hbase-memory-col2", + "row-index": "0", + "column-index": "1", + "row-span": "1", + "column-span": "1" + } + ] + }, + { + "name": "section-hbase-client", + "display-name": "Client", + "row-index": "0", + "column-index": "2", + "row-span": "1", + "column-span": "1", + "section-columns": "1", + "section-rows": "1", + "subsections": [ + { + "name": "subsection-hbase-client-col1", + "row-index": "0", + "column-index": "0", + "row-span": "1", + "column-span": "1" + } + ] + }, + { + "name": "section-hbase-disk", + "display-name": "Disk", + "row-index": "1", + "column-index": "0", + "row-span": "1", + "column-span": "3", + "section-columns": "3", + "section-rows": "1", + "subsections": [ + { + "name": "subsection-hbase-disk-col1", + "row-index": "0", + "column-index": "0", + "row-span": "1", + "column-span": "1" + }, + { + "name": "subsection-hbase-disk-col2", + "row-index": "0", + "column-index": "1", + "row-span": "1", + "column-span": "1" + }, + { + "name": "subsection-hbase-disk-col3", + "row-index": "0", + "column-index": "2", + "row-span": "1", + "column-span": "1" + } + ] + }, + { + "name": "section-hbase-timeouts", + "display-name": "Timeouts", + "row-index": "2", + "column-index": "0", + "row-span": "1", + "column-span": "1", + "section-columns": "1", + "section-rows": "1", + "subsections": [ + { + "name": "subsection-hbase-timeouts-col1", + "row-index": "0", + "column-index": "0", + "row-span": "1", + "column-span": "1" + } + ] + }, + { + "name": "section-hbase-security", + "display-name": "Security", + "row-index": "2", + "column-index": "1", + "row-span": "1", + "column-span": "1", + "section-columns": "1", + "section-rows": "1", + "subsections": [ + { + "name": "subsection-hbase-security-col1", + "row-index": "0", + "column-index": "0", + "row-span": "1", + "column-span": "1" + } + ] + }, + { + "name": "section-hbase-phoenix", + "display-name": "Phoenix SQL", + "row-index": "2", + "column-index": "2", + "row-span": "1", + "column-span": "1", + "section-columns": "1", + "section-rows": "1", + "subsections": [ + { + "name": "subsection-hbase-phoenix-col1", + "row-index": "0", + "column-index": "0", + "row-span": "1", + "column-span": "1" + } + ] + } + ] + } + } + ] + } + ], + "placement": { + "configuration-layout": "default", + "configs": [ + { + "config": "hbase-env/hbase_master_heapsize", + "subsection-name": "subsection-hbase-memory-col1" + }, + { + "config": "hbase-env/hbase_regionserver_heapsize", + "subsection-name": "subsection-hbase-memory-col1" + }, + { + "config": "hbase-site/hfile.block.cache.size", + "subsection-name": "subsection-hbase-memory-col1" + }, + { + "config": "hbase-site/hbase.hregion.memstore.flush.size", + "subsection-name": "subsection-hbase-memory-col2" + }, + { + "config": "hbase-site/hbase.hregion.memstore.block.multiplier", + "subsection-name": "subsection-hbase-memory-col2" + }, + { + "config": "hbase-site/hbase.regionserver.handler.count", + "subsection-name": "subsection-hbase-memory-col2" + }, + { + "config": "hbase-site/hbase.client.retries.number", + "subsection-name": "subsection-hbase-client-col1" + }, + { + "config": "hbase-site/hbase.client.keyvalue.maxsize", + "subsection-name": "subsection-hbase-client-col1" + }, + { + "config": "hbase-site/hbase.hregion.max.filesize", + "subsection-name": "subsection-hbase-disk-col1" + }, + { + "config": "hbase-site/hbase.hregion.majorcompaction", + "subsection-name": "subsection-hbase-disk-col2" + }, + { + "config": "hbase-site/hbase.hstore.compaction.max", + "subsection-name": "subsection-hbase-disk-col3" + }, + { + "config": "hbase-site/zookeeper.session.timeout", + "subsection-name": "subsection-hbase-timeouts-col1" + }, + { + "config": "hbase-site/hbase.rpc.timeout", + "subsection-name": "subsection-hbase-timeouts-col1" + }, + { + "config": "hbase-site/hbase.security.authentication", + "subsection-name": "subsection-hbase-security-col1" + }, + { + "config": "hbase-site/hbase.security.authorization", + "subsection-name": "subsection-hbase-security-col1" + }, + { + "config": "hbase-env/phoenix_sql_enabled", + "subsection-name": "subsection-hbase-phoenix-col1" + }, + { + "config": "hbase-site/phoenix.query.timeoutMs", + "subsection-name": "subsection-hbase-phoenix-col1" + } + ] + }, + "widgets": [ + { + "config": "hbase-site/hbase.regionserver.global.memstore.size", + "widget": { + "type": "slider", + "units": [ + { + "unit-name": "percent" + } + ] + } + }, + { + "config": "hbase-env/hbase_master_heapsize", + "widget": { + "type": "slider", + "units": [ + { + "unit-name": "GB" + } + ] + } + }, + { + "config": "hbase-env/hbase_regionserver_heapsize", + "widget": { + "type": "slider", + "units": [ + { + "unit-name": "GB" + } + ] + } + }, + { + "config": "hbase-site/hfile.block.cache.size", + "widget": { + "type": "slider", + "units": [ + { + "unit-name": "percent" + } + ] + } + }, + { + "config": "hbase-site/hbase.hregion.memstore.flush.size", + "widget": { + "type": "slider", + "units": [ + { + "unit-name": "MB" + } + ] + } + }, + { + "config": "hbase-site/hbase.hregion.memstore.block.multiplier", + "widget": { + "type": "combo" + } + }, + { + "config": "hbase-site/hbase.regionserver.handler.count", + "widget": { + "type": "slider", + "units": [ + { + "unit-name": "int" + } + ] + } + }, + { + "config": "hbase-site/hbase.client.retries.number", + "widget": { + "type": "slider", + "units": [ + { + "unit-name": "int" + } + ] + } + }, + { + "config": "hbase-site/hbase.client.keyvalue.maxsize", + "widget": { + "type": "slider", + "units": [ + { + "unit-name": "MB" + } + ] + } + }, + { + "config": "hbase-site/hbase.hregion.max.filesize", + "widget": { + "type": "slider", + "units": [ + { + "unit-name": "GB" + } + ] + } + }, + { + "config": "hbase-site/hbase.hregion.majorcompaction", + "widget": { + "type": "time-interval-spinner", + "units": [ + { + "unit-name": "days,hours" + } + ] + } + }, + { + "config": "hbase-site/hbase.hstore.compaction.max", + "widget": { + "type": "combo" + } + }, + { + "config": "hbase-site/zookeeper.session.timeout", + "widget": { + "type": "time-interval-spinner", + "units": [ + { + "unit-name": "minutes,seconds" + } + ] + } + }, + { + "config": "hbase-site/hbase.rpc.timeout", + "widget": { + "type": "time-interval-spinner", + "units": [ + { + "unit-name": "minutes,seconds" + } + ] + } + }, + { + "config": "hbase-site/hbase.security.authentication", + "widget": { + "type": "toggle" + } + }, + { + "config": "hbase-site/hbase.security.authorization", + "widget": { + "type": "toggle" + } + }, + { + "config": "hbase-env/phoenix_sql_enabled", + "widget": { + "type": "toggle" + } + }, + { + "config": "hbase-site/phoenix.query.timeoutMs", + "widget": { + "type": "time-interval-spinner", + "units": [ + { + "unit-name": "minutes,seconds" + } + ] + } + } + ] + } +} + http://git-wip-us.apache.org/repos/asf/ambari/blob/41006ebe/ambari-server/src/main/resources/common-services/HBASE/2.0.0.3.0/widgets.json ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/HBASE/2.0.0.3.0/widgets.json b/ambari-server/src/main/resources/common-services/HBASE/2.0.0.3.0/widgets.json new file mode 100644 index 0000000..ae47833 --- /dev/null +++ b/ambari-server/src/main/resources/common-services/HBASE/2.0.0.3.0/widgets.json @@ -0,0 +1,510 @@ +{ + "layouts": [ + { + "layout_name": "default_hbase_dashboard", + "display_name": "Standard HBase Dashboard", + "section_name": "HBASE_SUMMARY", + "widgetLayoutInfo": [ + { + "widget_name": "Reads and Writes", + "description": "Rate (per second) of read and write requests on all regions in the cluster.", + "widget_type": "GRAPH", + "is_visible": true, + "metrics": [ + { + "name": "regionserver.Server.Get_num_ops._rate", + "metric_path": "metrics/hbase/regionserver/Server/Get_num_ops._rate", + "service_name": "HBASE", + "component_name": "HBASE_REGIONSERVER" + }, + { + "name": "regionserver.Server.ScanNext_num_ops._rate", + "metric_path": "metrics/hbase/regionserver/Server/ScanNext_num_ops._rate", + "service_name": "HBASE", + "component_name": "HBASE_REGIONSERVER" + }, + { + "name": "regionserver.Server.Append_num_ops._rate", + "metric_path": "metrics/hbase/regionserver/Server/Append_num_ops._rate", + "service_name": "HBASE", + "component_name": "HBASE_REGIONSERVER" + }, + { + "name": "regionserver.Server.Delete_num_ops._rate", + "metric_path": "metrics/hbase/regionserver/Server/Delete_num_ops._rate", + "service_name": "HBASE", + "component_name": "HBASE_REGIONSERVER" + }, + { + "name": "regionserver.Server.Increment_num_ops._rate", + "metric_path": "metrics/hbase/regionserver/Server/Increment_num_ops._rate", + "service_name": "HBASE", + "component_name": "HBASE_REGIONSERVER" + }, + { + "name": "regionserver.Server.Mutate_num_ops._rate", + "metric_path": "metrics/hbase/regionserver/Server/Mutate_num_ops._rate", + "service_name": "HBASE", + "component_name": "HBASE_REGIONSERVER" + } + ], + "values": [ + { + "name": "Read Requests", + "value": "${regionserver.Server.Get_num_ops._rate + regionserver.Server.ScanNext_num_ops._rate}" + }, + { + "name": "Write Requests", + "value": "${regionserver.Server.Append_num_ops._rate + regionserver.Server.Delete_num_ops._rate + regionserver.Server.Increment_num_ops._rate + regionserver.Server.Mutate_num_ops._rate}" + } + ], + "properties": { + "graph_type": "LINE", + "time_range": "1" + } + }, + { + "widget_name": "Read Latency", + "description": "maximum of 95% read latency.", + "widget_type": "GRAPH", + "is_visible": true, + "metrics": [ + { + "name": "regionserver.Server.Get_95th_percentile._max", + "metric_path": "metrics/hbase/regionserver/Server/Get_95th_percentile._max", + "service_name": "HBASE", + "component_name": "HBASE_REGIONSERVER" + }, + { + "name": "regionserver.Server.ScanNext_95th_percentile._max", + "metric_path": "metrics/hbase/regionserver/Server/ScanNext_95th_percentile._max", + "service_name": "HBASE", + "component_name": "HBASE_REGIONSERVER" + } + ], + "values": [ + { + "name": "Cluster wide maximum of 95% Get Latency", + "value": "${regionserver.Server.Get_95th_percentile._max}" + }, + { + "name": "Cluster wide maximum of 95% ScanNext Latency", + "value": "${regionserver.Server.ScanNext_95th_percentile._max}" + } + ], + "properties": { + "display_unit": "ms", + "graph_type": "LINE", + "time_range": "1" + } + }, + { + "widget_name": "Write Latency", + "description": "maximum of 95% write latency.", + "widget_type": "GRAPH", + "is_visible": true, + "metrics": [ + { + "name": "regionserver.Server.Mutate_95th_percentile._max", + "metric_path": "metrics/hbase/regionserver/Server/Mutate_95th_percentile._max", + "service_name": "HBASE", + "component_name": "HBASE_REGIONSERVER" + }, + { + "name": "regionserver.Server.Increment_95th_percentile._max", + "metric_path": "metrics/hbase/regionserver/Server/Increment_95th_percentile._max", + "service_name": "HBASE", + "component_name": "HBASE_REGIONSERVER" + }, + { + "name": "regionserver.Server.Append_95th_percentile._max", + "metric_path": "metrics/hbase/regionserver/Server/Append_95th_percentile._max", + "service_name": "HBASE", + "component_name": "HBASE_REGIONSERVER" + }, + { + "name": "regionserver.Server.Delete_95th_percentile._max", + "metric_path": "metrics/hbase/regionserver/Server/Delete_95th_percentile._max", + "service_name": "HBASE", + "component_name": "HBASE_REGIONSERVER" + } + ], + "values": [ + { + "name": "Cluster wide maximum of 95% Mutate Latency", + "value": "${regionserver.Server.Mutate_95th_percentile._max}" + }, + { + "name": "Cluster wide maximum of 95% Increment Latency", + "value": "${regionserver.Server.Increment_95th_percentile._max}" + }, + { + "name": "Cluster wide maximum of 95% Append Latency", + "value": "${regionserver.Server.Append_95th_percentile._max}" + }, + { + "name": "Cluster wide maximum of 95% Delete Latency", + "value": "${regionserver.Server.Delete_95th_percentile._max}" + } + ], + "properties": { + "display_unit": "ms", + "graph_type": "LINE", + "time_range": "1" + } + }, + { + "widget_name": "Open Connections", + "description": "Count of open connections across all RegionServer. This is indicative of RegionServer load in the cluster.", + "widget_type": "GRAPH", + "is_visible": true, + "metrics": [ + { + "name": "regionserver.RegionServer.numOpenConnections._sum", + "metric_path": "metrics/hbase/ipc/IPC/numOpenConnections._sum", + "category": "", + "service_name": "HBASE", + "component_name": "HBASE_REGIONSERVER" + } + ], + "values": [ + { + "name": "Open Connections", + "value": "${regionserver.RegionServer.numOpenConnections._sum}" + } + ], + "properties": { + "graph_type": "LINE", + "time_range": "1" + } + }, + { + "widget_name": "Request Handlers", + "description": "Count of Active handlers vs count of calls waiting in the general queue.", + "widget_type": "GRAPH", + "is_visible": true, + "metrics": [ + { + "name": "regionserver.RegionServer.numActiveHandler._sum", + "metric_path": "metrics/hbase/ipc/IPC/numActiveHandler._sum", + "service_name": "HBASE", + "component_name": "HBASE_REGIONSERVER" + }, + { + "name": "regionserver.RegionServer.numCallsInGeneralQueue._sum", + "metric_path": "metrics/hbase/ipc/IPC/numCallsInGeneralQueue._sum", + "service_name": "HBASE", + "component_name": "HBASE_REGIONSERVER" + } + ], + "values": [ + { + "name": "Active Handlers", + "value": "${regionserver.RegionServer.numActiveHandler._sum}" + }, + { + "name": "Calls in General Queue", + "value": "${regionserver.RegionServer.numCallsInGeneralQueue._sum}" + } + ], + "properties": { + "graph_type": "LINE", + "time_range": "1" + } + }, + { + "widget_name": "Files Local", + "description": "Average percentage of local files to RegionServer in the cluster.", + "widget_type": "NUMBER", + "is_visible": true, + "metrics": [ + { + "name": "regionserver.Server.percentFilesLocal", + "metric_path": "metrics/hbase/regionserver/Server/percentFilesLocal", + "service_name": "HBASE", + "component_name": "HBASE_REGIONSERVER" + } + ], + "values": [ + { + "name": "Files Local", + "value": "${regionserver.Server.percentFilesLocal}" + } + ], + "properties": { + "display_unit": "%", + "error_threshold":"25", + "warning_threshold": "75" + } + }, + { + "widget_name": "Blocked Updates", + "description": "Number of milliseconds updates have been blocked so the memstore can be flushed.", + "widget_type": "GRAPH", + "is_visible": true, + "metrics": [ + { + "name": "regionserver.Server.updatesBlockedTime._rate", + "metric_path": "metrics/hbase/regionserver/Server/updatesBlockedTime._rate", + "service_name": "HBASE", + "component_name": "HBASE_REGIONSERVER" + } + ], + "values": [ + { + "name": "Updates Blocked Time", + "value": "${regionserver.Server.updatesBlockedTime._rate}" + } + ], + "properties": { + "display_unit": "ms", + "graph_type": "LINE", + "time_range": "1" + } + }, + { + "widget_name": "Cluster CPU", + "description": "Percentage of CPU utilized across all RegionServer hosts.", + "widget_type": "GRAPH", + "is_visible": true, + "metrics": [ + { + "name": "cpu_system._sum", + "metric_path": "metrics/cpu/cpu_system._sum", + "service_name": "HBASE", + "component_name": "HBASE_REGIONSERVER" + }, + { + "name": "cpu_user._sum", + "metric_path": "metrics/cpu/cpu_user._sum", + "service_name": "HBASE", + "component_name": "HBASE_REGIONSERVER" + }, + { + "name": "cpu_nice._sum", + "metric_path": "metrics/cpu/cpu_nice._sum", + "service_name": "HBASE", + "component_name": "HBASE_REGIONSERVER" + }, + { + "name": "cpu_idle._sum", + "metric_path": "metrics/cpu/cpu_idle._sum", + "service_name": "HBASE", + "component_name": "HBASE_REGIONSERVER" + }, + { + "name": "cpu_wio._sum", + "metric_path": "metrics/cpu/cpu_wio._sum", + "service_name": "HBASE", + "component_name": "HBASE_REGIONSERVER" + } + ], + "values": [ + { + "name": "CPU utilization", + "value": "${((cpu_system._sum + cpu_user._sum + cpu_nice._sum)/(cpu_system._sum + cpu_user._sum + cpu_nice._sum + cpu_idle._sum + cpu_wio._sum)) * 100}" + } + ], + "properties": { + "graph_type": "LINE", + "time_range": "1", + "display_unit": "%" + } + }, + { + "widget_name": "Cluster Network", + "description": "Average of Network IO utilized across all RegionServer hosts.", + "widget_type": "GRAPH", + "is_visible": true, + "metrics": [ + { + "name": "pkts_in._avg", + "metric_path": "metrics/network/pkts_in._avg", + "service_name": "HBASE", + "component_name": "HBASE_REGIONSERVER" + }, + { + "name": "pkts_out._avg", + "metric_path": "metrics/network/pkts_out._avg", + "service_name": "HBASE", + "component_name": "HBASE_REGIONSERVER" + } + ], + "values": [ + { + "name": "Packets In", + "value": "${pkts_in._avg}" + }, + { + "name": "Packets Out", + "value": "${pkts_out._avg}" + } + ], + "properties": { + "graph_type": "LINE", + "time_range": "1" + } + }, + { + "widget_name": "Cluster Disk", + "description": "Sum of disk throughput for all RegionServer hosts.", + "widget_type": "GRAPH", + "is_visible": true, + "metrics": [ + { + "name": "read_bps._sum", + "metric_path": "metrics/disk/read_bps._sum", + "service_name": "HBASE", + "component_name": "HBASE_REGIONSERVER" + }, + { + "name": "write_bps._sum", + "metric_path": "metrics/disk/write_bps._sum", + "service_name": "HBASE", + "component_name": "HBASE_REGIONSERVER" + } + ], + "values": [ + { + "name": "Read throughput", + "value": "${read_bps._sum/1048576}" + }, + { + "name": "Write throughput", + "value": "${write_bps._sum/1048576}" + } + ], + "properties": { + "display_unit": "Mbps", + "graph_type": "LINE", + "time_range": "1" + } + } + ] + }, + { + "layout_name": "default_hbase_heatmap", + "display_name": "HBase Heatmaps", + "section_name": "HBASE_HEATMAPS", + "widgetLayoutInfo": [ + { + "widget_name": "HBase Compaction Queue Size", + "description": "", + "widget_type": "HEATMAP", + "is_visible": true, + "metrics": [ + { + "name": "Hadoop:service=HBase,name=RegionServer,sub=Server.compactionQueueLength", + "metric_path": "metrics/hbase/regionserver/compactionQueueSize", + "service_name": "HBASE", + "component_name": "HBASE_REGIONSERVER" + } + ], + "values": [ + { + "name": "HBase Compaction Queue Size", + "value": "${Hadoop:service=HBase,name=RegionServer,sub=Server.compactionQueueLength} " + } + ], + "properties": { + "display_unit": "", + "max_limit": "10" + } + }, + { + "widget_name": "HBase Memstore Sizes", + "description": "", + "widget_type": "HEATMAP", + "is_visible": false, + "metrics": [ + { + "name": "Hadoop:service=HBase,name=RegionServer,sub=Server.memStoreSize", + "metric_path": "metrics/hbase/regionserver/memstoreSize", + "service_name": "HBASE", + "component_name": "HBASE_REGIONSERVER" + } + ], + "values": [ + { + "name": "HBase Memstore Sizes", + "value": "${Hadoop:service=HBase,name=RegionServer,sub=Server.memStoreSize}" + } + ], + "properties": { + "display_unit": "B", + "max_limit": "104857600" + } + }, + { + "widget_name": "HBase Read Request Count", + "description": "", + "widget_type": "HEATMAP", + "is_visible": false, + "metrics": [ + { + "name": "Hadoop:service=HBase,name=RegionServer,sub=Server.readRequestCount", + "metric_path": "metrics/hbase/regionserver/readRequestsCount", + "service_name": "HBASE", + "component_name": "HBASE_REGIONSERVER" + } + ], + "values": [ + { + "name": "HBase Read Request Count", + "value": "${Hadoop:service=HBase,name=RegionServer,sub=Server.readRequestCount}" + } + ], + "properties": { + "max_limit": "200" + } + }, + { + "widget_name": "HBase Write Request Count", + "description": "", + "widget_type": "HEATMAP", + "is_visible": false, + "metrics": [ + { + "name": "Hadoop:service=HBase,name=RegionServer,sub=Server.writeRequestCount", + "metric_path": "metrics/hbase/regionserver/writeRequestsCount", + "service_name": "HBASE", + "component_name": "HBASE_REGIONSERVER" + } + ], + "values": [ + { + "name": "HBase Write Request Count", + "value": "${Hadoop:service=HBase,name=RegionServer,sub=Server.writeRequestCount}" + } + ], + "properties": { + "max_limit": "200" + } + }, + { + "widget_name": "HBase Regions", + "description": "", + "widget_type": "HEATMAP", + "is_visible": false, + "metrics": [ + { + "name": "Hadoop:service=HBase,name=RegionServer,sub=Server.regionCount", + "metric_path": "metrics/hbase/regionserver/regions", + "service_name": "HBASE", + "component_name": "HBASE_REGIONSERVER" + } + ], + "values": [ + { + "name": "HBase Regions", + "value": "${Hadoop:service=HBase,name=RegionServer,sub=Server.regionCount}" + } + ], + "properties": { + "max_limit": "10" + } + } + ] + } + ] +} http://git-wip-us.apache.org/repos/asf/ambari/blob/41006ebe/ambari-server/src/main/resources/stacks/HDP/3.0/services/HBASE/metainfo.xml ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/stacks/HDP/3.0/services/HBASE/metainfo.xml b/ambari-server/src/main/resources/stacks/HDP/3.0/services/HBASE/metainfo.xml new file mode 100644 index 0000000..04adb75 --- /dev/null +++ b/ambari-server/src/main/resources/stacks/HDP/3.0/services/HBASE/metainfo.xml @@ -0,0 +1,26 @@ +<?xml version="1.0"?> +<!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<metainfo> + <schemaVersion>2.0</schemaVersion> + <services> + <service> + <name>HBASE</name> + <extends>common-services/HBASE/2.0.0.3.0</extends> + </service> + </services> +</metainfo>