You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by dm...@apache.org on 2013/12/23 22:18:57 UTC
[29/29] git commit: AMBARI-4159. Enable 2.0.8 stack (with python
services support) (dlysnichenko)
AMBARI-4159. Enable 2.0.8 stack (with python services support) (dlysnichenko)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/ef81b392
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/ef81b392
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/ef81b392
Branch: refs/heads/trunk
Commit: ef81b392fd583570a3dc031094d28ca8e2418e8e
Parents: eb021c0
Author: Lisnichenko Dmitro <dl...@hortonworks.com>
Authored: Mon Dec 23 23:07:07 2013 +0200
Committer: Lisnichenko Dmitro <dl...@hortonworks.com>
Committed: Mon Dec 23 23:16:01 2013 +0200
----------------------------------------------------------------------
.../src/main/python/ambari_agent/ActionQueue.py | 3 +
.../src/main/python/ambari_agent/Controller.py | 2 +-
.../before-START/files/changeToSecureUid.sh | 50 +
.../hooks/before-START/files/checkForFormat.sh | 62 +
.../before-START/files/task-log4j.properties | 132 +
.../2.0.8/hooks/before-START/scripts/hook.py | 38 +
.../2.0.8/hooks/before-START/scripts/params.py | 196 +
.../scripts/shared_initialization.py | 408 +
.../templates/commons-logging.properties.j2 | 25 +
.../templates/exclude_hosts_list.j2 | 3 +
.../before-START/templates/hadoop-env.sh.j2 | 121 +
.../templates/hadoop-metrics2.properties.j2 | 45 +
.../hooks/before-START/templates/hdfs.conf.j2 | 17 +
.../before-START/templates/health_check-v2.j2 | 91 +
.../before-START/templates/health_check.j2 | 118 +
.../templates/include_hosts_list.j2 | 3 +
.../before-START/templates/log4j.properties.j2 | 218 +
.../hooks/before-START/templates/slaves.j2 | 3 +
.../hooks/before-START/templates/snmpd.conf.j2 | 48 +
.../templates/taskcontroller.cfg.j2 | 20 +
.../resources/stacks/HDP/2.0.8/metainfo.xml | 22 +
.../stacks/HDP/2.0.8/repos/repoinfo.xml | 75 +
.../stacks/HDP/2.0.8/role_command_order.json | 100 +
.../HDP/2.0.8/services/GANGLIA/metainfo.xml | 101 +
.../GANGLIA/package/files/checkGmetad.sh | 37 +
.../GANGLIA/package/files/checkGmond.sh | 62 +
.../GANGLIA/package/files/checkRrdcached.sh | 34 +
.../services/GANGLIA/package/files/gmetad.init | 73 +
.../services/GANGLIA/package/files/gmetadLib.sh | 204 +
.../services/GANGLIA/package/files/gmond.init | 73 +
.../services/GANGLIA/package/files/gmondLib.sh | 545 +
.../2.0.8/services/GANGLIA/package/files/rrd.py | 213 +
.../GANGLIA/package/files/rrdcachedLib.sh | 47 +
.../GANGLIA/package/files/setupGanglia.sh | 141 +
.../GANGLIA/package/files/startGmetad.sh | 64 +
.../GANGLIA/package/files/startGmond.sh | 80 +
.../GANGLIA/package/files/startRrdcached.sh | 69 +
.../GANGLIA/package/files/stopGmetad.sh | 43 +
.../services/GANGLIA/package/files/stopGmond.sh | 54 +
.../GANGLIA/package/files/stopRrdcached.sh | 41 +
.../GANGLIA/package/files/teardownGanglia.sh | 28 +
.../services/GANGLIA/package/scripts/ganglia.py | 97 +
.../GANGLIA/package/scripts/ganglia_monitor.py | 134 +
.../package/scripts/ganglia_monitor_service.py | 31 +
.../GANGLIA/package/scripts/ganglia_server.py | 150 +
.../package/scripts/ganglia_server_service.py | 27 +
.../services/GANGLIA/package/scripts/params.py | 64 +
.../GANGLIA/package/scripts/status_params.py | 25 +
.../package/templates/gangliaClusters.conf.j2 | 28 +
.../GANGLIA/package/templates/gangliaEnv.sh.j2 | 24 +
.../GANGLIA/package/templates/gangliaLib.sh.j2 | 62 +
.../services/HBASE/configuration/global.xml | 160 +
.../HBASE/configuration/hbase-policy.xml | 53 +
.../services/HBASE/configuration/hbase-site.xml | 356 +
.../HDP/2.0.8/services/HBASE/metainfo.xml | 93 +
.../HDP/2.0.8/services/HBASE/metrics.json | 13635 +++++++++++++++++
.../HBASE/package/files/hbaseSmokeVerify.sh | 32 +
.../services/HBASE/package/scripts/__init__.py | 19 +
.../services/HBASE/package/scripts/functions.py | 67 +
.../services/HBASE/package/scripts/hbase.py | 91 +
.../HBASE/package/scripts/hbase_client.py | 52 +
.../HBASE/package/scripts/hbase_master.py | 74 +
.../HBASE/package/scripts/hbase_regionserver.py | 75 +
.../HBASE/package/scripts/hbase_service.py | 46 +
.../services/HBASE/package/scripts/params.py | 81 +
.../HBASE/package/scripts/service_check.py | 89 +
.../HBASE/package/scripts/status_params.py | 25 +
...-metrics2-hbase.properties-GANGLIA-MASTER.j2 | 62 +
...doop-metrics2-hbase.properties-GANGLIA-RS.j2 | 62 +
.../HBASE/package/templates/hbase-env.sh.j2 | 82 +
.../HBASE/package/templates/hbase-smoke.sh.j2 | 26 +
.../package/templates/hbase_client_jaas.conf.j2 | 5 +
.../templates/hbase_grant_permissions.j2 | 21 +
.../package/templates/hbase_master_jaas.conf.j2 | 8 +
.../templates/hbase_regionserver_jaas.conf.j2 | 8 +
.../HBASE/package/templates/regionservers.j2 | 2 +
.../services/HDFS/configuration/core-site.xml | 167 +
.../services/HDFS/configuration/global.xml | 192 +
.../HDFS/configuration/hadoop-policy.xml | 134 +
.../services/HDFS/configuration/hdfs-site.xml | 513 +
.../stacks/HDP/2.0.8/services/HDFS/metainfo.xml | 154 +
.../stacks/HDP/2.0.8/services/HDFS/metrics.json | 7800 ++++++++++
.../HDFS/package/files/checkForFormat.sh | 62 +
.../services/HDFS/package/files/checkWebUI.py | 53 +
.../services/HDFS/package/scripts/datanode.py | 57 +
.../HDFS/package/scripts/hdfs_client.py | 49 +
.../HDFS/package/scripts/hdfs_datanode.py | 56 +
.../HDFS/package/scripts/hdfs_namenode.py | 177 +
.../HDFS/package/scripts/hdfs_snamenode.py | 53 +
.../HDFS/package/scripts/journalnode.py | 74 +
.../services/HDFS/package/scripts/namenode.py | 59 +
.../services/HDFS/package/scripts/params.py | 183 +
.../HDFS/package/scripts/service_check.py | 106 +
.../services/HDFS/package/scripts/snamenode.py | 64 +
.../HDFS/package/scripts/status_params.py | 31 +
.../services/HDFS/package/scripts/utils.py | 138 +
.../services/HDFS/package/scripts/zkfc_slave.py | 62 +
.../services/HIVE/configuration/hive-site.xml | 267 +
.../stacks/HDP/2.0.8/services/HIVE/metainfo.xml | 156 +
.../services/HIVE/package/files/addMysqlUser.sh | 41 +
.../services/HIVE/package/files/hcatSmoke.sh | 35 +
.../services/HIVE/package/files/hiveSmoke.sh | 23 +
.../services/HIVE/package/files/hiveserver2.sql | 23 +
.../HIVE/package/files/hiveserver2Smoke.sh | 31 +
.../services/HIVE/package/files/pigSmoke.sh | 18 +
.../HIVE/package/files/startHiveserver2.sh | 22 +
.../HIVE/package/files/startMetastore.sh | 22 +
.../services/HIVE/package/scripts/__init__.py | 19 +
.../2.0.8/services/HIVE/package/scripts/hcat.py | 47 +
.../HIVE/package/scripts/hcat_client.py | 43 +
.../HIVE/package/scripts/hcat_service_check.py | 63 +
.../2.0.8/services/HIVE/package/scripts/hive.py | 123 +
.../HIVE/package/scripts/hive_client.py | 41 +
.../HIVE/package/scripts/hive_metastore.py | 63 +
.../HIVE/package/scripts/hive_server.py | 63 +
.../HIVE/package/scripts/hive_service.py | 56 +
.../HIVE/package/scripts/mysql_server.py | 77 +
.../HIVE/package/scripts/mysql_service.py | 44 +
.../services/HIVE/package/scripts/params.py | 123 +
.../HIVE/package/scripts/service_check.py | 56 +
.../HIVE/package/scripts/status_params.py | 30 +
.../HIVE/package/templates/hcat-env.sh.j2 | 25 +
.../HIVE/package/templates/hive-env.sh.j2 | 55 +
.../HDP/2.0.8/services/NAGIOS/metainfo.xml | 105 +
.../NAGIOS/package/files/check_aggregate.php | 243 +
.../services/NAGIOS/package/files/check_cpu.pl | 114 +
.../package/files/check_datanode_storage.php | 100 +
.../NAGIOS/package/files/check_hdfs_blocks.php | 115 +
.../package/files/check_hdfs_capacity.php | 109 +
.../files/check_hive_metastore_status.sh | 45 +
.../NAGIOS/package/files/check_hue_status.sh | 31 +
.../files/check_mapred_local_dir_used.sh | 34 +
.../package/files/check_name_dir_status.php | 93 +
.../NAGIOS/package/files/check_namenodes_ha.sh | 82 +
.../package/files/check_nodemanager_health.sh | 44 +
.../NAGIOS/package/files/check_oozie_status.sh | 45 +
.../NAGIOS/package/files/check_rpcq_latency.php | 104 +
.../package/files/check_templeton_status.sh | 45 +
.../NAGIOS/package/files/check_webui.sh | 87 +
.../NAGIOS/package/files/hdp_nagios_init.php | 81 +
.../NAGIOS/package/scripts/functions.py | 31 +
.../services/NAGIOS/package/scripts/nagios.py | 97 +
.../NAGIOS/package/scripts/nagios_server.py | 87 +
.../package/scripts/nagios_server_config.py | 91 +
.../NAGIOS/package/scripts/nagios_service.py | 36 +
.../services/NAGIOS/package/scripts/params.py | 162 +
.../NAGIOS/package/scripts/status_params.py | 26 +
.../NAGIOS/package/templates/contacts.cfg.j2 | 91 +
.../package/templates/hadoop-commands.cfg.j2 | 114 +
.../package/templates/hadoop-hostgroups.cfg.j2 | 15 +
.../package/templates/hadoop-hosts.cfg.j2 | 16 +
.../templates/hadoop-servicegroups.cfg.j2 | 80 +
.../package/templates/hadoop-services.cfg.j2 | 654 +
.../NAGIOS/package/templates/nagios.cfg.j2 | 1349 ++
.../NAGIOS/package/templates/nagios.conf.j2 | 62 +
.../services/NAGIOS/package/templates/nagios.j2 | 146 +
.../NAGIOS/package/templates/resource.cfg.j2 | 33 +
.../services/OOZIE/configuration/oozie-site.xml | 313 +
.../HDP/2.0.8/services/OOZIE/metainfo.xml | 79 +
.../services/OOZIE/package/files/oozieSmoke2.sh | 95 +
.../OOZIE/package/files/wrap_ooziedb.sh | 31 +
.../services/OOZIE/package/scripts/oozie.py | 99 +
.../OOZIE/package/scripts/oozie_client.py | 33 +
.../OOZIE/package/scripts/oozie_server.py | 45 +
.../OOZIE/package/scripts/oozie_service.py | 45 +
.../services/OOZIE/package/scripts/params.py | 56 +
.../OOZIE/package/scripts/service_check.py | 47 +
.../OOZIE/package/scripts/status_params.py | 26 +
.../OOZIE/package/templates/oozie-env.sh.j2 | 64 +
.../package/templates/oozie-log4j.properties.j2 | 74 +
.../services/PIG/configuration/pig.properties | 52 +
.../stacks/HDP/2.0.8/services/PIG/metainfo.xml | 60 +
.../services/PIG/package/files/pigSmoke.sh | 18 +
.../services/PIG/package/scripts/params.py | 36 +
.../2.0.8/services/PIG/package/scripts/pig.py | 46 +
.../services/PIG/package/scripts/pig_client.py | 52 +
.../PIG/package/scripts/service_check.py | 75 +
.../PIG/package/templates/log4j.properties.j2 | 30 +
.../PIG/package/templates/pig-env.sh.j2 | 17 +
.../PIG/package/templates/pig.properties.j2 | 55 +
.../HDP/2.0.8/services/SQOOP/metainfo.xml | 60 +
.../services/SQOOP/package/scripts/__init__.py | 19 +
.../services/SQOOP/package/scripts/params.py | 37 +
.../SQOOP/package/scripts/service_check.py | 37 +
.../services/SQOOP/package/scripts/sqoop.py | 52 +
.../SQOOP/package/scripts/sqoop_client.py | 41 +
.../SQOOP/package/templates/sqoop-env.sh.j2 | 36 +
.../WEBHCAT/configuration/webhcat-site.xml | 126 +
.../HDP/2.0.8/services/WEBHCAT/metainfo.xml | 65 +
.../WEBHCAT/package/files/templetonSmoke.sh | 95 +
.../WEBHCAT/package/scripts/__init__.py | 21 +
.../services/WEBHCAT/package/scripts/params.py | 51 +
.../WEBHCAT/package/scripts/service_check.py | 45 +
.../WEBHCAT/package/scripts/status_params.py | 26 +
.../services/WEBHCAT/package/scripts/webhcat.py | 120 +
.../WEBHCAT/package/scripts/webhcat_server.py | 54 +
.../WEBHCAT/package/scripts/webhcat_service.py | 41 +
.../WEBHCAT/package/templates/webhcat-env.sh.j2 | 44 +
.../YARN/configuration/capacity-scheduler.xml | 128 +
.../services/YARN/configuration/core-site.xml | 20 +
.../services/YARN/configuration/global.xml | 88 +
.../YARN/configuration/mapred-queue-acls.xml | 39 +
.../services/YARN/configuration/mapred-site.xml | 381 +
.../services/YARN/configuration/yarn-site.xml | 326 +
.../stacks/HDP/2.0.8/services/YARN/metainfo.xml | 162 +
.../stacks/HDP/2.0.8/services/YARN/metrics.json | 2534 +++
.../files/validateYarnComponentStatus.py | 165 +
.../services/YARN/package/scripts/__init__.py | 21 +
.../YARN/package/scripts/historyserver.py | 60 +
.../package/scripts/mapred_service_check.py | 67 +
.../YARN/package/scripts/mapreduce2_client.py | 43 +
.../YARN/package/scripts/nodemanager.py | 61 +
.../services/YARN/package/scripts/params.py | 85 +
.../YARN/package/scripts/resourcemanager.py | 83 +
.../services/YARN/package/scripts/service.py | 65 +
.../YARN/package/scripts/service_check.py | 67 +
.../YARN/package/scripts/status_params.py | 34 +
.../2.0.8/services/YARN/package/scripts/yarn.py | 126 +
.../YARN/package/scripts/yarn_client.py | 43 +
.../package/templates/container-executor.cfg.j2 | 22 +
.../YARN/package/templates/mapreduce.conf.j2 | 17 +
.../YARN/package/templates/yarn-env.sh.j2 | 119 +
.../YARN/package/templates/yarn.conf.j2 | 17 +
.../services/ZOOKEEPER/configuration/global.xml | 75 +
.../HDP/2.0.8/services/ZOOKEEPER/metainfo.xml | 70 +
.../services/ZOOKEEPER/package/files/zkEnv.sh | 96 +
.../ZOOKEEPER/package/files/zkServer.sh | 120 +
.../ZOOKEEPER/package/files/zkService.sh | 26 +
.../services/ZOOKEEPER/package/files/zkSmoke.sh | 78 +
.../ZOOKEEPER/package/scripts/__init__.py | 21 +
.../ZOOKEEPER/package/scripts/params.py | 64 +
.../ZOOKEEPER/package/scripts/service_check.py | 47 +
.../ZOOKEEPER/package/scripts/status_params.py | 26 +
.../ZOOKEEPER/package/scripts/zookeeper.py | 92 +
.../package/scripts/zookeeper_client.py | 43 +
.../package/scripts/zookeeper_server.py | 55 +
.../package/scripts/zookeeper_service.py | 43 +
.../package/templates/configuration.xsl.j2 | 24 +
.../package/templates/log4j.properties.j2 | 71 +
.../ZOOKEEPER/package/templates/zoo.cfg.j2 | 44 +
.../package/templates/zookeeper-env.sh.j2 | 25 +
.../templates/zookeeper_client_jaas.conf.j2 | 5 +
.../package/templates/zookeeper_jaas.conf.j2 | 8 +
.../before-START/files/changeToSecureUid.sh | 50 -
.../hooks/before-START/files/checkForFormat.sh | 62 -
.../before-START/files/task-log4j.properties | 132 -
.../2.0._/hooks/before-START/scripts/hook.py | 38 -
.../2.0._/hooks/before-START/scripts/params.py | 196 -
.../scripts/shared_initialization.py | 408 -
.../templates/commons-logging.properties.j2 | 25 -
.../templates/exclude_hosts_list.j2 | 3 -
.../before-START/templates/hadoop-env.sh.j2 | 121 -
.../templates/hadoop-metrics2.properties.j2 | 45 -
.../hooks/before-START/templates/hdfs.conf.j2 | 17 -
.../before-START/templates/health_check-v2.j2 | 91 -
.../before-START/templates/health_check.j2 | 118 -
.../templates/include_hosts_list.j2 | 3 -
.../before-START/templates/log4j.properties.j2 | 218 -
.../hooks/before-START/templates/slaves.j2 | 3 -
.../hooks/before-START/templates/snmpd.conf.j2 | 48 -
.../templates/taskcontroller.cfg.j2 | 20 -
.../resources/stacks/HDP/2.0._/metainfo.xml | 22 -
.../stacks/HDP/2.0._/repos/repoinfo.xml | 75 -
.../stacks/HDP/2.0._/role_command_order.json | 100 -
.../HDP/2.0._/services/GANGLIA/metainfo.xml | 101 -
.../GANGLIA/package/files/checkGmetad.sh | 37 -
.../GANGLIA/package/files/checkGmond.sh | 62 -
.../GANGLIA/package/files/checkRrdcached.sh | 34 -
.../services/GANGLIA/package/files/gmetad.init | 73 -
.../services/GANGLIA/package/files/gmetadLib.sh | 204 -
.../services/GANGLIA/package/files/gmond.init | 73 -
.../services/GANGLIA/package/files/gmondLib.sh | 545 -
.../2.0._/services/GANGLIA/package/files/rrd.py | 213 -
.../GANGLIA/package/files/rrdcachedLib.sh | 47 -
.../GANGLIA/package/files/setupGanglia.sh | 141 -
.../GANGLIA/package/files/startGmetad.sh | 64 -
.../GANGLIA/package/files/startGmond.sh | 80 -
.../GANGLIA/package/files/startRrdcached.sh | 69 -
.../GANGLIA/package/files/stopGmetad.sh | 43 -
.../services/GANGLIA/package/files/stopGmond.sh | 54 -
.../GANGLIA/package/files/stopRrdcached.sh | 41 -
.../GANGLIA/package/files/teardownGanglia.sh | 28 -
.../services/GANGLIA/package/scripts/ganglia.py | 97 -
.../GANGLIA/package/scripts/ganglia_monitor.py | 134 -
.../package/scripts/ganglia_monitor_service.py | 31 -
.../GANGLIA/package/scripts/ganglia_server.py | 150 -
.../package/scripts/ganglia_server_service.py | 27 -
.../services/GANGLIA/package/scripts/params.py | 64 -
.../GANGLIA/package/scripts/status_params.py | 25 -
.../package/templates/gangliaClusters.conf.j2 | 28 -
.../GANGLIA/package/templates/gangliaEnv.sh.j2 | 24 -
.../GANGLIA/package/templates/gangliaLib.sh.j2 | 62 -
.../services/HBASE/configuration/global.xml | 160 -
.../HBASE/configuration/hbase-policy.xml | 53 -
.../services/HBASE/configuration/hbase-site.xml | 356 -
.../HDP/2.0._/services/HBASE/metainfo.xml | 93 -
.../HDP/2.0._/services/HBASE/metrics.json | 13635 -----------------
.../HBASE/package/files/hbaseSmokeVerify.sh | 32 -
.../services/HBASE/package/scripts/__init__.py | 19 -
.../services/HBASE/package/scripts/functions.py | 67 -
.../services/HBASE/package/scripts/hbase.py | 91 -
.../HBASE/package/scripts/hbase_client.py | 52 -
.../HBASE/package/scripts/hbase_master.py | 74 -
.../HBASE/package/scripts/hbase_regionserver.py | 75 -
.../HBASE/package/scripts/hbase_service.py | 46 -
.../services/HBASE/package/scripts/params.py | 81 -
.../HBASE/package/scripts/service_check.py | 89 -
.../HBASE/package/scripts/status_params.py | 25 -
...-metrics2-hbase.properties-GANGLIA-MASTER.j2 | 62 -
...doop-metrics2-hbase.properties-GANGLIA-RS.j2 | 62 -
.../HBASE/package/templates/hbase-env.sh.j2 | 82 -
.../HBASE/package/templates/hbase-smoke.sh.j2 | 26 -
.../package/templates/hbase_client_jaas.conf.j2 | 5 -
.../templates/hbase_grant_permissions.j2 | 21 -
.../package/templates/hbase_master_jaas.conf.j2 | 8 -
.../templates/hbase_regionserver_jaas.conf.j2 | 8 -
.../HBASE/package/templates/regionservers.j2 | 2 -
.../services/HDFS/configuration/core-site.xml | 167 -
.../services/HDFS/configuration/global.xml | 192 -
.../HDFS/configuration/hadoop-policy.xml | 134 -
.../services/HDFS/configuration/hdfs-site.xml | 513 -
.../stacks/HDP/2.0._/services/HDFS/metainfo.xml | 154 -
.../stacks/HDP/2.0._/services/HDFS/metrics.json | 7800 ----------
.../HDFS/package/files/checkForFormat.sh | 62 -
.../services/HDFS/package/files/checkWebUI.py | 53 -
.../services/HDFS/package/scripts/datanode.py | 57 -
.../HDFS/package/scripts/hdfs_client.py | 49 -
.../HDFS/package/scripts/hdfs_datanode.py | 56 -
.../HDFS/package/scripts/hdfs_namenode.py | 177 -
.../HDFS/package/scripts/hdfs_snamenode.py | 53 -
.../HDFS/package/scripts/journalnode.py | 74 -
.../services/HDFS/package/scripts/namenode.py | 59 -
.../services/HDFS/package/scripts/params.py | 183 -
.../HDFS/package/scripts/service_check.py | 106 -
.../services/HDFS/package/scripts/snamenode.py | 64 -
.../HDFS/package/scripts/status_params.py | 31 -
.../services/HDFS/package/scripts/utils.py | 138 -
.../services/HDFS/package/scripts/zkfc_slave.py | 62 -
.../services/HIVE/configuration/hive-site.xml | 267 -
.../stacks/HDP/2.0._/services/HIVE/metainfo.xml | 156 -
.../services/HIVE/package/files/addMysqlUser.sh | 41 -
.../services/HIVE/package/files/hcatSmoke.sh | 35 -
.../services/HIVE/package/files/hiveSmoke.sh | 23 -
.../services/HIVE/package/files/hiveserver2.sql | 23 -
.../HIVE/package/files/hiveserver2Smoke.sh | 31 -
.../services/HIVE/package/files/pigSmoke.sh | 18 -
.../HIVE/package/files/startHiveserver2.sh | 22 -
.../HIVE/package/files/startMetastore.sh | 22 -
.../services/HIVE/package/scripts/__init__.py | 19 -
.../2.0._/services/HIVE/package/scripts/hcat.py | 47 -
.../HIVE/package/scripts/hcat_client.py | 43 -
.../HIVE/package/scripts/hcat_service_check.py | 63 -
.../2.0._/services/HIVE/package/scripts/hive.py | 123 -
.../HIVE/package/scripts/hive_client.py | 41 -
.../HIVE/package/scripts/hive_metastore.py | 63 -
.../HIVE/package/scripts/hive_server.py | 63 -
.../HIVE/package/scripts/hive_service.py | 56 -
.../HIVE/package/scripts/mysql_server.py | 77 -
.../HIVE/package/scripts/mysql_service.py | 44 -
.../services/HIVE/package/scripts/params.py | 123 -
.../HIVE/package/scripts/service_check.py | 56 -
.../HIVE/package/scripts/status_params.py | 30 -
.../HIVE/package/templates/hcat-env.sh.j2 | 25 -
.../HIVE/package/templates/hive-env.sh.j2 | 55 -
.../HDP/2.0._/services/NAGIOS/metainfo.xml | 105 -
.../NAGIOS/package/files/check_aggregate.php | 243 -
.../services/NAGIOS/package/files/check_cpu.pl | 114 -
.../package/files/check_datanode_storage.php | 100 -
.../NAGIOS/package/files/check_hdfs_blocks.php | 115 -
.../package/files/check_hdfs_capacity.php | 109 -
.../files/check_hive_metastore_status.sh | 45 -
.../NAGIOS/package/files/check_hue_status.sh | 31 -
.../files/check_mapred_local_dir_used.sh | 34 -
.../package/files/check_name_dir_status.php | 93 -
.../NAGIOS/package/files/check_namenodes_ha.sh | 82 -
.../package/files/check_nodemanager_health.sh | 44 -
.../NAGIOS/package/files/check_oozie_status.sh | 45 -
.../NAGIOS/package/files/check_rpcq_latency.php | 104 -
.../package/files/check_templeton_status.sh | 45 -
.../NAGIOS/package/files/check_webui.sh | 87 -
.../NAGIOS/package/files/hdp_nagios_init.php | 81 -
.../NAGIOS/package/scripts/functions.py | 31 -
.../services/NAGIOS/package/scripts/nagios.py | 97 -
.../NAGIOS/package/scripts/nagios_server.py | 87 -
.../package/scripts/nagios_server_config.py | 91 -
.../NAGIOS/package/scripts/nagios_service.py | 36 -
.../services/NAGIOS/package/scripts/params.py | 162 -
.../NAGIOS/package/scripts/status_params.py | 26 -
.../NAGIOS/package/templates/contacts.cfg.j2 | 91 -
.../package/templates/hadoop-commands.cfg.j2 | 114 -
.../package/templates/hadoop-hostgroups.cfg.j2 | 15 -
.../package/templates/hadoop-hosts.cfg.j2 | 16 -
.../templates/hadoop-servicegroups.cfg.j2 | 80 -
.../package/templates/hadoop-services.cfg.j2 | 654 -
.../NAGIOS/package/templates/nagios.cfg.j2 | 1349 --
.../NAGIOS/package/templates/nagios.conf.j2 | 62 -
.../services/NAGIOS/package/templates/nagios.j2 | 146 -
.../NAGIOS/package/templates/resource.cfg.j2 | 33 -
.../services/OOZIE/configuration/oozie-site.xml | 313 -
.../HDP/2.0._/services/OOZIE/metainfo.xml | 79 -
.../services/OOZIE/package/files/oozieSmoke2.sh | 95 -
.../OOZIE/package/files/wrap_ooziedb.sh | 31 -
.../services/OOZIE/package/scripts/oozie.py | 99 -
.../OOZIE/package/scripts/oozie_client.py | 33 -
.../OOZIE/package/scripts/oozie_server.py | 45 -
.../OOZIE/package/scripts/oozie_service.py | 45 -
.../services/OOZIE/package/scripts/params.py | 56 -
.../OOZIE/package/scripts/service_check.py | 47 -
.../OOZIE/package/scripts/status_params.py | 26 -
.../OOZIE/package/templates/oozie-env.sh.j2 | 64 -
.../package/templates/oozie-log4j.properties.j2 | 74 -
.../services/PIG/configuration/pig.properties | 52 -
.../stacks/HDP/2.0._/services/PIG/metainfo.xml | 60 -
.../services/PIG/package/files/pigSmoke.sh | 18 -
.../services/PIG/package/scripts/params.py | 36 -
.../2.0._/services/PIG/package/scripts/pig.py | 46 -
.../services/PIG/package/scripts/pig_client.py | 52 -
.../PIG/package/scripts/service_check.py | 75 -
.../PIG/package/templates/log4j.properties.j2 | 30 -
.../PIG/package/templates/pig-env.sh.j2 | 17 -
.../PIG/package/templates/pig.properties.j2 | 55 -
.../HDP/2.0._/services/SQOOP/metainfo.xml | 60 -
.../services/SQOOP/package/scripts/__init__.py | 19 -
.../services/SQOOP/package/scripts/params.py | 37 -
.../SQOOP/package/scripts/service_check.py | 37 -
.../services/SQOOP/package/scripts/sqoop.py | 52 -
.../SQOOP/package/scripts/sqoop_client.py | 41 -
.../SQOOP/package/templates/sqoop-env.sh.j2 | 36 -
.../WEBHCAT/configuration/webhcat-site.xml | 126 -
.../HDP/2.0._/services/WEBHCAT/metainfo.xml | 65 -
.../WEBHCAT/package/files/templetonSmoke.sh | 95 -
.../WEBHCAT/package/scripts/__init__.py | 21 -
.../services/WEBHCAT/package/scripts/params.py | 51 -
.../WEBHCAT/package/scripts/service_check.py | 45 -
.../WEBHCAT/package/scripts/status_params.py | 26 -
.../services/WEBHCAT/package/scripts/webhcat.py | 120 -
.../WEBHCAT/package/scripts/webhcat_server.py | 54 -
.../WEBHCAT/package/scripts/webhcat_service.py | 41 -
.../WEBHCAT/package/templates/webhcat-env.sh.j2 | 44 -
.../YARN/configuration/capacity-scheduler.xml | 128 -
.../services/YARN/configuration/core-site.xml | 20 -
.../services/YARN/configuration/global.xml | 88 -
.../YARN/configuration/mapred-queue-acls.xml | 39 -
.../services/YARN/configuration/mapred-site.xml | 381 -
.../services/YARN/configuration/yarn-site.xml | 326 -
.../stacks/HDP/2.0._/services/YARN/metainfo.xml | 162 -
.../stacks/HDP/2.0._/services/YARN/metrics.json | 2534 ---
.../files/validateYarnComponentStatus.py | 165 -
.../services/YARN/package/scripts/__init__.py | 21 -
.../YARN/package/scripts/historyserver.py | 60 -
.../package/scripts/mapred_service_check.py | 67 -
.../YARN/package/scripts/mapreduce2_client.py | 43 -
.../YARN/package/scripts/nodemanager.py | 61 -
.../services/YARN/package/scripts/params.py | 85 -
.../YARN/package/scripts/resourcemanager.py | 83 -
.../services/YARN/package/scripts/service.py | 65 -
.../YARN/package/scripts/service_check.py | 67 -
.../YARN/package/scripts/status_params.py | 34 -
.../2.0._/services/YARN/package/scripts/yarn.py | 126 -
.../YARN/package/scripts/yarn_client.py | 43 -
.../package/templates/container-executor.cfg.j2 | 22 -
.../YARN/package/templates/mapreduce.conf.j2 | 17 -
.../YARN/package/templates/yarn-env.sh.j2 | 119 -
.../YARN/package/templates/yarn.conf.j2 | 17 -
.../services/ZOOKEEPER/configuration/global.xml | 75 -
.../HDP/2.0._/services/ZOOKEEPER/metainfo.xml | 70 -
.../services/ZOOKEEPER/package/files/zkEnv.sh | 96 -
.../ZOOKEEPER/package/files/zkServer.sh | 120 -
.../ZOOKEEPER/package/files/zkService.sh | 26 -
.../services/ZOOKEEPER/package/files/zkSmoke.sh | 78 -
.../ZOOKEEPER/package/scripts/__init__.py | 21 -
.../ZOOKEEPER/package/scripts/params.py | 64 -
.../ZOOKEEPER/package/scripts/service_check.py | 47 -
.../ZOOKEEPER/package/scripts/status_params.py | 26 -
.../ZOOKEEPER/package/scripts/zookeeper.py | 92 -
.../package/scripts/zookeeper_client.py | 43 -
.../package/scripts/zookeeper_server.py | 55 -
.../package/scripts/zookeeper_service.py | 43 -
.../package/templates/configuration.xsl.j2 | 24 -
.../package/templates/log4j.properties.j2 | 71 -
.../ZOOKEEPER/package/templates/zoo.cfg.j2 | 44 -
.../package/templates/zookeeper-env.sh.j2 | 25 -
.../templates/zookeeper_client_jaas.conf.j2 | 5 -
.../package/templates/zookeeper_jaas.conf.j2 | 8 -
484 files changed, 44115 insertions(+), 44112 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/ef81b392/ambari-agent/src/main/python/ambari_agent/ActionQueue.py
----------------------------------------------------------------------
diff --git a/ambari-agent/src/main/python/ambari_agent/ActionQueue.py b/ambari-agent/src/main/python/ambari_agent/ActionQueue.py
index 516d380..4fbae3d 100644
--- a/ambari-agent/src/main/python/ambari_agent/ActionQueue.py
+++ b/ambari-agent/src/main/python/ambari_agent/ActionQueue.py
@@ -85,6 +85,9 @@ class ActionQueue(threading.Thread):
logger.debug(pprint.pformat(command))
self.commandQueue.put(command)
+ def empty(self):
+ return self.commandQueue.empty()
+
def run(self):
while not self.stopped():
http://git-wip-us.apache.org/repos/asf/ambari/blob/ef81b392/ambari-agent/src/main/python/ambari_agent/Controller.py
----------------------------------------------------------------------
diff --git a/ambari-agent/src/main/python/ambari_agent/Controller.py b/ambari-agent/src/main/python/ambari_agent/Controller.py
index bcfc5f9..b842b4d 100644
--- a/ambari-agent/src/main/python/ambari_agent/Controller.py
+++ b/ambari-agent/src/main/python/ambari_agent/Controller.py
@@ -188,7 +188,7 @@ class Controller(threading.Thread):
if 'executionCommands' in response.keys():
self.addToQueue(response['executionCommands'])
pass
- if 'statusCommands' in response.keys():
+ if 'statusCommands' in response.keys() and self.actionQueue.empty():
self.addToQueue(response['statusCommands'])
pass
if "true" == response['restartAgent']:
http://git-wip-us.apache.org/repos/asf/ambari/blob/ef81b392/ambari-server/src/main/resources/stacks/HDP/2.0.8/hooks/before-START/files/changeToSecureUid.sh
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.0.8/hooks/before-START/files/changeToSecureUid.sh b/ambari-server/src/main/resources/stacks/HDP/2.0.8/hooks/before-START/files/changeToSecureUid.sh
new file mode 100644
index 0000000..4872a10
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/2.0.8/hooks/before-START/files/changeToSecureUid.sh
@@ -0,0 +1,50 @@
+#!/bin/sh
+#
+#
+# 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.
+#
+
+username=$1
+directories=$2
+
+function find_available_uid() {
+ for ((i=1001; i<=2000; i++))
+ do
+ grep -q $i /etc/passwd
+ if [ "$?" -ne 0 ]
+ then
+ newUid=$i
+ break
+ fi
+ done
+}
+
+find_available_uid
+
+if [ $newUid -eq 0 ]
+then
+ echo "Failed to find Uid between 1000 and 2000"
+ exit 1
+fi
+
+dir_array=($(echo $directories | sed 's/,/\n/g'))
+old_uid=$(id -u $username)
+echo "Changing uid of $username from $old_uid to $newUid"
+echo "Changing directory permisions for ${dir_array[@]}"
+usermod -u $newUid $username && for dir in ${dir_array[@]} ; do chown -Rh $newUid $dir ; done
+exit 0
http://git-wip-us.apache.org/repos/asf/ambari/blob/ef81b392/ambari-server/src/main/resources/stacks/HDP/2.0.8/hooks/before-START/files/checkForFormat.sh
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.0.8/hooks/before-START/files/checkForFormat.sh b/ambari-server/src/main/resources/stacks/HDP/2.0.8/hooks/before-START/files/checkForFormat.sh
new file mode 100644
index 0000000..d14091a
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/2.0.8/hooks/before-START/files/checkForFormat.sh
@@ -0,0 +1,62 @@
+#!/bin/sh
+#
+#
+# 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.
+#
+#
+
+export hdfs_user=$1
+shift
+export conf_dir=$1
+shift
+export mark_dir=$1
+shift
+export name_dirs=$*
+
+export EXIT_CODE=0
+export command="namenode -format"
+export list_of_non_empty_dirs=""
+
+mark_file=/var/run/hadoop/hdfs/namenode-formatted
+if [[ -f ${mark_file} ]] ; then
+ rm -f ${mark_file}
+ mkdir -p ${mark_dir}
+fi
+
+if [[ ! -d $mark_dir ]] ; then
+ for dir in `echo $name_dirs | tr ',' ' '` ; do
+ echo "NameNode Dirname = $dir"
+ cmd="ls $dir | wc -l | grep -q ^0$"
+ eval $cmd
+ if [[ $? -ne 0 ]] ; then
+ (( EXIT_CODE = $EXIT_CODE + 1 ))
+ list_of_non_empty_dirs="$list_of_non_empty_dirs $dir"
+ fi
+ done
+
+ if [[ $EXIT_CODE == 0 ]] ; then
+ su - ${hdfs_user} -c "yes Y | hadoop --config ${conf_dir} ${command}"
+ else
+ echo "ERROR: Namenode directory(s) is non empty. Will not format the namenode. List of non-empty namenode dirs ${list_of_non_empty_dirs}"
+ fi
+else
+ echo "${mark_dir} exists. Namenode DFS already formatted"
+fi
+
+exit $EXIT_CODE
+
http://git-wip-us.apache.org/repos/asf/ambari/blob/ef81b392/ambari-server/src/main/resources/stacks/HDP/2.0.8/hooks/before-START/files/task-log4j.properties
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.0.8/hooks/before-START/files/task-log4j.properties b/ambari-server/src/main/resources/stacks/HDP/2.0.8/hooks/before-START/files/task-log4j.properties
new file mode 100644
index 0000000..c8939fc
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/2.0.8/hooks/before-START/files/task-log4j.properties
@@ -0,0 +1,132 @@
+#
+#
+# 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
+hadoop.root.logger=INFO,console
+hadoop.log.dir=.
+hadoop.log.file=hadoop.log
+
+#
+# Job Summary Appender
+#
+# Use following logger to send summary to separate file defined by
+# hadoop.mapreduce.jobsummary.log.file rolled daily:
+# hadoop.mapreduce.jobsummary.logger=INFO,JSA
+#
+hadoop.mapreduce.jobsummary.logger=${hadoop.root.logger}
+hadoop.mapreduce.jobsummary.log.file=hadoop-mapreduce.jobsummary.log
+
+# Define the root logger to the system property "hadoop.root.logger".
+log4j.rootLogger=${hadoop.root.logger}, EventCounter
+
+# Logging Threshold
+log4j.threshhold=ALL
+
+#
+# Daily Rolling File Appender
+#
+
+log4j.appender.DRFA=org.apache.log4j.DailyRollingFileAppender
+log4j.appender.DRFA.File=${hadoop.log.dir}/${hadoop.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} %p %c: %m%n
+# Debugging Pattern format
+#log4j.appender.DRFA.layout.ConversionPattern=%d{ISO8601} %-5p %c{2} (%F:%M(%L)) - %m%n
+
+
+#
+# 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{yy/MM/dd HH:mm:ss} %p %c{2}: %m%n
+
+#
+# TaskLog Appender
+#
+
+#Default values
+hadoop.tasklog.taskid=null
+hadoop.tasklog.iscleanup=false
+hadoop.tasklog.noKeepSplits=4
+hadoop.tasklog.totalLogFileSize=100
+hadoop.tasklog.purgeLogSplits=true
+hadoop.tasklog.logsRetainHours=12
+
+log4j.appender.TLA=org.apache.hadoop.mapred.TaskLogAppender
+log4j.appender.TLA.taskId=${hadoop.tasklog.taskid}
+log4j.appender.TLA.isCleanup=${hadoop.tasklog.iscleanup}
+log4j.appender.TLA.totalLogFileSize=${hadoop.tasklog.totalLogFileSize}
+
+log4j.appender.TLA.layout=org.apache.log4j.PatternLayout
+log4j.appender.TLA.layout.ConversionPattern=%d{ISO8601} %p %c: %m%n
+
+#
+# Rolling File Appender
+#
+
+#log4j.appender.RFA=org.apache.log4j.RollingFileAppender
+#log4j.appender.RFA.File=${hadoop.log.dir}/${hadoop.log.file}
+
+# Logfile size and and 30-day backups
+#log4j.appender.RFA.MaxFileSize=1MB
+#log4j.appender.RFA.MaxBackupIndex=30
+
+#log4j.appender.RFA.layout=org.apache.log4j.PatternLayout
+#log4j.appender.RFA.layout.ConversionPattern=%d{ISO8601} %-5p %c{2} - %m%n
+#log4j.appender.RFA.layout.ConversionPattern=%d{ISO8601} %-5p %c{2} (%F:%M(%L)) - %m%n
+
+
+# Custom Logging levels
+
+hadoop.metrics.log.level=INFO
+#log4j.logger.org.apache.hadoop.mapred.JobTracker=DEBUG
+#log4j.logger.org.apache.hadoop.mapred.TaskTracker=DEBUG
+#log4j.logger.org.apache.hadoop.fs.FSNamesystem=DEBUG
+log4j.logger.org.apache.hadoop.metrics2=${hadoop.metrics.log.level}
+
+# Jets3t library
+log4j.logger.org.jets3t.service.impl.rest.httpclient.RestS3Service=ERROR
+
+#
+# Null Appender
+# Trap security logger on the hadoop client side
+#
+log4j.appender.NullAppender=org.apache.log4j.varia.NullAppender
+
+#
+# Event Counter Appender
+# Sends counts of logging messages at different severity levels to Hadoop Metrics.
+#
+log4j.appender.EventCounter=org.apache.hadoop.log.metrics.EventCounter
+
http://git-wip-us.apache.org/repos/asf/ambari/blob/ef81b392/ambari-server/src/main/resources/stacks/HDP/2.0.8/hooks/before-START/scripts/hook.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.0.8/hooks/before-START/scripts/hook.py b/ambari-server/src/main/resources/stacks/HDP/2.0.8/hooks/before-START/scripts/hook.py
new file mode 100644
index 0000000..61e3720
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/2.0.8/hooks/before-START/scripts/hook.py
@@ -0,0 +1,38 @@
+##!/usr/bin/env python2.6
+"""
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+"""
+
+import sys
+from resource_management import *
+from shared_initialization import *
+
+#TODO this must be "CONFIGURE" hook when CONFIGURE command will be implemented
+class BeforeConfigureHook(Hook):
+
+ def hook(self, env):
+ import params
+
+ env.set_params(params)
+ setup_java()
+ setup_users()
+ setup_hadoop()
+ setup_configs()
+
+if __name__ == "__main__":
+ BeforeConfigureHook().execute()
http://git-wip-us.apache.org/repos/asf/ambari/blob/ef81b392/ambari-server/src/main/resources/stacks/HDP/2.0.8/hooks/before-START/scripts/params.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.0.8/hooks/before-START/scripts/params.py b/ambari-server/src/main/resources/stacks/HDP/2.0.8/hooks/before-START/scripts/params.py
new file mode 100644
index 0000000..75203ea
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/2.0.8/hooks/before-START/scripts/params.py
@@ -0,0 +1,196 @@
+"""
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+"""
+
+from resource_management import *
+from resource_management.core.system import System
+import os
+
+config = Script.get_config()
+
+#java params
+java_home = "/usr/jdk64/jdk1.6.0_31"
+artifact_dir = "/tmp/HDP-artifacts/"
+jdk_bin = "jdk-6u31-linux-x64.bin"
+jce_policy_zip = "jce_policy-6.zip"
+jce_location = config['hostLevelParams']['jdk_location']
+jdk_location = config['hostLevelParams']['jdk_location']
+#security params
+security_enabled = config['configurations']['global']['security_enabled']
+dfs_journalnode_keytab_file = config['configurations']['hdfs-site']['dfs.journalnode.keytab.file']
+dfs_web_authentication_kerberos_keytab = config['configurations']['hdfs-site']['dfs.journalnode.keytab.file']
+dfs_secondary_namenode_keytab_file = config['configurations']['hdfs-site']['fs.secondary.namenode.keytab.file']
+dfs_datanode_keytab_file = config['configurations']['hdfs-site']['dfs.datanode.keytab.file']
+dfs_namenode_keytab_file = config['configurations']['hdfs-site']['dfs.namenode.keytab.file']
+
+dfs_datanode_kerberos_principal = config['configurations']['hdfs-site']['dfs.datanode.kerberos.principal']
+dfs_journalnode_kerberos_principal = config['configurations']['hdfs-site']['dfs.journalnode.kerberos.principal']
+dfs_secondary_namenode_kerberos_internal_spnego_principal = config['configurations']['hdfs-site']['dfs.secondary.namenode.kerberos.internal.spnego.principal']
+dfs_namenode_kerberos_principal = config['configurations']['hdfs-site']['dfs.namenode.kerberos.principal']
+dfs_web_authentication_kerberos_principal = config['configurations']['hdfs-site']['dfs.web.authentication.kerberos.principal']
+dfs_secondary_namenode_kerberos_principal = config['configurations']['hdfs-site']['dfs.secondary.namenode.kerberos.principal']
+dfs_journalnode_kerberos_internal_spnego_principal = config['configurations']['hdfs-site']['dfs.journalnode.kerberos.internal.spnego.principal']
+
+#users and groups
+yarn_user = config['configurations']['global']['yarn_user']
+hbase_user = config['configurations']['global']['hbase_user']
+nagios_user = config['configurations']['global']['nagios_user']
+oozie_user = config['configurations']['global']['oozie_user']
+webhcat_user = config['configurations']['global']['hcat_user']
+hcat_user = config['configurations']['global']['hcat_user']
+hive_user = config['configurations']['global']['hive_user']
+smoke_user = config['configurations']['global']['smokeuser']
+mapred_user = config['configurations']['global']['mapred_user']
+hdfs_user = config['configurations']['global']['hdfs_user']
+zk_user = config['configurations']['global']['zk_user']
+gmetad_user = config['configurations']['global']["gmetad_user"]
+gmond_user = config['configurations']['global']["gmond_user"]
+
+user_group = config['configurations']['global']['user_group']
+proxyuser_group = config['configurations']['global']['proxyuser_group']
+nagios_group = config['configurations']['global']['nagios_group']
+smoke_user_group = "users"
+mapred_tt_group = default("/configurations/mapred-site/mapreduce.tasktracker.group", user_group)
+
+#snmp
+snmp_conf_dir = "/etc/snmp/"
+snmp_source = "0.0.0.0/0"
+snmp_community = "hadoop"
+
+#hosts
+hostname = config["hostname"]
+rm_host = default("/clusterHostInfo/rm_host", [])
+slave_hosts = default("/clusterHostInfo/slave_hosts", [])
+hagios_server_hosts = default("/clusterHostInfo/nagios_server_host", [])
+oozie_servers = default("/clusterHostInfo/oozie_server", [])
+hcat_server_hosts = default("/clusterHostInfo/webhcat_server_host", [])
+hive_server_host = default("/clusterHostInfo/hive_server_host", [])
+hbase_master_hosts = default("/clusterHostInfo/hbase_master_hosts", [])
+hs_host = default("/clusterHostInfo/hs_host", [])
+jtnode_host = default("/clusterHostInfo/jtnode_host", [])
+namenode_host = default("/clusterHostInfo/namenode_host", [])
+zk_hosts = default("/clusterHostInfo/zookeeper_hosts", [])
+ganglia_server_hosts = default("/clusterHostInfo/ganglia_server_host", [])
+
+has_resourcemanager = not len(rm_host) == 0
+has_slaves = not len(slave_hosts) == 0
+has_nagios = not len(hagios_server_hosts) == 0
+has_oozie_server = not len(oozie_servers) == 0
+has_hcat_server_host = not len(hcat_server_hosts) == 0
+has_hive_server_host = not len(hive_server_host) == 0
+has_hbase_masters = not len(hbase_master_hosts) == 0
+has_zk_host = not len(zk_hosts) == 0
+has_ganglia_server = not len(ganglia_server_hosts) == 0
+
+is_namenode_master = hostname in namenode_host
+is_jtnode_master = hostname in jtnode_host
+is_rmnode_master = hostname in rm_host
+is_hsnode_master = hostname in hs_host
+is_hbase_master = hostname in hbase_master_hosts
+is_slave = hostname in slave_hosts
+if has_ganglia_server:
+ ganglia_server_host = ganglia_server_hosts[0]
+#hadoop params
+hadoop_tmp_dir = format("/tmp/hadoop-{hdfs_user}")
+hadoop_lib_home = "/usr/lib/hadoop/lib"
+hadoop_conf_dir = "/etc/hadoop/conf"
+hadoop_pid_dir_prefix = config['configurations']['global']['hadoop_pid_dir_prefix']
+hadoop_home = "/usr"
+hadoop_bin = "/usr/lib/hadoop/sbin"
+
+task_log4j_properties_location = os.path.join(hadoop_conf_dir, "task-log4j.properties")
+limits_conf_dir = "/etc/security/limits.d"
+
+hdfs_log_dir_prefix = config['configurations']['global']['hdfs_log_dir_prefix']
+hbase_tmp_dir = config['configurations']['hbase-site']['hbase.tmp.dir']
+#db params
+server_db_name = config['hostLevelParams']['db_name']
+db_driver_filename = config['hostLevelParams']['db_driver_filename']
+oracle_driver_url = config['hostLevelParams']['oracle_jdbc_url']
+mysql_driver_url = config['hostLevelParams']['mysql_jdbc_url']
+
+ambari_db_rca_url = config['hostLevelParams']['ambari_db_rca_url'][0]
+ambari_db_rca_driver = config['hostLevelParams']['ambari_db_rca_driver'][0]
+ambari_db_rca_username = config['hostLevelParams']['ambari_db_rca_username'][0]
+ambari_db_rca_password = config['hostLevelParams']['ambari_db_rca_password'][0]
+
+rca_enabled = config['configurations']['global']['rca_enabled']
+rca_disabled_prefix = "###"
+if rca_enabled == True:
+ rca_prefix = ""
+else:
+ rca_prefix = rca_disabled_prefix
+
+#hadoop-env.sh
+java_home = config['configurations']['global']['java64_home']
+if System.get_instance().platform == "suse":
+ jsvc_path = "/usr/lib/bigtop-utils"
+else:
+ jsvc_path = "/usr/libexec/bigtop-utils"
+
+hadoop_heapsize = config['configurations']['global']['hadoop_heapsize']
+namenode_heapsize = config['configurations']['global']['namenode_heapsize']
+namenode_opt_newsize = config['configurations']['global']['namenode_opt_newsize']
+namenode_opt_maxnewsize = config['configurations']['global']['namenode_opt_maxnewsize']
+
+jtnode_opt_newsize = default("jtnode_opt_newsize","200m")
+jtnode_opt_maxnewsize = default("jtnode_opt_maxnewsize","200m")
+jtnode_heapsize = default("jtnode_heapsize","1024m")
+ttnode_heapsize = "1024m"
+
+dtnode_heapsize = config['configurations']['global']['dtnode_heapsize']
+mapred_pid_dir_prefix = default("mapred_pid_dir_prefix","/var/run/hadoop-mapreduce")
+mapreduce_libs_path = "/usr/lib/hadoop-mapreduce/*"
+hadoop_libexec_dir = "/usr/lib/hadoop/libexec"
+mapred_log_dir_prefix = default("mapred_log_dir_prefix","/var/log/hadoop-mapreduce")
+
+#taskcontroller.cfg
+
+mapred_local_dir = "/tmp/hadoop-mapred/mapred/local"
+
+#log4j.properties
+
+yarn_log_dir_prefix = default("yarn_log_dir_prefix","/var/log/hadoop-yarn")
+
+#exclude file
+exlude_file_path = config['configurations']['hdfs-site']['dfs.hosts.exclude']
+if 'hdfs-exclude-file' in config['configurations']:
+ if 'datanodes' in config['configurations']['hdfs-exclude-file']:
+ hdfs_exclude_file = config['configurations']['hdfs-exclude-file']['datanodes'].split(",")
+ else:
+ hdfs_exclude_file = []
+else:
+ hdfs_exclude_file = []
+
+#hdfs ha properties
+dfs_ha_enabled = False
+dfs_ha_nameservices = default("/configurations/hdfs-site/dfs.nameservices", None)
+dfs_ha_namenode_ids = default(format("hdfs-site/dfs.ha.namenodes.{dfs_ha_nameservices}"), None)
+if dfs_ha_namenode_ids:
+ dfs_ha_namenode_ids_array_len = len(dfs_ha_namenode_ids.split(","))
+ if dfs_ha_namenode_ids_array_len > 1:
+ dfs_ha_enabled = True
+
+if dfs_ha_enabled:
+ for nn_id in dfs_ha_namenode_ids:
+ nn_host = config['configurations']['hdfs-site'][format('dfs.namenode.rpc-address.{dfs_ha_nameservices}.{nn_id}')]
+ if hostname in nn_host:
+ namenode_id = nn_id
+ namenode_id = None
+
+dfs_hosts = default('/configurations/hdfs-site/dfs.hosts', None)
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/ef81b392/ambari-server/src/main/resources/stacks/HDP/2.0.8/hooks/before-START/scripts/shared_initialization.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.0.8/hooks/before-START/scripts/shared_initialization.py b/ambari-server/src/main/resources/stacks/HDP/2.0.8/hooks/before-START/scripts/shared_initialization.py
new file mode 100644
index 0000000..cb064f3
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/2.0.8/hooks/before-START/scripts/shared_initialization.py
@@ -0,0 +1,408 @@
+"""
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+"""
+
+import os
+
+from resource_management import *
+
+def setup_java():
+ """
+ Installs jdk using specific params, that comes from ambari-server
+ """
+ import params
+
+ jdk_curl_target = format("{artifact_dir}/{jdk_bin}")
+ java_dir = os.path.dirname(params.java_home)
+ java_exec = format("{java_home}/bin/java")
+ Execute(format("mkdir -p {artifact_dir} ; curl -kf --retry 10 {jdk_location}/{jdk_bin} -o {jdk_curl_target}"),
+ path = ["/bin","/usr/bin/"],
+ not_if = format("test -e {java_exec}"))
+ Execute(format("mkdir -p {java_dir} ; chmod +x {jdk_curl_target}; cd {java_dir} ; echo A | {jdk_curl_target} -noregister > /dev/null 2>&1"),
+ path = ["/bin","/usr/bin/"],
+ not_if = format("test -e {java_exec}")
+ )
+ jce_curl_target = format("{artifact_dir}/{jce_policy_zip}")
+ download_jce = format("mkdir -p {artifact_dir}; curl -kf --retry 10 {jce_location}/{jce_policy_zip} -o {jce_curl_target}")
+ Execute( download_jce,
+ path = ["/bin","/usr/bin/"],
+ not_if =format("test -e {jce_curl_target}"),
+ ignore_failures = True
+ )
+ security_dir = format("{java_home}/jre/lib/security")
+ extract_cmd = format("rm -f local_policy.jar; rm -f US_export_policy.jar; unzip -o -j -q {jce_curl_target}")
+ Execute(extract_cmd,
+ only_if = format("test -e {security_dir} && test -f {jce_curl_target}"),
+ cwd = security_dir,
+ path = ['/bin/','/usr/bin']
+ )
+
+def setup_users():
+ """
+ Creates users before cluster installation
+ """
+ import params
+
+ Group(params.user_group)
+ Group(params.smoke_user_group)
+ Group(params.proxyuser_group)
+ User(params.smoke_user,
+ gid=params.user_group,
+ groups=[params.proxyuser_group]
+ )
+ smoke_user_dirs = format(
+ "/tmp/hadoop-{smoke_user},/tmp/hsperfdata_{smoke_user},/home/{smoke_user},/tmp/{smoke_user},/tmp/sqoop-{smoke_user}")
+ set_uid(params.smoke_user, smoke_user_dirs)
+
+ if params.has_hbase_masters:
+ User(params.hbase_user,
+ gid = params.user_group,
+ groups=[params.user_group])
+ hbase_user_dirs = format(
+ "/home/{hbase_user},/tmp/{hbase_user},/usr/bin/{hbase_user},/var/log/{hbase_user},{hbase_tmp_dir}")
+ set_uid(params.hbase_user, hbase_user_dirs)
+
+ if params.has_nagios:
+ Group(params.nagios_group)
+ User(params.nagios_user,
+ gid=params.nagios_group)
+
+ if params.has_oozie_server:
+ User(params.oozie_user,
+ gid = params.user_group)
+
+ if params.has_hcat_server_host:
+ User(params.webhcat_user,
+ gid = params.user_group)
+ User(params.hcat_user,
+ gid = params.user_group)
+
+ if params.has_hive_server_host:
+ User(params.hive_user,
+ gid = params.user_group)
+
+ if params.has_resourcemanager:
+ User(params.yarn_user,
+ gid = params.user_group)
+
+ if params.has_ganglia_server:
+ Group(params.gmetad_user)
+ Group(params.gmond_user)
+ User(params.gmond_user,
+ gid=params.user_group,
+ groups=[params.gmond_user])
+ User(params.gmetad_user,
+ gid=params.user_group,
+ groups=[params.gmetad_user])
+
+ User(params.hdfs_user,
+ gid=params.user_group,
+ groups=[params.user_group]
+ )
+ User(params.mapred_user,
+ gid=params.user_group,
+ groups=[params.user_group]
+ )
+ if params.has_zk_host:
+ User(params.zk_user,
+ gid=params.user_group)
+
+
+def setup_hadoop():
+ """
+ Setup hadoop files and directories
+ """
+ import params
+
+ File(os.path.join(params.snmp_conf_dir, 'snmpd.conf'),
+ content=Template("snmpd.conf.j2"))
+ Service("snmpd",
+ action = "restart")
+
+ Execute("/bin/echo 0 > /selinux/enforce",
+ only_if="test -f /selinux/enforce"
+ )
+
+ install_snappy()
+
+ #directories
+ Directory(params.hadoop_conf_dir,
+ recursive=True,
+ owner='root',
+ group='root'
+ )
+ Directory(params.hdfs_log_dir_prefix,
+ recursive=True,
+ owner='root',
+ group='root'
+ )
+ Directory(params.hadoop_pid_dir_prefix,
+ recursive=True,
+ owner='root',
+ group='root'
+ )
+ #this doesn't needed with stack 1
+ Directory(os.path.dirname(params.hadoop_tmp_dir),
+ recursive=True,
+ owner=params.hdfs_user,
+ )
+ #files
+ File(os.path.join(params.limits_conf_dir, 'hdfs.conf'),
+ owner='root',
+ group='root',
+ mode=0644,
+ content=Template("hdfs.conf.j2")
+ )
+ if params.security_enabled:
+ File(os.path.join(params.hadoop_bin, "task-controller"),
+ owner="root",
+ group=params.mapred_tt_group,
+ mode=6050
+ )
+ tc_mode = 0644
+ tc_owner = "root"
+ else:
+ tc_mode = None
+ tc_owner = params.hdfs_user
+
+ if tc_mode:
+ File(os.path.join(params.hadoop_conf_dir, 'taskcontroller.cfg'),
+ owner=tc_owner,
+ mode=tc_mode,
+ content=Template("taskcontroller.cfg.j2")
+ )
+ else:
+ File(os.path.join(params.hadoop_conf_dir, 'taskcontroller.cfg'),
+ owner=tc_owner,
+ content=Template("taskcontroller.cfg.j2")
+ )
+ for file in ['hadoop-env.sh', 'commons-logging.properties', 'slaves']:
+ File(os.path.join(params.hadoop_conf_dir, file),
+ owner=tc_owner,
+ content=Template(file + ".j2")
+ )
+
+ health_check_template = "health_check-v2" #for stack 1 use 'health_check'
+ File(os.path.join(params.hadoop_conf_dir, "health_check"),
+ owner=tc_owner,
+ content=Template(health_check_template + ".j2")
+ )
+
+ File(os.path.join(params.hadoop_conf_dir, "log4j.properties"),
+ owner=params.hdfs_user,
+ content=Template("log4j.properties.j2")
+ )
+
+ update_log4j_props(os.path.join(params.hadoop_conf_dir, "log4j.properties"))
+
+ File(os.path.join(params.hadoop_conf_dir, "hadoop-metrics2.properties"),
+ owner=params.hdfs_user,
+ content=Template("hadoop-metrics2.properties.j2")
+ )
+
+ db_driver_dload_cmd = ""
+ if params.server_db_name == 'oracle' and params.oracle_driver_url != "":
+ db_driver_dload_cmd = format(
+ "curl -kf --retry 5 {oracle_driver_url} -o {hadoop_lib_home}/{db_driver_filename}")
+ elif params.server_db_name == 'mysql' and params.mysql_driver_url != "":
+ db_driver_dload_cmd = format(
+ "curl -kf --retry 5 {mysql_driver_url} -o {hadoop_lib_home}/{db_driver_filename}")
+
+ if db_driver_dload_cmd:
+ Execute(db_driver_dload_cmd,
+ not_if =format("test -e {hadoop_lib_home}/{db_driver_filename}")
+ )
+
+
+def setup_configs():
+ """
+ Creates configs for services DHFS mapred
+ """
+ import params
+
+ if "mapred-queue-acls" in params.config['configurations']:
+ XmlConfig("mapred-queue-acls.xml",
+ conf_dir=params.hadoop_conf_dir,
+ configurations=params.config['configurations'][
+ 'mapred-queue-acls'],
+ owner=params.mapred_user,
+ group=params.user_group
+ )
+ elif os.path.exists(
+ os.path.join(params.hadoop_conf_dir, "mapred-queue-acls.xml")):
+ File(os.path.join(params.hadoop_conf_dir, "mapred-queue-acls.xml"),
+ owner=params.mapred_user,
+ group=params.user_group
+ )
+
+ if "hadoop-policy" in params.config['configurations']:
+ XmlConfig("hadoop-policy.xml",
+ conf_dir=params.hadoop_conf_dir,
+ configurations=params.config['configurations']['hadoop-policy'],
+ owner=params.hdfs_user,
+ group=params.user_group
+ )
+
+ XmlConfig("core-site.xml",
+ conf_dir=params.hadoop_conf_dir,
+ configurations=params.config['configurations']['core-site'],
+ owner=params.hdfs_user,
+ group=params.user_group
+ )
+
+ if "mapred-site" in params.config['configurations']:
+ XmlConfig("mapred-site.xml",
+ conf_dir=params.hadoop_conf_dir,
+ configurations=params.config['configurations']['mapred-site'],
+ owner=params.mapred_user,
+ group=params.user_group
+ )
+
+ File(params.task_log4j_properties_location,
+ content=StaticFile("task-log4j.properties"),
+ mode=0755
+ )
+
+ if "capacity-scheduler" in params.config['configurations']:
+ XmlConfig("capacity-scheduler.xml",
+ conf_dir=params.hadoop_conf_dir,
+ configurations=params.config['configurations'][
+ 'capacity-scheduler'],
+ owner=params.hdfs_user,
+ group=params.user_group
+ )
+
+ XmlConfig("hdfs-site.xml",
+ conf_dir=params.hadoop_conf_dir,
+ configurations=params.config['configurations']['hdfs-site'],
+ owner=params.hdfs_user,
+ group=params.user_group
+ )
+
+ # if params.stack_version[0] == "1":
+ # Link('/usr/lib/hadoop/hadoop-tools.jar',
+ # to = '/usr/lib/hadoop/lib/hadoop-tools.jar',
+ # mode = 0755
+ # )
+
+ if os.path.exists(os.path.join(params.hadoop_conf_dir, 'configuration.xsl')):
+ File(os.path.join(params.hadoop_conf_dir, 'configuration.xsl'),
+ owner=params.hdfs_user,
+ group=params.user_group
+ )
+ if os.path.exists(os.path.join(params.hadoop_conf_dir, 'fair-scheduler.xml')):
+ File(os.path.join(params.hadoop_conf_dir, 'fair-scheduler.xml'),
+ owner=params.mapred_user,
+ group=params.user_group
+ )
+ if os.path.exists(os.path.join(params.hadoop_conf_dir, 'masters')):
+ Directory(os.path.join(params.hadoop_conf_dir, 'masters'),
+ owner=params.hdfs_user,
+ group=params.user_group
+ )
+ if os.path.exists(
+ os.path.join(params.hadoop_conf_dir, 'ssl-client.xml.example')):
+ File(os.path.join(params.hadoop_conf_dir, 'ssl-client.xml.example'),
+ owner=params.mapred_user,
+ group=params.user_group
+ )
+ if os.path.exists(
+ os.path.join(params.hadoop_conf_dir, 'ssl-server.xml.example')):
+ File(os.path.join(params.hadoop_conf_dir, 'ssl-server.xml.example'),
+ owner=params.mapred_user,
+ group=params.user_group
+ )
+
+ generate_exlude_file()
+ generate_include_file()
+
+
+def set_uid(user, user_dirs):
+ """
+ user_dirs - comma separated directories
+ """
+ File("/tmp/changeUid.sh",
+ content=StaticFile("changeToSecureUid.sh"),
+ mode=0555)
+ Execute(format("/tmp/changeUid.sh {user} {user_dirs} 2>/dev/null"),
+ not_if = format("test $(id -u {user}) -gt 1000"))
+
+
+def update_log4j_props(file):
+ import params
+
+ property_map = {
+ 'ambari.jobhistory.database': params.ambari_db_rca_url,
+ 'ambari.jobhistory.driver': params.ambari_db_rca_driver,
+ 'ambari.jobhistory.user': params.ambari_db_rca_username,
+ 'ambari.jobhistory.password': params.ambari_db_rca_password,
+ 'ambari.jobhistory.logger': 'DEBUG,JHA',
+
+ 'log4j.appender.JHA': 'org.apache.ambari.log4j.hadoop.mapreduce.jobhistory.JobHistoryAppender',
+ 'log4j.appender.JHA.database': '${ambari.jobhistory.database}',
+ 'log4j.appender.JHA.driver': '${ambari.jobhistory.driver}',
+ 'log4j.appender.JHA.user': '${ambari.jobhistory.user}',
+ 'log4j.appender.JHA.password': '${ambari.jobhistory.password}',
+
+ 'log4j.logger.org.apache.hadoop.mapred.JobHistory$JobHistoryLogger': '${ambari.jobhistory.logger}',
+ 'log4j.additivity.org.apache.hadoop.mapred.JobHistory$JobHistoryLogger': 'true'
+ }
+ for key in property_map:
+ value = property_map[key]
+ Execute(format(
+ "sed -i 's~\\({rca_disabled_prefix}\\)\\?{key}=.*~{rca_prefix}{key}={value}~' {file}"))
+
+
+def generate_exlude_file():
+ import params
+
+ File(params.exlude_file_path,
+ content=Template("exclude_hosts_list.j2"),
+ owner=params.hdfs_user,
+ group=params.user_group
+ )
+
+
+def generate_include_file():
+ import params
+
+ if params.dfs_hosts and params.has_slaves:
+ include_hosts_list = params.slave_hosts
+ File(params.dfs_hosts,
+ content=Template("include_hosts_list.j2"),
+ owner=params.hdfs_user,
+ group=params.user_group
+ )
+
+
+def install_snappy():
+ import params
+
+ snappy_so = "libsnappy.so"
+ so_target_dir_x86 = format("{hadoop_lib_home}/native/Linux-i386-32")
+ so_target_dir_x64 = format("{hadoop_lib_home}/native/Linux-amd64-64")
+ so_target_x86 = format("{so_target_dir_x86}/{snappy_so}")
+ so_target_x64 = format("{so_target_dir_x64}/{snappy_so}")
+ so_src_dir_x86 = format("{hadoop_home}/lib")
+ so_src_dir_x64 = format("{hadoop_home}/lib64")
+ so_src_x86 = format("{so_src_dir_x86}/{snappy_so}")
+ so_src_x64 = format("{so_src_dir_x64}/{snappy_so}")
+ Execute(
+ format("mkdir -p {so_target_dir_x86}; ln -sf {so_src_x86} {so_target_x86}"))
+ Execute(
+ format("mkdir -p {so_target_dir_x64}; ln -sf {so_src_x64} {so_target_x64}"))
http://git-wip-us.apache.org/repos/asf/ambari/blob/ef81b392/ambari-server/src/main/resources/stacks/HDP/2.0.8/hooks/before-START/templates/commons-logging.properties.j2
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.0.8/hooks/before-START/templates/commons-logging.properties.j2 b/ambari-server/src/main/resources/stacks/HDP/2.0.8/hooks/before-START/templates/commons-logging.properties.j2
new file mode 100644
index 0000000..77e458f
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/2.0.8/hooks/before-START/templates/commons-logging.properties.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.
+# */
+
+#Logging Implementation
+
+#Log4J
+org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger
+
+#JDK Logger
+#org.apache.commons.logging.Log=org.apache.commons.logging.impl.Jdk14Logger
http://git-wip-us.apache.org/repos/asf/ambari/blob/ef81b392/ambari-server/src/main/resources/stacks/HDP/2.0.8/hooks/before-START/templates/exclude_hosts_list.j2
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.0.8/hooks/before-START/templates/exclude_hosts_list.j2 b/ambari-server/src/main/resources/stacks/HDP/2.0.8/hooks/before-START/templates/exclude_hosts_list.j2
new file mode 100644
index 0000000..bb5795b
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/2.0.8/hooks/before-START/templates/exclude_hosts_list.j2
@@ -0,0 +1,3 @@
+{% for host in hdfs_exclude_file %}
+{{host}}
+{% endfor %}
http://git-wip-us.apache.org/repos/asf/ambari/blob/ef81b392/ambari-server/src/main/resources/stacks/HDP/2.0.8/hooks/before-START/templates/hadoop-env.sh.j2
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.0.8/hooks/before-START/templates/hadoop-env.sh.j2 b/ambari-server/src/main/resources/stacks/HDP/2.0.8/hooks/before-START/templates/hadoop-env.sh.j2
new file mode 100644
index 0000000..7d10cc3
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/2.0.8/hooks/before-START/templates/hadoop-env.sh.j2
@@ -0,0 +1,121 @@
+#/*
+# * Licensed to the Apache Software Foundation (ASF) under one
+# * or more contributor license agreements. See the NOTICE file
+# * distributed with this work for additional information
+# * regarding copyright ownership. The ASF licenses this file
+# * to you under the Apache License, Version 2.0 (the
+# * "License"); you may not use this file except in compliance
+# * with the License. You may obtain a copy of the License at
+# *
+# * http://www.apache.org/licenses/LICENSE-2.0
+# *
+# * Unless required by applicable law or agreed to in writing, software
+# * distributed under the License is distributed on an "AS IS" BASIS,
+# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# * See the License for the specific language governing permissions and
+# * limitations under the License.
+# */
+
+# Set Hadoop-specific environment variables here.
+
+# The only required environment variable is JAVA_HOME. All others are
+# optional. When running a distributed configuration it is best to
+# set JAVA_HOME in this file, so that it is correctly defined on
+# remote nodes.
+
+# The java implementation to use. Required.
+export JAVA_HOME={{java_home}}
+export HADOOP_HOME_WARN_SUPPRESS=1
+
+# Hadoop Configuration Directory
+#TODO: if env var set that can cause problems
+export HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-{{hadoop_conf_dir}}}
+
+{# this is different for HDP1 #}
+# Path to jsvc required by secure HDP 2.0 datanode
+export JSVC_HOME={{jsvc_path}}
+
+
+# The maximum amount of heap to use, in MB. Default is 1000.
+export HADOOP_HEAPSIZE="{{hadoop_heapsize}}"
+
+export HADOOP_NAMENODE_INIT_HEAPSIZE="-Xms{{namenode_heapsize}}"
+
+# Extra Java runtime options. Empty by default.
+export HADOOP_OPTS="-Djava.net.preferIPv4Stack=true ${HADOOP_OPTS}"
+
+# Command specific options appended to HADOOP_OPTS when specified
+export HADOOP_NAMENODE_OPTS="-server -XX:ParallelGCThreads=8 -XX:+UseConcMarkSweepGC -XX:ErrorFile={{hdfs_log_dir_prefix}}/$USER/hs_err_pid%p.log -XX:NewSize={{namenode_opt_newsize}} -XX:MaxNewSize={{namenode_opt_maxnewsize}} -Xloggc:{{hdfs_log_dir_prefix}}/$USER/gc.log-`date +'%Y%m%d%H%M'` -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -Xms{{namenode_heapsize}} -Xmx{{namenode_heapsize}} -Dhadoop.security.logger=INFO,DRFAS -Dhdfs.audit.logger=INFO,DRFAAUDIT ${HADOOP_NAMENODE_OPTS}"
+HADOOP_JOBTRACKER_OPTS="-server -XX:ParallelGCThreads=8 -XX:+UseConcMarkSweepGC -XX:ErrorFile={{hdfs_log_dir_prefix}}/$USER/hs_err_pid%p.log -XX:NewSize={{jtnode_opt_newsize}} -XX:MaxNewSize={{jtnode_opt_maxnewsize}} -Xloggc:{{hdfs_log_dir_prefix}}/$USER/gc.log-`date +'%Y%m%d%H%M'` -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -Xmx{{jtnode_heapsize}} -Dhadoop.security.logger=INFO,DRFAS -Dmapred.audit.logger=INFO,MRAUDIT -Dhadoop.mapreduce.jobsummary.logger=INFO,JSA ${HADOOP_JOBTRACKER_OPTS}"
+
+HADOOP_TASKTRACKER_OPTS="-server -Xmx{{ttnode_heapsize}} -Dhadoop.security.logger=ERROR,console -Dmapred.audit.logger=ERROR,console ${HADOOP_TASKTRACKER_OPTS}"
+HADOOP_DATANODE_OPTS="-Xmx{{dtnode_heapsize}} -Dhadoop.security.logger=ERROR,DRFAS ${HADOOP_DATANODE_OPTS}"
+HADOOP_BALANCER_OPTS="-server -Xmx{{hadoop_heapsize}}m ${HADOOP_BALANCER_OPTS}"
+
+export HADOOP_SECONDARYNAMENODE_OPTS="-server -XX:ParallelGCThreads=8 -XX:+UseConcMarkSweepGC -XX:ErrorFile={{hdfs_log_dir_prefix}}/$USER/hs_err_pid%p.log -XX:NewSize={{namenode_opt_newsize}} -XX:MaxNewSize={{namenode_opt_maxnewsize}} -Xloggc:{{hdfs_log_dir_prefix}}/$USER/gc.log-`date +'%Y%m%d%H%M'` -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps ${HADOOP_NAMENODE_INIT_HEAPSIZE} -Xmx{{namenode_heapsize}} -Dhadoop.security.logger=INFO,DRFAS -Dhdfs.audit.logger=INFO,DRFAAUDIT ${HADOOP_SECONDARYNAMENODE_OPTS}"
+
+# The following applies to multiple commands (fs, dfs, fsck, distcp etc)
+export HADOOP_CLIENT_OPTS="-Xmx${HADOOP_HEAPSIZE}m $HADOOP_CLIENT_OPTS"
+# On secure datanodes, user to run the datanode as after dropping privileges
+export HADOOP_SECURE_DN_USER={{hdfs_user}}
+
+# Extra ssh options. Empty by default.
+export HADOOP_SSH_OPTS="-o ConnectTimeout=5 -o SendEnv=HADOOP_CONF_DIR"
+
+# Where log files are stored. $HADOOP_HOME/logs by default.
+export HADOOP_LOG_DIR={{hdfs_log_dir_prefix}}/$USER
+
+# History server logs
+export HADOOP_MAPRED_LOG_DIR={{mapred_log_dir_prefix}}/$USER
+
+# Where log files are stored in the secure data environment.
+export HADOOP_SECURE_DN_LOG_DIR={{hdfs_log_dir_prefix}}/$HADOOP_SECURE_DN_USER
+
+# File naming remote slave hosts. $HADOOP_HOME/conf/slaves by default.
+# export HADOOP_SLAVES=${HADOOP_HOME}/conf/slaves
+
+# host:path where hadoop code should be rsync'd from. Unset by default.
+# export HADOOP_MASTER=master:/home/$USER/src/hadoop
+
+# 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 HADOOP_SLAVE_SLEEP=0.1
+
+# The directory where pid files are stored. /tmp by default.
+export HADOOP_PID_DIR={{hadoop_pid_dir_prefix}}/$USER
+export HADOOP_SECURE_DN_PID_DIR={{hadoop_pid_dir_prefix}}/$HADOOP_SECURE_DN_USER
+
+# History server pid
+export HADOOP_MAPRED_PID_DIR={{mapred_pid_dir_prefix}}/$USER
+
+YARN_RESOURCEMANAGER_OPTS="-Dyarn.server.resourcemanager.appsummary.logger=INFO,RMSUMMARY"
+
+# A string representing this instance of hadoop. $USER by default.
+export HADOOP_IDENT_STRING=$USER
+
+# The scheduling priority for daemon processes. See 'man nice'.
+
+# export HADOOP_NICENESS=10
+
+# Use libraries from standard classpath
+JAVA_JDBC_LIBS=""
+#Add libraries required by mysql connector
+for jarFile in `ls /usr/share/java/*mysql* 2>/dev/null`
+do
+ JAVA_JDBC_LIBS=${JAVA_JDBC_LIBS}:$jarFile
+done
+#Add libraries required by oracle connector
+for jarFile in `ls /usr/share/java/*ojdbc* 2>/dev/null`
+do
+ JAVA_JDBC_LIBS=${JAVA_JDBC_LIBS}:$jarFile
+done
+#Add libraries required by nodemanager
+MAPREDUCE_LIBS={{mapreduce_libs_path}}
+export HADOOP_CLASSPATH=${HADOOP_CLASSPATH}${JAVA_JDBC_LIBS}:${MAPREDUCE_LIBS}
+
+# Setting path to hdfs command line
+export HADOOP_LIBEXEC_DIR={{hadoop_libexec_dir}}
+
+#Mostly required for hadoop 2.0
+export JAVA_LIBRARY_PATH=${JAVA_LIBRARY_PATH}:/usr/lib/hadoop/lib/native/Linux-amd64-64
http://git-wip-us.apache.org/repos/asf/ambari/blob/ef81b392/ambari-server/src/main/resources/stacks/HDP/2.0.8/hooks/before-START/templates/hadoop-metrics2.properties.j2
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.0.8/hooks/before-START/templates/hadoop-metrics2.properties.j2 b/ambari-server/src/main/resources/stacks/HDP/2.0.8/hooks/before-START/templates/hadoop-metrics2.properties.j2
new file mode 100644
index 0000000..990f42d
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/2.0.8/hooks/before-START/templates/hadoop-metrics2.properties.j2
@@ -0,0 +1,45 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# syntax: [prefix].[source|sink|jmx].[instance].[options]
+# See package.html for org.apache.hadoop.metrics2 for details
+
+{% if has_ganglia_server %}
+*.period=60
+
+*.sink.ganglia.class=org.apache.hadoop.metrics2.sink.ganglia.GangliaSink31
+*.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
+
+# Hook up to the server
+namenode.sink.ganglia.servers={{ganglia_server_host}}:8661
+datanode.sink.ganglia.servers={{ganglia_server_host}}:8660
+jobtracker.sink.ganglia.servers={{ganglia_server_host}}:8662
+tasktracker.sink.ganglia.servers={{ganglia_server_host}}:8660
+maptask.sink.ganglia.servers={{ganglia_server_host}}:8660
+reducetask.sink.ganglia.servers={{ganglia_server_host}}:8660
+resourcemanager.sink.ganglia.servers={{ganglia_server_host}}:8664
+nodemanager.sink.ganglia.servers={{ganglia_server_host}}:8660
+historyserver.sink.ganglia.servers={{ganglia_server_host}}:8666
+journalnode.sink.ganglia.servers={{ganglia_server_host}}:8660
+
+resourcemanager.sink.ganglia.tagsForPrefix.yarn=Queue
+
+{% endif %}
http://git-wip-us.apache.org/repos/asf/ambari/blob/ef81b392/ambari-server/src/main/resources/stacks/HDP/2.0.8/hooks/before-START/templates/hdfs.conf.j2
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.0.8/hooks/before-START/templates/hdfs.conf.j2 b/ambari-server/src/main/resources/stacks/HDP/2.0.8/hooks/before-START/templates/hdfs.conf.j2
new file mode 100644
index 0000000..ca7baa2
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/2.0.8/hooks/before-START/templates/hdfs.conf.j2
@@ -0,0 +1,17 @@
+# 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.
+
+{{hdfs_user}} - nofile 32768
+{{hdfs_user}} - nproc 65536
http://git-wip-us.apache.org/repos/asf/ambari/blob/ef81b392/ambari-server/src/main/resources/stacks/HDP/2.0.8/hooks/before-START/templates/health_check-v2.j2
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.0.8/hooks/before-START/templates/health_check-v2.j2 b/ambari-server/src/main/resources/stacks/HDP/2.0.8/hooks/before-START/templates/health_check-v2.j2
new file mode 100644
index 0000000..cb7b12b
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/2.0.8/hooks/before-START/templates/health_check-v2.j2
@@ -0,0 +1,91 @@
+#!/bin/bash
+#
+#/*
+# * 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.
+# */
+
+err=0;
+
+function check_disks {
+
+ for m in `awk '$3~/ext3/ {printf" %s ",$2}' /etc/fstab` ; do
+ fsdev=""
+ fsdev=`awk -v m=$m '$2==m {print $1}' /proc/mounts`;
+ if [ -z "$fsdev" -a "$m" != "/mnt" ] ; then
+ msg_="$msg_ $m(u)"
+ else
+ msg_="$msg_`awk -v m=$m '$2==m { if ( $4 ~ /^ro,/ ) {printf"%s(ro)",$2 } ; }' /proc/mounts`"
+ fi
+ done
+
+ if [ -z "$msg_" ] ; then
+ echo "disks ok" ; exit 0
+ else
+ echo "$msg_" ; exit 2
+ fi
+
+}
+
+function check_link {
+ snmp=/usr/bin/snmpwalk
+ if [ -e $snmp ] ; then
+ $snmp -t 5 -Oe -Oq -Os -v 1 -c public localhost if | \
+ awk ' {
+ split($1,a,".") ;
+ if ( a[1] == "ifIndex" ) { ifIndex[a[2]] = $2 }
+ if ( a[1] == "ifDescr" ) { ifDescr[a[2]] = $2 }
+ if ( a[1] == "ifType" ) { ifType[a[2]] = $2 }
+ if ( a[1] == "ifSpeed" ) { ifSpeed[a[2]] = $2 }
+ if ( a[1] == "ifAdminStatus" ) { ifAdminStatus[a[2]] = $2 }
+ if ( a[1] == "ifOperStatus" ) { ifOperStatus[a[2]] = $2 }
+ }
+ END {
+ up=0;
+ for (i in ifIndex ) {
+ if ( ifType[i] == 6 && ifAdminStatus[i] == 1 && ifOperStatus[i] == 1 && ifSpeed[i] == 1000000000 ) {
+ up=i;
+ }
+ }
+ if ( up == 0 ) { print "check link" ; exit 2 }
+ else { print ifDescr[up],"ok" }
+ }'
+ exit $? ;
+ fi
+}
+
+# Run all checks
+# Disabled 'check_link' for now...
+for check in disks ; do
+ msg=`check_${check}` ;
+ if [ $? -eq 0 ] ; then
+ ok_msg="$ok_msg$msg,"
+ else
+ err_msg="$err_msg$msg,"
+ fi
+done
+
+if [ ! -z "$err_msg" ] ; then
+ echo -n "ERROR $err_msg "
+fi
+if [ ! -z "$ok_msg" ] ; then
+ echo -n "OK: $ok_msg"
+fi
+
+echo
+
+# Success!
+exit 0
http://git-wip-us.apache.org/repos/asf/ambari/blob/ef81b392/ambari-server/src/main/resources/stacks/HDP/2.0.8/hooks/before-START/templates/health_check.j2
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.0.8/hooks/before-START/templates/health_check.j2 b/ambari-server/src/main/resources/stacks/HDP/2.0.8/hooks/before-START/templates/health_check.j2
new file mode 100644
index 0000000..b84b336
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/2.0.8/hooks/before-START/templates/health_check.j2
@@ -0,0 +1,118 @@
+#!/bin/bash
+#
+#/*
+# * 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.
+# */
+
+err=0;
+
+function check_disks {
+
+ for m in `awk '$3~/ext3/ {printf" %s ",$2}' /etc/fstab` ; do
+ fsdev=""
+ fsdev=`awk -v m=$m '$2==m {print $1}' /proc/mounts`;
+ if [ -z "$fsdev" ] ; then
+ msg_="$msg_ $m(u)"
+ else
+ msg_="$msg_`awk -v m=$m '$2==m { if ( $4 ~ /^ro,/ ) {printf"%s(ro)",$2 } ; }' /proc/mounts`"
+ fi
+ done
+
+ if [ -z "$msg_" ] ; then
+ echo "disks ok" ; exit 0
+ else
+ echo "$msg_" ; exit 2
+ fi
+
+}
+
+function check_taskcontroller {
+ if [ "<%=scope.function_hdp_template_var("::hdp::params::security_enabled")%>" == "true" ]; then
+ perm=`stat -c %a:%U:%G <%=scope.function_hdp_template_var("task_bin_exe")%> 2>/dev/null`
+ if [ $? -eq 0 ] && [ "$perm" == "6050:root:hadoop" ] ; then
+ echo "taskcontroller ok"
+ else
+ echo 'check taskcontroller' ; exit 1
+ fi
+ fi
+}
+
+function check_jetty {
+ hname=`hostname`
+ jmx=`curl -s -S -m 5 "http://$hname:<%=scope.function_hdp_template_var("::hdp::tasktracker_port")%>/jmx?qry=Hadoop:service=TaskTracker,name=ShuffleServerMetrics" 2>/dev/null` ;
+ if [ $? -eq 0 ] ; then
+ e=`echo $jmx | awk '/shuffle_exceptions_caught/ {printf"%d",$2}'` ;
+ e=${e:-0} # no jmx servlet ?
+ if [ $e -gt 10 ] ; then
+ echo "check jetty: shuffle_exceptions=$e" ; exit 1
+ else
+ echo "jetty ok"
+ fi
+ else
+ echo "check jetty: ping failed" ; exit 1
+ fi
+}
+
+function check_link {
+ snmp=/usr/bin/snmpwalk
+ if [ -e $snmp ] ; then
+ $snmp -t 5 -Oe -Oq -Os -v 1 -c public localhost if | \
+ awk ' {
+ split($1,a,".") ;
+ if ( a[1] == "ifIndex" ) { ifIndex[a[2]] = $2 }
+ if ( a[1] == "ifDescr" ) { ifDescr[a[2]] = $2 }
+ if ( a[1] == "ifType" ) { ifType[a[2]] = $2 }
+ if ( a[1] == "ifSpeed" ) { ifSpeed[a[2]] = $2 }
+ if ( a[1] == "ifAdminStatus" ) { ifAdminStatus[a[2]] = $2 }
+ if ( a[1] == "ifOperStatus" ) { ifOperStatus[a[2]] = $2 }
+ }
+ END {
+ up=0;
+ for (i in ifIndex ) {
+ if ( ifType[i] == 6 && ifAdminStatus[i] == 1 && ifOperStatus[i] == 1 && ifSpeed[i] == 1000000000 ) {
+ up=i;
+ }
+ }
+ if ( up == 0 ) { print "check link" ; exit 2 }
+ else { print ifDescr[up],"ok" }
+ }'
+ exit $? ;
+ fi
+}
+
+# Run all checks
+# Disabled 'check_link' for now...
+for check in disks taskcontroller jetty; do
+ msg=`check_${check}` ;
+ if [ $? -eq 0 ] ; then
+ ok_msg="$ok_msg$msg,"
+ else
+ err_msg="$err_msg$msg,"
+ fi
+done
+
+if [ ! -z "$err_msg" ] ; then
+ echo -n "ERROR $err_msg "
+fi
+if [ ! -z "$ok_msg" ] ; then
+ echo -n "OK: $ok_msg"
+fi
+
+echo
+
+# Success!
+exit 0
http://git-wip-us.apache.org/repos/asf/ambari/blob/ef81b392/ambari-server/src/main/resources/stacks/HDP/2.0.8/hooks/before-START/templates/include_hosts_list.j2
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/stacks/HDP/2.0.8/hooks/before-START/templates/include_hosts_list.j2 b/ambari-server/src/main/resources/stacks/HDP/2.0.8/hooks/before-START/templates/include_hosts_list.j2
new file mode 100644
index 0000000..cbcf6c3
--- /dev/null
+++ b/ambari-server/src/main/resources/stacks/HDP/2.0.8/hooks/before-START/templates/include_hosts_list.j2
@@ -0,0 +1,3 @@
+{% for host in slave_hosts %}
+{{host}}
+{% endfor %}