SLIDER-1107 Generate app configuration files in AM -- squash merge from feature/SLIDER-1107_AM_config_generation
Project: http://git-wip-us.apache.org/repos/asf/incubator-slider/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-slider/commit/424b2a40 Tree: http://git-wip-us.apache.org/repos/asf/incubator-slider/tree/424b2a40 Diff: http://git-wip-us.apache.org/repos/asf/incubator-slider/diff/424b2a40 Branch: refs/heads/develop Commit: 424b2a4062b96ada5eeb46b9d177619955af86a4 Parents: 094f079 Author: Billie Rinaldi <billie.rina...@gmail.com> Authored: Wed Aug 3 16:23:19 2016 -0700 Committer: Billie Rinaldi <billie.rina...@gmail.com> Committed: Wed Aug 3 16:41:11 2016 -0700 ---------------------------------------------------------------------- app-packages/hbase-nopkg/README.md | 56 ++++ app-packages/hbase-nopkg/appConfig-default.json | 112 ++++++++ .../hbase-nopkg/appConfig-secured-default.json | 128 ++++++++++ .../clientInstallConfig-default.json | 6 + app-packages/hbase-nopkg/metainfo-secured.xml | 255 +++++++++++++++++++ app-packages/hbase-nopkg/metainfo.xml | 225 ++++++++++++++++ app-packages/hbase-nopkg/pom.xml | 92 +++++++ app-packages/hbase-nopkg/resources-default.json | 47 ++++ ...-metrics2-hbase.properties-GANGLIA-MASTER.j2 | 62 +++++ ...doop-metrics2-hbase.properties-GANGLIA-RS.j2 | 62 +++++ .../hadoop-metrics2-hbase.properties-MASTER.j2 | 47 ++++ .../hadoop-metrics2-hbase.properties-RS.j2 | 47 ++++ .../resources/hbase-env-client.sh.j2 | 49 ++++ .../resources/hbase-env-secured.sh.j2 | 63 +++++ .../hbase-nopkg/resources/hbase-env.sh.j2 | 59 +++++ .../resources/hbase-log4j.properties.j2 | 110 ++++++++ .../resources/hbase_client_jaas.conf.j2 | 22 ++ .../resources/hbase_master_jaas.conf.j2 | 25 ++ .../resources/hbase_regionserver_jaas.conf.j2 | 25 ++ app-packages/hbase-nopkg/src/assembly/hbase.xml | 89 +++++++ pom.xml | 7 + .../src/main/python/agent/ActionQueue.py | 2 +- .../python/scripts/shell_cmd/basic_installer.py | 11 +- slider-core/pom.xml | 6 + .../org/apache/slider/client/ClientUtils.java | 111 ++++++++ .../org/apache/slider/client/SliderClient.java | 204 ++++++++++----- .../apache/slider/client/SliderClientAPI.java | 13 +- .../org/apache/slider/common/SliderKeys.java | 3 +- .../common/params/ActionResourceArgs.java | 68 +++++ .../apache/slider/common/params/Arguments.java | 1 + .../apache/slider/common/params/ClientArgs.java | 10 + .../slider/common/params/SliderActions.java | 2 + .../slider/common/tools/CoreFileSystem.java | 96 ++++++- .../slider/core/conf/ConfTreeOperations.java | 16 +- .../slider/core/launch/AbstractLauncher.java | 21 +- .../core/persist/AppDefinitionPersister.java | 6 +- .../core/registry/docstore/ConfigFormat.java | 4 +- .../core/registry/docstore/ConfigUtils.java | 96 +++++++ .../PublishedConfigurationOutputter.java | 64 +++-- .../providers/AbstractClientProvider.java | 9 +- .../providers/agent/AgentClientProvider.java | 215 +++++++++++----- .../slider/providers/agent/AgentKeys.java | 7 + .../providers/agent/AgentProviderService.java | 255 +++++++++++++++++-- .../application/metadata/AbstractComponent.java | 4 + .../agent/application/metadata/Application.java | 4 + .../agent/application/metadata/Component.java | 12 +- .../agent/application/metadata/Metainfo.java | 13 + .../application/metadata/MetainfoParser.java | 19 +- .../app_packages/test_am_config/appConfig.json | 31 +++ .../app_packages/test_am_config/metainfo.json | 70 +++++ .../app_packages/test_am_config/resources.json | 17 ++ .../test_am_config/resources/test.template | 1 + .../test_am_config/test_archive/testfile | 1 + .../resources_unique_names.json | 18 ++ .../TestPublishedConfigurationOutputter.java | 221 ++++++++++++++++ .../agent/TestAgentClientProvider2.java | 8 +- .../agent/TestAgentProviderService.java | 66 +++-- .../metadata/TestMetainfoParser.java | 13 +- .../agent/application/metadata/metainfo.xml | 21 ++ .../apache/slider/funtest/ResourcePaths.groovy | 5 + .../funtest/misc/AMConfigPublishingIT.groovy | 146 +++++++++++ .../funtest/misc/UniqueComponentNamesIT.groovy | 122 +++++++++ 62 files changed, 3381 insertions(+), 219 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/424b2a40/app-packages/hbase-nopkg/README.md ---------------------------------------------------------------------- diff --git a/app-packages/hbase-nopkg/README.md b/app-packages/hbase-nopkg/README.md new file mode 100644 index 0000000..43fd7d4 --- /dev/null +++ b/app-packages/hbase-nopkg/README.md @@ -0,0 +1,56 @@ +<!--- + 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. +--> + +# Create Slider App Package for HBase + +appConfig-default.json and resources-default.json are not required to be packaged. +These files are included as reference configuration for Slider apps and are suitable +for a one-node cluster. + +To create the app package you will need the HBase tarball and invoke mvn command +with appropriate parameters. It is recommended that pkg.version be set to the + same value as hbase.version. + +Command: + + mvn clean package -Phbase-resources -Dhbase.version=<hbase version> -Dpkg.version=<app package version> + -Dpkg.name=<file name of app tarball> -Dpkg.src=<folder location where the pkg is available> + +Example: + + mvn clean package -Phbase-resources -Dhbase.version=1.1.4 + -Dpkg.version=1.1.4 -Dpkg.name=hbase-1.1.4-bin.tar.gz + -Dpkg.src=/Users/user1/Downloads + +App package can be found in + + app-packages/hbase-nopkg/target/slider-hbase-resources-1.1.4.zip + +## Verifying the content + +Verify the content using + + zip -Tv slider-hbase-*.zip + +## Sample commands + + unzip slider-hbase-resources-1.1.4.zip + slider resource --install --resource resources --destdir hbase + slider create hbase --template appConfig-default.json --resources resources-default.json --metainfo metainfo.xml + slider client --install --dest client_install_dir --name hbase --config clientInstallConfig-default.json + + http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/424b2a40/app-packages/hbase-nopkg/appConfig-default.json ---------------------------------------------------------------------- diff --git a/app-packages/hbase-nopkg/appConfig-default.json b/app-packages/hbase-nopkg/appConfig-default.json new file mode 100644 index 0000000..1095efd --- /dev/null +++ b/app-packages/hbase-nopkg/appConfig-default.json @@ -0,0 +1,112 @@ +{ + "schema": "http://example.org/specification/v2.0.0", + "metadata": { + }, + "global": { + "am.config.generation": "true", + "create.default.zookeeper.node": "true", + "java_home": "/usr/jdk64/jdk1.8.0_60", + "system_configs": "core-site", + + "site.global.app_user": "yarn", + "site.global.app_version": "${hbase.version}", + "site.global.app_root": "${AGENT_WORK_ROOT}/app/packages/hbase-${hbase.version}", + + "site.global.pid_file": "${@//site/global/app_pid_dir}/hbase-${@//site/global/app_user}-${@//site/global/hbase_component}.pid", + "site.global.daemon_cmd": "env HBASE_IDENT_STRING=${@//site/global/app_user} ${@//site/global/app_root}/bin/hbase-daemon.sh --config ${@//site/global/app_conf_dir}", + + "site.global.hbase_instance_name": "instancename", + "site.global.hbase_root_password": "secret", + "site.global.user_group": "hadoop", + + "site.global.thrift_port": "0", + "site.global.thrift2_port": "0", + "site.global.rest_port": "0", + + "site.hbase-env.template.file": "hbase-env.sh.j2", + "site.hbase-env.java64_home": "${JAVA_HOME}", + "site.hbase-env.conf_dir": "${@//site/global/app_conf_dir}", + "site.hbase-env.log_dir": "${@//site/global/app_log_dir}", + "site.hbase-env.pid_dir": "${@//site/global/app_pid_dir}", + "site.hbase-env.master_heapsize": "1024m", + "site.hbase-env.regionserver_heapsize": "1024m", + "site.hbase-env.regionserver_xmn_size": "512m", + "site.hbase-env.hbase_opts": "", + + "site.hbase-site.hbase.rootdir": "${DEFAULT_DATA_DIR}/data", + "site.hbase-site.hbase.cluster.distributed": "true", + "site.hbase-site.hbase.superuser": "${USER_NAME}", + "site.hbase-site.hbase.tmp.dir": "work/app/tmp", + "site.hbase-site.hbase.local.dir": "${hbase.tmp.dir}/local", + "site.hbase-site.hbase.zookeeper.quorum": "${ZK_HOST}", + "site.hbase-site.zookeeper.znode.parent": "${DEFAULT_ZK_PATH}", + "site.hbase-site.hbase.regionserver.info.port": "0", + "site.hbase-site.hbase.bulkload.staging.dir": "/user/${USER_NAME}/hbase-staging", + "site.hbase-site.hbase.coprocessor.region.classes": "org.apache.hadoop.hbase.security.access.SecureBulkLoadEndpoint", + "site.hbase-site.hbase.master.info.bindAddress": "0.0.0.0", + "site.hbase-site.hbase.master.info.port": "16010", + "site.hbase-site.hbase.regionserver.port": "0", + "site.hbase-site.hbase.master.port": "0", + "site.hbase-site.hbase.regionserver.global.memstore.upperLimit": "0.4", + "site.hbase-site.hbase.regionserver.handler.count": "60", + "site.hbase-site.hbase.hregion.majorcompaction": "86400000", + "site.hbase-site.hbase.regionserver.global.memstore.lowerLimit": "0.38", + "site.hbase-site.hbase.hregion.memstore.block.multiplier": "2", + "site.hbase-site.hbase.hregion.memstore.flush.size": "134217728", + "site.hbase-site.hbase.hregion.memstore.mslab.enabled": "true", + "site.hbase-site.hbase.hregion.max.filesize": "10737418240", + "site.hbase-site.hbase.client.scanner.caching": "100", + "site.hbase-site.zookeeper.session.timeout": "30000", + "site.hbase-site.hbase.client.keyvalue.maxsize": "10485760", + "site.hbase-site.hbase.hstore.compactionThreshold": "3", + "site.hbase-site.hbase.hstore.flush.retries.number": "120", + "site.hbase-site.hbase.hstore.blockingStoreFiles": "10", + "site.hbase-site.hfile.block.cache.size": "0.40", + "site.hbase-site.hbase.zookeeper.property.clientPort": "2181", + "site.hbase-site.hbase.zookeeper.useMulti": "true", + "site.hbase-site.hbase.defaults.for.version.skip": "true", + "site.hbase-site.dfs.domain.socket.path": "/var/lib/hadoop-hdfs/dn_socket", + + "site.hbase-site.hbase.security.authentication": "simple", + "site.hbase-site.hbase.security.authorization": "false", + "site.hbase-site.hbase.coprocessor.region.classes": "", + "site.hbase-site.hbase.coprocessor.master.classes": "", + + "site.hbase-policy.security.client.protocol.acl": "*", + "site.hbase-policy.security.admin.protocol.acl": "*", + "site.hbase-policy.security.masterregion.protocol.acl": "*", + + "site.hbase-log4j.template.file": "hbase-log4j.properties.j2", + + "site.hbase-metrics2.template.file": "hadoop-metrics2-hbase.properties-RS.j2", + "site.hbase-metrics2.app_name": "${CLUSTER_NAME}", + "site.hbase-metrics2.metric_collector_host": "${NN_HOST}", + "site.hbase-metrics2.metric_collector_port": "6188", + "site.hbase-metrics2.metric_collector_lib": "" + }, + "components": { + "slider-appmaster": { + "jvm.heapsize": "1024M" + }, + "HBASE_MASTER": { + "site.global.hbase_component": "master", + "site.hbase-metrics2.template.file": "hadoop-metrics2-hbase.properties-MASTER.j2" + }, + "HBASE_REGIONSERVER": { + "site.global.hbase_component": "regionserver" + }, + "HBASE_REST": { + "site.global.hbase_component": "rest" + }, + "HBASE_THRIFT": { + "site.global.hbase_component": "thrift" + }, + "HBASE_THRIFT2": { + "site.global.hbase_component": "thrift2" + }, + "HBASE_CLIENT": { + "site.hbase-env.template.file": "hbase-env-client.sh.j2", + "site.hbase-site.instance": "${CLUSTER_NAME}" + } + } +} http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/424b2a40/app-packages/hbase-nopkg/appConfig-secured-default.json ---------------------------------------------------------------------- diff --git a/app-packages/hbase-nopkg/appConfig-secured-default.json b/app-packages/hbase-nopkg/appConfig-secured-default.json new file mode 100644 index 0000000..ac6e45b --- /dev/null +++ b/app-packages/hbase-nopkg/appConfig-secured-default.json @@ -0,0 +1,128 @@ +{ + "schema": "http://example.org/specification/v2.0.0", + "metadata": { + }, + "global": { + "am.config.generation": "true", + "create.default.zookeeper.node": "true", + "java_home": "/usr/jdk64/jdk1.8.0_60", + "system_configs": "core-site,hdfs-site", + + "site.global.app_user": "${USER_NAME}", + "site.global.app_version": "${hbase.version}", + "site.global.app_root": "${AGENT_WORK_ROOT}/app/packages/hbase-${hbase.version}", + + "site.global.pid_file": "${@//site/global/app_pid_dir}/hbase-${@//site/global/app_user}-${@//site/global/hbase_component}.pid", + "site.global.daemon_cmd": "env HBASE_IDENT_STRING=${@//site/global/app_user} ${@//site/global/app_root}/bin/hbase-daemon.sh --config ${@//site/global/app_conf_dir}", + + "site.global.hbase_instance_name": "instancename", + "site.global.hbase_root_password": "secret", + "site.global.user_group": "hadoop", + + "site.global.thrift_port": "0", + "site.global.thrift2_port": "0", + "site.global.rest_port": "0", + + "site.hbase-env.template.file": "hbase-env-secured.sh.j2", + "site.hbase-env.java64_home": "${JAVA_HOME}", + "site.hbase-env.conf_dir": "${@//site/global/app_conf_dir}", + "site.hbase-env.log_dir": "${@//site/global/app_log_dir}", + "site.hbase-env.pid_dir": "${@//site/global/app_pid_dir}", + "site.hbase-env.master_heapsize": "1024m", + "site.hbase-env.regionserver_heapsize": "1024m", + "site.hbase-env.regionserver_xmn_size": "512m", + "site.hbase-env.hbase_opts": "", + "site.hbase-env.client_jaas_config_file": "${@//site/hbase-env/conf_dir}/hbase_client_jaas.conf", + "site.hbase-env.master_jaas_config_file": "${@//site/hbase-env/conf_dir}/hbase_master_jaas.conf", + "site.hbase-env.regionserver_jaas_config_file": "${@//site/hbase-env/conf_dir}/hbase_regionserver_jaas.conf", + + "site.hbase-site.hbase.rootdir": "${DEFAULT_DATA_DIR}", + "site.hbase-site.hbase.cluster.distributed": "true", + "site.hbase-site.hbase.superuser": "${USER_NAME}", + "site.hbase-site.hbase.tmp.dir": "${AGENT_WORK_ROOT}/work/app/tmp", + "site.hbase-site.hbase.local.dir": "${hbase.tmp.dir}/local", + "site.hbase-site.hbase.zookeeper.quorum": "${ZK_HOST}", + "site.hbase-site.zookeeper.znode.parent": "${DEFAULT_ZK_PATH}", + "site.hbase-site.hbase.regionserver.info.port": "0", + "site.hbase-site.hbase.master.info.port": "0", + "site.hbase-site.hbase.regionserver.port": "0", + "site.hbase-site.hbase.master.port": "0", + "site.hbase-site.hbase.regionserver.global.memstore.upperLimit": "0.4", + "site.hbase-site.hbase.regionserver.handler.count": "60", + "site.hbase-site.hbase.hregion.majorcompaction": "86400000", + "site.hbase-site.hbase.regionserver.global.memstore.lowerLimit": "0.38", + "site.hbase-site.hbase.hregion.memstore.block.multiplier": "2", + "site.hbase-site.hbase.hregion.memstore.flush.size": "134217728", + "site.hbase-site.hbase.hregion.memstore.mslab.enabled": "true", + "site.hbase-site.hbase.hregion.max.filesize": "10737418240", + "site.hbase-site.hbase.client.scanner.caching": "100", + "site.hbase-site.zookeeper.session.timeout": "30000", + "site.hbase-site.hbase.client.keyvalue.maxsize": "10485760", + "site.hbase-site.hbase.hstore.compactionThreshold": "3", + "site.hbase-site.hbase.hstore.flush.retries.number": "120", + "site.hbase-site.hbase.hstore.blockingStoreFiles": "10", + "site.hbase-site.hfile.block.cache.size": "0.40", + "site.hbase-site.hbase.zookeeper.property.clientPort": "2181", + "site.hbase-site.hbase.zookeeper.useMulti": "true", + "site.hbase-site.hbase.defaults.for.version.skip": "true", + "site.hbase-site.dfs.domain.socket.path": "/var/lib/hadoop-hdfs/dn_socket", + + "site.hbase-site.hbase.security.authentication": "kerberos", + "site.core-site.hadoop.security.authentication": "kerberos", + "site.hbase-site.hbase.security.authorization": "true", + "site.hbase-site.hbase.security.access.early_out": "true", + "site.hbase-site.hbase.coprocessor.master.classes": "org.apache.hadoop.hbase.security.access.AccessController", + "site.hbase-site.hbase.coprocessor.region.classes": "org.apache.hadoop.hbase.security.token.TokenProvider,org.apache.hadoop.hbase.security.access.AccessController,org.apache.hadoop.hbase.security.access.SecureBulkLoadEndpoint", + "site.hbase-site.hbase.regionserver.kerberos.principal": "${USER_NAME}/${THIS_HOST}@EXAMPLE.COM", + "site.hbase-site.hbase.regionserver.keytab.file": "${AGENT_WORK_ROOT}/keytabs/${USER_NAME}.HBASE.service.keytab", + "site.hbase-site.hbase.master.kerberos.principal": "${USER_NAME}/${THIS_HOST}@EXAMPLE.COM", + "site.hbase-site.hbase.master.keytab.file": "${AGENT_WORK_ROOT}/keytabs/${USER_NAME}.HBASE.service.keytab", + "site.hbase-site.hbase.rest.kerberos.principal": "${USER_NAME}/${THIS_HOST}@EXAMPLE.COM", + "site.hbase-site.hbase.rest.keytab.file": "${AGENT_WORK_ROOT}/keytabs/${USER_NAME}.HBASE.service.keytab", + "site.hbase-site.hbase.thrift.kerberos.principal": "${USER_NAME}/${THIS_HOST}@EXAMPLE.COM", + "site.hbase-site.hbase.thrift.keytab.file": "${AGENT_WORK_ROOT}/keytabs/${USER_NAME}.HBASE.service.keytab", + + "site.hbase-metrics2.template.file": "hadoop-metrics2-hbase.properties-RS.j2", + "site.hbase-metrics2.app_name": "${CLUSTER_NAME}", + "site.hbase-metrics2.metric_collector_host": "${NN_HOST}", + "site.hbase-metrics2.metric_collector_port": "6188", + "site.hbase-metrics2.metric_collector_lib": "", + + "site.hbase-jaas.master_keytab_path": "${@//site/hbase-site/hbase.master.keytab.file}", + "site.hbase-jaas.master_jaas_princ": "${@//site/hbase-site/hbase.master.kerberos.principal}", + "site.hbase-jaas.regionserver_keytab_path": "${@//site/hbase-site/hbase.regionserver.keytab.file}", + "site.hbase-jaas.regionserver_jaas_princ": "${@//site/hbase-site/hbase.regionserver.kerberos.principal}" + }, + "components": { + "slider-appmaster": { + "jvm.heapsize": "1024M", + "slider.hdfs.keytab.dir": ".slider/keytabs/hbase", + "slider.am.login.keytab.name": "${USER_NAME}.headless.keytab", + "slider.keytab.principal.name": "${USER_NAME}" + }, + "HBASE_MASTER": { + "site.global.hbase_component": "master", + "site.hbase-metrics2.template.file": "hadoop-metrics2-hbase.properties-MASTER.j2", + "site.hbase-jaas.template.file": "hbase_master_jaas.conf.j2" + }, + "HBASE_REGIONSERVER": { + "site.global.hbase_component": "regionserver", + "site.hbase-jaas.template.file": "hbase_regionserver_jaas.conf.j2" + }, + "HBASE_REST": { + "site.global.hbase_component": "rest", + "site.hbase-jaas.template.file": "hbase_regionserver_jaas.conf.j2" + }, + "HBASE_THRIFT": { + "site.global.hbase_component": "thrift", + "site.hbase-jaas.template.file": "hbase_regionserver_jaas.conf.j2" + }, + "HBASE_THRIFT2": { + "site.global.hbase_component": "thrift2", + "site.hbase-jaas.template.file": "hbase_regionserver_jaas.conf.j2" + }, + "HBASE_CLIENT": { + "site.hbase-jaas.template.file": "hbase_client_jaas.conf.j2" + } + } +} http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/424b2a40/app-packages/hbase-nopkg/clientInstallConfig-default.json ---------------------------------------------------------------------- diff --git a/app-packages/hbase-nopkg/clientInstallConfig-default.json b/app-packages/hbase-nopkg/clientInstallConfig-default.json new file mode 100644 index 0000000..f195e7f --- /dev/null +++ b/app-packages/hbase-nopkg/clientInstallConfig-default.json @@ -0,0 +1,6 @@ +{ + "schema":"http://example.org/specification/v2.0.0", + "global":{ + "client_root": "hbase-${hbase.version}" + } +} http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/424b2a40/app-packages/hbase-nopkg/metainfo-secured.xml ---------------------------------------------------------------------- diff --git a/app-packages/hbase-nopkg/metainfo-secured.xml b/app-packages/hbase-nopkg/metainfo-secured.xml new file mode 100644 index 0000000..bc5759e --- /dev/null +++ b/app-packages/hbase-nopkg/metainfo-secured.xml @@ -0,0 +1,255 @@ +<?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> + <application> + <name>HBASE</name> + <comment> + Apache HBase is the Hadoop database, a distributed, scalable, big data store. + Requirements: + 1. Ensure parent dir for path (hbase-site/hbase.rootdir) is accessible to the App owner. + 2. Ensure ZK root (hbase-site/zookeeper.znode.parent) is unique for the App instance. + </comment> + <version>${pkg.version}</version> + <type>YARN-APP</type> + <minHadoopVersion>2.1.0</minHadoopVersion> + <exportedConfigs>hbase-site</exportedConfigs> + <exportGroups> + <exportGroup> + <name>QuickLinks</name> + <exports> + <export> + <name>org.apache.slider.jmx</name> + <value>http://${HBASE_MASTER_HOST}:${site.hbase-site.hbase.master.info.port}/jmx</value> + </export> + <export> + <name>org.apache.slider.monitor</name> + <value>http://${HBASE_MASTER_HOST}:${site.hbase-site.hbase.master.info.port}/master-status</value> + </export> + <export> + <name>org.apache.slider.hbase.rest</name> + <value>http://${HBASE_REST_HOST}:${site.global.rest_port}</value> + </export> + <export> + <name>org.apache.slider.hbase.thrift2</name> + <value>http://${HBASE_THRIFT2_HOST}:${site.global.thrift2_port}</value> + </export> + <export> + <name>org.apache.slider.hbase.thrift</name> + <value>http://${HBASE_THRIFT_HOST}:${site.global.thrift_port}</value> + </export> + <export> + <name>org.apache.slider.metrics</name> + <value>http://${site.hbase-metrics2.metric_collector_host}:${site.hbase-metrics2.metric_collector_port}/ws/v1/timeline/metrics</value> + </export> + <export> + <name>org.apache.slider.hbase.zk-path</name> + <value>${site.hbase-site.hbase.zookeeper.quorum}:${site.hbase-site.zookeeper.znode.parent}</value> + </export> + </exports> + </exportGroup> + </exportGroups> + <commandOrders> + <commandOrder> + <command>HBASE_REGIONSERVER-START</command> + <requires>HBASE_MASTER-STARTED</requires> + </commandOrder> + <commandOrder> + <command>HBASE_MASTER-START</command> + <requires>HBASE_REST-INSTALLED</requires> + <requires>HBASE_THRIFT-INSTALLED</requires> + <requires>HBASE_THRIFT2-INSTALLED</requires> + </commandOrder> + </commandOrders> + <components> + <component> + <name>HBASE_MASTER</name> + <category>MASTER</category> + <minInstanceCount>1</minInstanceCount> + <appExports>QuickLinks-org.apache.slider.jmx,QuickLinks-org.apache.slider.monitor,QuickLinks-org.apache.slider.metrics,QuickLinks-org.apache.slider.hbase.zk-path</appExports> + <componentExports> + <componentExport> + <name>org.apache.slider.jmx</name> + <value>${THIS_HOST}:${site.hbase-site.hbase.master.info.port}/jmx</value> + </componentExport> + <componentExport> + <name>org.apache.slider.monitor</name> + <value>${THIS_HOST}:${site.hbase-site.hbase.master.info.port}/master-status</value> + </componentExport> + <componentExport> + <name>org.apache.slider.hbase.zk-path</name> + <value>${site.hbase-site.hbase.zookeeper.quorum}:${site.hbase-site.zookeeper.znode.parent}</value> + </componentExport> + </componentExports> + <commands> + <command> + <exec>{$conf:@//site/global/daemon_cmd} start master</exec> + </command> + <command> + <exec>{$conf:@//site/global/daemon_cmd} stop master</exec> + <name>STOP</name> + </command> + </commands> + <configFile> + <type>template</type> + <fileName>app/conf/hbase_master_jaas.conf</fileName> + <dictionaryName>hbase-jaas</dictionaryName> + </configFile> + </component> + + <component> + <name>HBASE_REGIONSERVER</name> + <category>SLAVE</category> + <minInstanceCount>1</minInstanceCount> + <commands> + <command> + <exec>{$conf:@//site/global/daemon_cmd} start regionserver</exec> + </command> + <command> + <exec>{$conf:@//site/global/daemon_cmd} stop regionserver</exec> + <name>STOP</name> + </command> + </commands> + <configFile> + <type>template</type> + <fileName>app/conf/hbase_regionserver_jaas.conf</fileName> + <dictionaryName>hbase-jaas</dictionaryName> + </configFile> + </component> + + <component> + <name>HBASE_REST</name> + <category>MASTER</category> + <appExports>QuickLinks-org.apache.slider.hbase.rest</appExports> + <commands> + <command> + <exec>{$conf:@//site/global/daemon_cmd} start rest -p {$conf:@//site/global/rest_port}</exec> + </command> + <command> + <exec>{$conf:@//site/global/daemon_cmd} stop rest</exec> + <name>STOP</name> + </command> + </commands> + <configFile> + <type>template</type> + <fileName>app/conf/hbase_rest_jaas.conf</fileName> + <dictionaryName>hbase-jaas</dictionaryName> + </configFile> + </component> + + <component> + <name>HBASE_THRIFT</name> + <category>MASTER</category> + <appExports>QuickLinks-org.apache.slider.hbase.thrift</appExports> + <commands> + <command> + <exec>{$conf:@//site/global/daemon_cmd} start thrift -p {$conf:@//site/global/thrift_port}</exec> + </command> + <command> + <exec>{$conf:@//site/global/daemon_cmd} stop thrift</exec> + <name>STOP</name> + </command> + </commands> + <configFile> + <type>template</type> + <fileName>app/conf/hbase_thrift2_jaas.conf</fileName> + <dictionaryName>hbase-jaas</dictionaryName> + </configFile> + </component> + + <component> + <name>HBASE_THRIFT2</name> + <category>MASTER</category> + <minInstanceCount>0</minInstanceCount> + <appExports>QuickLinks-org.apache.slider.hbase.thrift2</appExports> + <commands> + <command> + <exec>{$conf:@//site/global/daemon_cmd} start thrift2 -p {$conf:@//site/global/thrift_port}</exec> + </command> + <command> + <exec>{$conf:@//site/global/daemon_cmd} stop thrift2</exec> + <name>STOP</name> + </command> + </commands> + <configFile> + <type>template</type> + <fileName>app/conf/hbase_thrift_jaas.conf</fileName> + <dictionaryName>hbase-jaas</dictionaryName> + </configFile> + </component> + + <component> + <name>HBASE_CLIENT</name> + <category>CLIENT</category> + <configFile> + <type>template</type> + <fileName>app/conf/hbase_client_jaas.conf</fileName> + <dictionaryName>hbase-jaas</dictionaryName> + </configFile> + </component> + </components> + + <osSpecifics> + <osSpecific> + <osType>any</osType> + <packages> + <package> + <type>tarball</type> + <name>files/hbase-${pkg.version}.tar.gz</name> + </package> + </packages> + </osSpecific> + </osSpecifics> + + <packages> + <package> + <type>tarball</type> + <name>hbase-${pkg.version}-bin.tar.gz</name> + </package> + </packages> + + <configFiles> + <configFile> + <type>xml</type> + <fileName>app/conf/hbase-site.xml</fileName> + <dictionaryName>hbase-site</dictionaryName> + </configFile> + <configFile> + <type>template</type> + <fileName>app/conf/hbase-env.sh</fileName> + <dictionaryName>hbase-env</dictionaryName> + </configFile> + <configFile> + <type>template</type> + <fileName>app/conf/log4j.properties</fileName> + <dictionaryName>hbase-log4j</dictionaryName> + </configFile> + <configFile> + <type>xml</type> + <fileName>app/conf/hbase-policy.xml</fileName> + <dictionaryName>hbase-policy</dictionaryName> + </configFile> + <configFile> + <type>template</type> + <fileName>app/conf/hadoop-metrics2-hbase.properties</fileName> + <dictionaryName>hbase-metrics2</dictionaryName> + </configFile> + </configFiles> + + </application> +</metainfo> http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/424b2a40/app-packages/hbase-nopkg/metainfo.xml ---------------------------------------------------------------------- diff --git a/app-packages/hbase-nopkg/metainfo.xml b/app-packages/hbase-nopkg/metainfo.xml new file mode 100644 index 0000000..60ef10b --- /dev/null +++ b/app-packages/hbase-nopkg/metainfo.xml @@ -0,0 +1,225 @@ +<?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> + <application> + <name>HBASE</name> + <comment> + Apache HBase is the Hadoop database, a distributed, scalable, big data store. + Requirements: + 1. Ensure parent dir for path (hbase-site/hbase.rootdir) is accessible to the App owner. + 2. Ensure ZK root (hbase-site/zookeeper.znode.parent) is unique for the App instance. + </comment> + <version>${pkg.version}</version> + <type>YARN-APP</type> + <minHadoopVersion>2.1.0</minHadoopVersion> + <exportedConfigs>hbase-site</exportedConfigs> + <exportGroups> + <exportGroup> + <name>QuickLinks</name> + <exports> + <export> + <name>org.apache.slider.jmx</name> + <value>http://${HBASE_MASTER_HOST}:${site.hbase-site.hbase.master.info.port}/jmx</value> + </export> + <export> + <name>org.apache.slider.monitor</name> + <value>http://${HBASE_MASTER_HOST}:${site.hbase-site.hbase.master.info.port}/master-status</value> + </export> + <export> + <name>org.apache.slider.hbase.rest</name> + <value>http://${HBASE_REST_HOST}:${site.global.rest_port}</value> + </export> + <export> + <name>org.apache.slider.hbase.thrift2</name> + <value>http://${HBASE_THRIFT2_HOST}:${site.global.thrift2_port}</value> + </export> + <export> + <name>org.apache.slider.hbase.thrift</name> + <value>http://${HBASE_THRIFT_HOST}:${site.global.thrift_port}</value> + </export> + <export> + <name>org.apache.slider.metrics</name> + <value>http://${site.hbase-metrics2.metric_collector_host}:${site.hbase-metrics2.metric_collector_port}/ws/v1/timeline/metrics</value> + </export> + <export> + <name>org.apache.slider.hbase.zk-path</name> + <value>${site.hbase-site.hbase.zookeeper.quorum}:${site.hbase-site.zookeeper.znode.parent}</value> + </export> + </exports> + </exportGroup> + </exportGroups> + <commandOrders> + <commandOrder> + <command>HBASE_REGIONSERVER-START</command> + <requires>HBASE_MASTER-STARTED</requires> + </commandOrder> + <commandOrder> + <command>HBASE_MASTER-START</command> + <requires>HBASE_REST-INSTALLED</requires> + <requires>HBASE_THRIFT-INSTALLED</requires> + <requires>HBASE_THRIFT2-INSTALLED</requires> + </commandOrder> + </commandOrders> + <components> + <component> + <name>HBASE_MASTER</name> + <category>MASTER</category> + <minInstanceCount>1</minInstanceCount> + <appExports>QuickLinks-org.apache.slider.jmx,QuickLinks-org.apache.slider.monitor,QuickLinks-org.apache.slider.metrics,QuickLinks-org.apache.slider.hbase.zk-path</appExports> + <componentExports> + <componentExport> + <name>org.apache.slider.jmx</name> + <value>${THIS_HOST}:${site.hbase-site.hbase.master.info.port}/jmx</value> + </componentExport> + <componentExport> + <name>org.apache.slider.monitor</name> + <value>${THIS_HOST}:${site.hbase-site.hbase.master.info.port}/master-status</value> + </componentExport> + <componentExport> + <name>org.apache.slider.hbase.zk-path</name> + <value>${site.hbase-site.hbase.zookeeper.quorum}:${site.hbase-site.zookeeper.znode.parent}</value> + </componentExport> + </componentExports> + <commands> + <command> + <exec>{$conf:@//site/global/daemon_cmd} start master</exec> + </command> + <command> + <exec>{$conf:@//site/global/daemon_cmd} stop master</exec> + <name>STOP</name> + </command> + </commands> + </component> + + <component> + <name>HBASE_REGIONSERVER</name> + <category>SLAVE</category> + <minInstanceCount>1</minInstanceCount> + <commands> + <command> + <exec>{$conf:@//site/global/daemon_cmd} start regionserver</exec> + </command> + <command> + <exec>{$conf:@//site/global/daemon_cmd} stop regionserver</exec> + <name>STOP</name> + </command> + </commands> + </component> + + <component> + <name>HBASE_REST</name> + <category>MASTER</category> + <appExports>QuickLinks-org.apache.slider.hbase.rest</appExports> + <commands> + <command> + <exec>{$conf:@//site/global/daemon_cmd} start rest -p {$conf:@//site/global/rest_port}</exec> + </command> + <command> + <exec>{$conf:@//site/global/daemon_cmd} stop rest</exec> + <name>STOP</name> + </command> + </commands> + </component> + + <component> + <name>HBASE_THRIFT</name> + <category>MASTER</category> + <appExports>QuickLinks-org.apache.slider.hbase.thrift</appExports> + <commands> + <command> + <exec>{$conf:@//site/global/daemon_cmd} start thrift -p {$conf:@//site/global/thrift_port}</exec> + </command> + <command> + <exec>{$conf:@//site/global/daemon_cmd} stop thrift</exec> + <name>STOP</name> + </command> + </commands> + </component> + + <component> + <name>HBASE_THRIFT2</name> + <category>MASTER</category> + <minInstanceCount>0</minInstanceCount> + <appExports>QuickLinks-org.apache.slider.hbase.thrift2</appExports> + <commands> + <command> + <exec>{$conf:@//site/global/daemon_cmd} start thrift2 -p {$conf:@//site/global/thrift_port}</exec> + </command> + <command> + <exec>{$conf:@//site/global/daemon_cmd} stop thrift2</exec> + <name>STOP</name> + </command> + </commands> + </component> + + <component> + <name>HBASE_CLIENT</name> + <category>CLIENT</category> + </component> + </components> + + <osSpecifics> + <osSpecific> + <osType>any</osType> + <packages> + <package> + <type>tarball</type> + <name>files/hbase-${pkg.version}.tar.gz</name> + </package> + </packages> + </osSpecific> + </osSpecifics> + + <packages> + <package> + <type>archive</type> + <name>hbase-${pkg.version}-bin.tar.gz</name> + </package> + </packages> + + <configFiles> + <configFile> + <type>xml</type> + <fileName>hbase-site.xml</fileName> + <dictionaryName>hbase-site</dictionaryName> + </configFile> + <configFile> + <type>template</type> + <fileName>hbase-env.sh</fileName> + <dictionaryName>hbase-env</dictionaryName> + </configFile> + <configFile> + <type>template</type> + <fileName>log4j.properties</fileName> + <dictionaryName>hbase-log4j</dictionaryName> + </configFile> + <configFile> + <type>xml</type> + <fileName>hbase-policy.xml</fileName> + <dictionaryName>hbase-policy</dictionaryName> + </configFile> + <configFile> + <type>template</type> + <fileName>hadoop-metrics2-hbase.properties</fileName> + <dictionaryName>hbase-metrics2</dictionaryName> + </configFile> + </configFiles> + + </application> +</metainfo> http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/424b2a40/app-packages/hbase-nopkg/pom.xml ---------------------------------------------------------------------- diff --git a/app-packages/hbase-nopkg/pom.xml b/app-packages/hbase-nopkg/pom.xml new file mode 100644 index 0000000..fcba6f2 --- /dev/null +++ b/app-packages/hbase-nopkg/pom.xml @@ -0,0 +1,92 @@ +<?xml version="1.0"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + <!-- + 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. +--> + <parent> + <groupId>org.apache.slider.packages</groupId> + <artifactId>slider-app-packages</artifactId> + <version>0.91.0-incubating-SNAPSHOT</version> + <relativePath>../pom.xml</relativePath> + </parent> + <modelVersion>4.0.0</modelVersion> + <artifactId>slider-hbase-resources</artifactId> + <packaging>pom</packaging> + <name>Slider HBase Resources</name> + <description>Slider HBase Resources</description> + <properties> + <work.dir>package-tmp</work.dir> + <app.package.name>${project.artifactId}-${pkg.version}</app.package.name> + </properties> + + <profiles> + <profile> + <id>hbase-resources</id> + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-antrun-plugin</artifactId> + <version>${maven-antrun-plugin.version}</version> + <executions> + <execution> + <id>copy</id> + <phase>validate</phase> + <configuration> + <target name="copy and rename file"> + <copy file="${pkg.src}/${pkg.name}" tofile="${project.build.directory}/${pkg.name}" /> + </target> + </configuration> + <goals> + <goal>run</goal> + </goals> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-assembly-plugin</artifactId> + <version>${maven-assembly-plugin.version}</version> + <configuration> + <tarLongFileMode>gnu</tarLongFileMode> + <descriptor>src/assembly/hbase.xml</descriptor> + <appendAssemblyId>false</appendAssemblyId> + <finalName>${app.package.name}</finalName> + </configuration> + <executions> + <execution> + <id>build-tarball</id> + <phase>package</phase> + <goals> + <goal>single</goal> + </goals> + </execution> + </executions> + </plugin> + + </plugins> + </build> + </profile> + </profiles> + + <build> + </build> + + <dependencies> + </dependencies> + +</project> http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/424b2a40/app-packages/hbase-nopkg/resources-default.json ---------------------------------------------------------------------- diff --git a/app-packages/hbase-nopkg/resources-default.json b/app-packages/hbase-nopkg/resources-default.json new file mode 100644 index 0000000..de3b279 --- /dev/null +++ b/app-packages/hbase-nopkg/resources-default.json @@ -0,0 +1,47 @@ +{ + "schema": "http://example.org/specification/v2.0.0", + "metadata": { + }, + "global": { + "yarn.log.include.patterns": "", + "yarn.log.exclude.patterns": "", + "yarn.component.instances": "1", + "yarn.vcores": "1" + }, + "components": { + "slider-appmaster": { + "yarn.memory": "1024" + }, + "HBASE_MASTER": { + "yarn.role.priority": "1", + "yarn.component.instances": "1", + "yarn.placement.escalate.seconds": "10", + "yarn.memory": "1500" + }, + "HBASE_REGIONSERVER": { + "yarn.role.priority": "2", + "yarn.component.instances": "1", + "yarn.memory": "1500", + "yarn.container.failure.threshold": "15", + "yarn.placement.escalate.seconds": "60" + }, + "HBASE_REST": { + "yarn.role.priority": "3", + "yarn.component.instances": "1", + "yarn.component.placement.policy": "1", + "yarn.memory": "556" + }, + "HBASE_THRIFT": { + "yarn.role.priority": "4", + "yarn.component.instances": "1", + "yarn.component.placement.policy": "1", + "yarn.memory": "556" + }, + "HBASE_THRIFT2": { + "yarn.role.priority": "5", + "yarn.component.instances": "1", + "yarn.component.placement.policy": "1", + "yarn.memory": "556" + } + } +} http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/424b2a40/app-packages/hbase-nopkg/resources/hadoop-metrics2-hbase.properties-GANGLIA-MASTER.j2 ---------------------------------------------------------------------- diff --git a/app-packages/hbase-nopkg/resources/hadoop-metrics2-hbase.properties-GANGLIA-MASTER.j2 b/app-packages/hbase-nopkg/resources/hadoop-metrics2-hbase.properties-GANGLIA-MASTER.j2 new file mode 100644 index 0000000..3ed7af2 --- /dev/null +++ b/app-packages/hbase-nopkg/resources/hadoop-metrics2-hbase.properties-GANGLIA-MASTER.j2 @@ -0,0 +1,62 @@ +# 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={{metric_collector_host}}:{{metric_collector_port}} + +# 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={{metric_collector_host}}:{{metric_collector_port}} + +# 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={{metric_collector_host}}:{{metric_collector_port}} + +#Ganglia following hadoop example +hbase.sink.ganglia.class=org.apache.hadoop.metrics2.sink.ganglia.GangliaSink31 +hbase.sink.ganglia.period=10 + +# default for supportsparse is false +*.sink.ganglia.supportsparse=true + +.sink.ganglia.slope=jvm.metrics.gcCount=zero,jvm.metrics.memHeapUsedM=both +.sink.ganglia.dmax=jvm.metrics.threadsBlocked=70,jvm.metrics.memHeapUsedM=40 + +hbase.sink.ganglia.servers={{metric_collector_host}}:{{metric_collector_port}} http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/424b2a40/app-packages/hbase-nopkg/resources/hadoop-metrics2-hbase.properties-GANGLIA-RS.j2 ---------------------------------------------------------------------- diff --git a/app-packages/hbase-nopkg/resources/hadoop-metrics2-hbase.properties-GANGLIA-RS.j2 b/app-packages/hbase-nopkg/resources/hadoop-metrics2-hbase.properties-GANGLIA-RS.j2 new file mode 100644 index 0000000..3ed7af2 --- /dev/null +++ b/app-packages/hbase-nopkg/resources/hadoop-metrics2-hbase.properties-GANGLIA-RS.j2 @@ -0,0 +1,62 @@ +# 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={{metric_collector_host}}:{{metric_collector_port}} + +# 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={{metric_collector_host}}:{{metric_collector_port}} + +# 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={{metric_collector_host}}:{{metric_collector_port}} + +#Ganglia following hadoop example +hbase.sink.ganglia.class=org.apache.hadoop.metrics2.sink.ganglia.GangliaSink31 +hbase.sink.ganglia.period=10 + +# default for supportsparse is false +*.sink.ganglia.supportsparse=true + +.sink.ganglia.slope=jvm.metrics.gcCount=zero,jvm.metrics.memHeapUsedM=both +.sink.ganglia.dmax=jvm.metrics.threadsBlocked=70,jvm.metrics.memHeapUsedM=40 + +hbase.sink.ganglia.servers={{metric_collector_host}}:{{metric_collector_port}} http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/424b2a40/app-packages/hbase-nopkg/resources/hadoop-metrics2-hbase.properties-MASTER.j2 ---------------------------------------------------------------------- diff --git a/app-packages/hbase-nopkg/resources/hadoop-metrics2-hbase.properties-MASTER.j2 b/app-packages/hbase-nopkg/resources/hadoop-metrics2-hbase.properties-MASTER.j2 new file mode 100644 index 0000000..5473ff5 --- /dev/null +++ b/app-packages/hbase-nopkg/resources/hadoop-metrics2-hbase.properties-MASTER.j2 @@ -0,0 +1,47 @@ +# 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 + +*.timeline.plugin.urls={{metric_collector_lib}} +hbase.class=org.apache.hadoop.metrics2.sink.timeline.HadoopTimelineMetricsSink +hbase.period=10 +hbase.collector={{metric_collector_host}}:{{metric_collector_port}} + +jvm.class=org.apache.hadoop.metrics2.sink.timeline.HadoopTimelineMetricsSink +jvm.period=10 +jvm.collector={{metric_collector_host}}:{{metric_collector_port}} + +rpc.class=org.apache.hadoop.metrics2.sink.timeline.HadoopTimelineMetricsSink +rpc.period=10 +rpc.collector={{metric_collector_host}}:{{metric_collector_port}} + +hbase.sink.timeline.class=org.apache.hadoop.metrics2.sink.timeline.HadoopTimelineMetricsSink +hbase.sink.timeline.period=10 +hbase.sink.timeline.collector={{metric_collector_host}}:{{metric_collector_port}} +hbase.sink.timeline.serviceName={{app_name}} http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/424b2a40/app-packages/hbase-nopkg/resources/hadoop-metrics2-hbase.properties-RS.j2 ---------------------------------------------------------------------- diff --git a/app-packages/hbase-nopkg/resources/hadoop-metrics2-hbase.properties-RS.j2 b/app-packages/hbase-nopkg/resources/hadoop-metrics2-hbase.properties-RS.j2 new file mode 100644 index 0000000..5473ff5 --- /dev/null +++ b/app-packages/hbase-nopkg/resources/hadoop-metrics2-hbase.properties-RS.j2 @@ -0,0 +1,47 @@ +# 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 + +*.timeline.plugin.urls={{metric_collector_lib}} +hbase.class=org.apache.hadoop.metrics2.sink.timeline.HadoopTimelineMetricsSink +hbase.period=10 +hbase.collector={{metric_collector_host}}:{{metric_collector_port}} + +jvm.class=org.apache.hadoop.metrics2.sink.timeline.HadoopTimelineMetricsSink +jvm.period=10 +jvm.collector={{metric_collector_host}}:{{metric_collector_port}} + +rpc.class=org.apache.hadoop.metrics2.sink.timeline.HadoopTimelineMetricsSink +rpc.period=10 +rpc.collector={{metric_collector_host}}:{{metric_collector_port}} + +hbase.sink.timeline.class=org.apache.hadoop.metrics2.sink.timeline.HadoopTimelineMetricsSink +hbase.sink.timeline.period=10 +hbase.sink.timeline.collector={{metric_collector_host}}:{{metric_collector_port}} +hbase.sink.timeline.serviceName={{app_name}} http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/424b2a40/app-packages/hbase-nopkg/resources/hbase-env-client.sh.j2 ---------------------------------------------------------------------- diff --git a/app-packages/hbase-nopkg/resources/hbase-env-client.sh.j2 b/app-packages/hbase-nopkg/resources/hbase-env-client.sh.j2 new file mode 100644 index 0000000..2511a29 --- /dev/null +++ b/app-packages/hbase-nopkg/resources/hbase-env-client.sh.j2 @@ -0,0 +1,49 @@ +# Set environment variables here. + +# The java implementation to use. Java 1.6 required. +export JAVA_HOME={{java64_home}} + +# 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" +# 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" + +# 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 + +# 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 +export HBASE_OPTS="$HBASE_OPTS {{hbase_opts}}" http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/424b2a40/app-packages/hbase-nopkg/resources/hbase-env-secured.sh.j2 ---------------------------------------------------------------------- diff --git a/app-packages/hbase-nopkg/resources/hbase-env-secured.sh.j2 b/app-packages/hbase-nopkg/resources/hbase-env-secured.sh.j2 new file mode 100644 index 0000000..9ee901d --- /dev/null +++ b/app-packages/hbase-nopkg/resources/hbase-env-secured.sh.j2 @@ -0,0 +1,63 @@ +# 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 +export HBASE_OPTS="$HBASE_OPTS {{hbase_opts}}" + +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}}" http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/424b2a40/app-packages/hbase-nopkg/resources/hbase-env.sh.j2 ---------------------------------------------------------------------- diff --git a/app-packages/hbase-nopkg/resources/hbase-env.sh.j2 b/app-packages/hbase-nopkg/resources/hbase-env.sh.j2 new file mode 100644 index 0000000..3ed354f --- /dev/null +++ b/app-packages/hbase-nopkg/resources/hbase-env.sh.j2 @@ -0,0 +1,59 @@ +# 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 +export HBASE_OPTS="$HBASE_OPTS {{hbase_opts}}" http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/424b2a40/app-packages/hbase-nopkg/resources/hbase-log4j.properties.j2 ---------------------------------------------------------------------- diff --git a/app-packages/hbase-nopkg/resources/hbase-log4j.properties.j2 b/app-packages/hbase-nopkg/resources/hbase-log4j.properties.j2 new file mode 100644 index 0000000..e0a7e22 --- /dev/null +++ b/app-packages/hbase-nopkg/resources/hbase-log4j.properties.j2 @@ -0,0 +1,110 @@ +# 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. + + +# Define some default values that can be overridden by system properties +hbase.root.logger=INFO,console +hbase.security.logger=INFO,console +hbase.log.dir=. +hbase.log.file=hbase.log + +# Define the root logger to the system property "hbase.root.logger". +log4j.rootLogger=${hbase.root.logger} + +# Logging Threshold +log4j.threshold=ALL + +# +# Daily Rolling File Appender +# +log4j.appender.DRFA=org.apache.log4j.DailyRollingFileAppender +log4j.appender.DRFA.File=${hbase.log.dir}/${hbase.log.file} + +# Rollver at midnight +log4j.appender.DRFA.DatePattern=.yyyy-MM-dd + +# 30-day backup +#log4j.appender.DRFA.MaxBackupIndex=30 +log4j.appender.DRFA.layout=org.apache.log4j.PatternLayout + +# Pattern format: Date LogLevel LoggerName LogMessage +log4j.appender.DRFA.layout.ConversionPattern=%d{ISO8601} %-5p [%t] %c{2}: %m%n + +# Rolling File Appender properties +hbase.log.maxfilesize=256MB +hbase.log.maxbackupindex=20 + +# Rolling File Appender +log4j.appender.RFA=org.apache.log4j.RollingFileAppender +log4j.appender.RFA.File=${hbase.log.dir}/${hbase.log.file} + +log4j.appender.RFA.MaxFileSize=${hbase.log.maxfilesize} +log4j.appender.RFA.MaxBackupIndex=${hbase.log.maxbackupindex} + +log4j.appender.RFA.layout=org.apache.log4j.PatternLayout +log4j.appender.RFA.layout.ConversionPattern=%d{ISO8601} %-5p [%t] %c{2}: %m%n + +# +# Security audit appender +# +hbase.security.log.file=SecurityAuth.audit +hbase.security.log.maxfilesize=256MB +hbase.security.log.maxbackupindex=20 +log4j.appender.RFAS=org.apache.log4j.RollingFileAppender +log4j.appender.RFAS.File=${hbase.log.dir}/${hbase.security.log.file} +log4j.appender.RFAS.MaxFileSize=${hbase.security.log.maxfilesize} +log4j.appender.RFAS.MaxBackupIndex=${hbase.security.log.maxbackupindex} +log4j.appender.RFAS.layout=org.apache.log4j.PatternLayout +log4j.appender.RFAS.layout.ConversionPattern=%d{ISO8601} %p %c: %m%n +log4j.category.SecurityLogger=${hbase.security.logger} +log4j.additivity.SecurityLogger=false +#log4j.logger.SecurityLogger.org.apache.hadoop.hbase.security.access.AccessController=TRACE + +# +# Null Appender +# +log4j.appender.NullAppender=org.apache.log4j.varia.NullAppender + +# +# console +# Add "console" to rootlogger above if you want to use this +# +log4j.appender.console=org.apache.log4j.ConsoleAppender +log4j.appender.console.target=System.err +log4j.appender.console.layout=org.apache.log4j.PatternLayout +log4j.appender.console.layout.ConversionPattern=%d{ISO8601} %-5p [%t] %c{2}: %m%n + +# Custom Logging levels + +log4j.logger.org.apache.zookeeper=INFO +#log4j.logger.org.apache.hadoop.fs.FSNamesystem=DEBUG +log4j.logger.org.apache.hadoop.hbase=DEBUG +# Make these two classes INFO-level. Make them DEBUG to see more zk debug. +log4j.logger.org.apache.hadoop.hbase.zookeeper.ZKUtil=INFO +log4j.logger.org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher=INFO +#log4j.logger.org.apache.hadoop.dfs=DEBUG +# Set this class to log INFO only otherwise its OTT +# Enable this to get detailed connection error/retry logging. +# log4j.logger.org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation=TRACE + + +# Uncomment this line to enable tracing on _every_ RPC call (this can be a lot of output) +#log4j.logger.org.apache.hadoop.ipc.HBaseServer.trace=DEBUG + +# Uncomment the below if you want to remove logging of client region caching' +# and scan of .META. messages +# log4j.logger.org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation=INFO +# log4j.logger.org.apache.hadoop.hbase.client.MetaScanner=INFO http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/424b2a40/app-packages/hbase-nopkg/resources/hbase_client_jaas.conf.j2 ---------------------------------------------------------------------- diff --git a/app-packages/hbase-nopkg/resources/hbase_client_jaas.conf.j2 b/app-packages/hbase-nopkg/resources/hbase_client_jaas.conf.j2 new file mode 100644 index 0000000..bb4279c --- /dev/null +++ b/app-packages/hbase-nopkg/resources/hbase_client_jaas.conf.j2 @@ -0,0 +1,22 @@ +/* + * 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/incubator-slider/blob/424b2a40/app-packages/hbase-nopkg/resources/hbase_master_jaas.conf.j2 ---------------------------------------------------------------------- diff --git a/app-packages/hbase-nopkg/resources/hbase_master_jaas.conf.j2 b/app-packages/hbase-nopkg/resources/hbase_master_jaas.conf.j2 new file mode 100644 index 0000000..91ce3ef --- /dev/null +++ b/app-packages/hbase-nopkg/resources/hbase_master_jaas.conf.j2 @@ -0,0 +1,25 @@ +/* + * 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/incubator-slider/blob/424b2a40/app-packages/hbase-nopkg/resources/hbase_regionserver_jaas.conf.j2 ---------------------------------------------------------------------- diff --git a/app-packages/hbase-nopkg/resources/hbase_regionserver_jaas.conf.j2 b/app-packages/hbase-nopkg/resources/hbase_regionserver_jaas.conf.j2 new file mode 100644 index 0000000..2a9b9f3 --- /dev/null +++ b/app-packages/hbase-nopkg/resources/hbase_regionserver_jaas.conf.j2 @@ -0,0 +1,25 @@ +/* + * 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/incubator-slider/blob/424b2a40/app-packages/hbase-nopkg/src/assembly/hbase.xml ---------------------------------------------------------------------- diff --git a/app-packages/hbase-nopkg/src/assembly/hbase.xml b/app-packages/hbase-nopkg/src/assembly/hbase.xml new file mode 100644 index 0000000..0558319 --- /dev/null +++ b/app-packages/hbase-nopkg/src/assembly/hbase.xml @@ -0,0 +1,89 @@ +<!-- + ~ 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. + --> + + +<assembly + xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd"> + <id>hbase_v${hbase.version}</id> + <formats> + <format>zip</format> + <format>dir</format> + </formats> + <includeBaseDirectory>false</includeBaseDirectory> + + <files> + <file> + <source>appConfig-default.json</source> + <outputDirectory>/</outputDirectory> + <filtered>true</filtered> + <fileMode>0755</fileMode> + </file> + <file> + <source>appConfig-secured-default.json</source> + <outputDirectory>/</outputDirectory> + <filtered>true</filtered> + <fileMode>0755</fileMode> + </file> + <file> + <source>clientInstallConfig-default.json</source> + <outputDirectory>/</outputDirectory> + <filtered>true</filtered> + <fileMode>0755</fileMode> + </file> + <file> + <source>metainfo.xml</source> + <outputDirectory>/</outputDirectory> + <filtered>true</filtered> + <fileMode>0755</fileMode> + </file> + <file> + <source>metainfo-secured.xml</source> + <outputDirectory>/</outputDirectory> + <filtered>true</filtered> + <fileMode>0755</fileMode> + </file> + <file> + <source>${pkg.src}/${pkg.name}</source> + <outputDirectory>resources</outputDirectory> + <filtered>false</filtered> + <fileMode>0755</fileMode> + </file> + </files> + + <fileSets> + <fileSet> + <directory>${project.basedir}</directory> + <outputDirectory>/</outputDirectory> + <excludes> + <exclude>pom.xml</exclude> + <exclude>src/**</exclude> + <exclude>target/**</exclude> + <exclude>appConfig-default.json</exclude> + <exclude>appConfig-secured-default.json</exclude> + <exclude>clientInstallConfig-default.json</exclude> + <exclude>metainfo.xml</exclude> + <exclude>metainfo-secured.xml</exclude> + </excludes> + <fileMode>0755</fileMode> + <directoryMode>0755</directoryMode> + </fileSet> + + </fileSets> +</assembly> http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/424b2a40/pom.xml ---------------------------------------------------------------------- diff --git a/pom.xml b/pom.xml index 52c7459..7c21e07 100644 --- a/pom.xml +++ b/pom.xml @@ -173,6 +173,7 @@ <protobuf.version>2.5.0</protobuf.version> <slf4j.version>1.7.5</slf4j.version> + <snakeyaml.version>1.16</snakeyaml.version> <storm.version>0.9.3</storm.version> <stringtemplate.version>2.4.1</stringtemplate.version> <zookeeper.version>3.4.6</zookeeper.version> @@ -1178,6 +1179,12 @@ <version>${slf4j.version}</version> </dependency> + <dependency> + <groupId>org.yaml</groupId> + <artifactId>snakeyaml</artifactId> + <version>${snakeyaml.version}</version> + </dependency> + <!-- Used for testing --> <dependency> <groupId>junit</groupId> http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/424b2a40/slider-agent/src/main/python/agent/ActionQueue.py ---------------------------------------------------------------------- diff --git a/slider-agent/src/main/python/agent/ActionQueue.py b/slider-agent/src/main/python/agent/ActionQueue.py index 7514337..e973337 100644 --- a/slider-agent/src/main/python/agent/ActionQueue.py +++ b/slider-agent/src/main/python/agent/ActionQueue.py @@ -161,7 +161,7 @@ class ActionQueue(threading.Thread): self.commandStatuses.put_command_status(command, in_progress_status, reportResult) store_config = False - if ActionQueue.STORE_APPLIED_CONFIG in command['commandParams']: + if 'commandParams' in command and ActionQueue.STORE_APPLIED_CONFIG in command['commandParams']: store_config = 'true' == command['commandParams'][ActionQueue.STORE_APPLIED_CONFIG] store_command = False if 'roleParams' in command and command['roleParams'] is not None and ActionQueue.AUTO_RESTART in command['roleParams']: http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/424b2a40/slider-agent/src/main/python/scripts/shell_cmd/basic_installer.py ---------------------------------------------------------------------- diff --git a/slider-agent/src/main/python/scripts/shell_cmd/basic_installer.py b/slider-agent/src/main/python/scripts/shell_cmd/basic_installer.py index 561fd6c..df9b6f0 100644 --- a/slider-agent/src/main/python/scripts/shell_cmd/basic_installer.py +++ b/slider-agent/src/main/python/scripts/shell_cmd/basic_installer.py @@ -35,16 +35,15 @@ class BasicInstaller(Script): self.configure(env) process_cmd = format("{cmd}") - Execute(process_cmd, - logoutput=False, - wait_for_finish=False, - pid_file=params.pid_file, - poll_after = 5 - ) + Execute(process_cmd) def stop(self, env): import params env.set_params(params) + self.configure(env) + process_cmd = format("{cmd}") + + Execute(process_cmd) def status(self, env): import params http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/424b2a40/slider-core/pom.xml ---------------------------------------------------------------------- diff --git a/slider-core/pom.xml b/slider-core/pom.xml index eda352f..57507d6 100644 --- a/slider-core/pom.xml +++ b/slider-core/pom.xml @@ -254,6 +254,12 @@ </dependency> <dependency> + <groupId>org.yaml</groupId> + <artifactId>snakeyaml</artifactId> + <scope>compile</scope> + </dependency> + + <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-client</artifactId> <scope>compile</scope>