Updated Branches: refs/heads/trunk 9a05963ce -> 02ecc4d18
AMBARI-3534. Hadoop Core Health Check script needs to be included in Ambari HDP installations. (Artem Baranchuk via odiachenko) Project: http://git-wip-us.apache.org/repos/asf/incubator-ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ambari/commit/02ecc4d1 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ambari/tree/02ecc4d1 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ambari/diff/02ecc4d1 Branch: refs/heads/trunk Commit: 02ecc4d18939fd0fc76b03bbcf0ebcdbfb7a5a4a Parents: 9a05963 Author: Oleksandr Diachenko <[email protected]> Authored: Thu Oct 17 15:39:29 2013 +0300 Committer: Oleksandr Diachenko <[email protected]> Committed: Thu Oct 17 15:39:29 2013 +0300 ---------------------------------------------------------------------- .../puppet/modules/hdp-hadoop/manifests/init.pp | 15 +++- .../hdp-hadoop/templates/health_check-v2.erb | 91 ++++++++++++++++++++ 2 files changed, 105 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/02ecc4d1/ambari-agent/src/main/puppet/modules/hdp-hadoop/manifests/init.pp ---------------------------------------------------------------------- diff --git a/ambari-agent/src/main/puppet/modules/hdp-hadoop/manifests/init.pp b/ambari-agent/src/main/puppet/modules/hdp-hadoop/manifests/init.pp index da3d1cb..7f42430 100644 --- a/ambari-agent/src/main/puppet/modules/hdp-hadoop/manifests/init.pp +++ b/ambari-agent/src/main/puppet/modules/hdp-hadoop/manifests/init.pp @@ -305,12 +305,25 @@ class hdp-hadoop( mode => $tc_mode } - $template_files = [ 'hadoop-env.sh', 'health_check', 'commons-logging.properties', 'slaves'] + $template_files = [ 'hadoop-env.sh', 'commons-logging.properties', 'slaves'] hdp-hadoop::configfile { $template_files: tag => 'common', owner => $hdfs_user } + if (hdp_get_major_stack_version($hdp::params::stack_version) >= 2) { + hdp-hadoop::configfile { 'health_check' : + tag => 'common', + owner => $hdfs_user, + template_tag => 'v2' + } + } else { + hdp-hadoop::configfile { 'health_check' : + tag => 'common', + owner => $hdfs_user + } + } + # log4j.properties has to be installed just one time to prevent # manual changes overwriting if ($service_state=='installed_and_configured') { http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/02ecc4d1/ambari-agent/src/main/puppet/modules/hdp-hadoop/templates/health_check-v2.erb ---------------------------------------------------------------------- diff --git a/ambari-agent/src/main/puppet/modules/hdp-hadoop/templates/health_check-v2.erb b/ambari-agent/src/main/puppet/modules/hdp-hadoop/templates/health_check-v2.erb new file mode 100644 index 0000000..cb7b12b --- /dev/null +++ b/ambari-agent/src/main/puppet/modules/hdp-hadoop/templates/health_check-v2.erb @@ -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
