Prechádzať zdrojové kódy

AMBARI-1594. Ambari UI shows failed services while processes are running on the server. (swagle)

git-svn-id: https://svn.apache.org/repos/asf/incubator/ambari/trunk@1454487 13f79535-47bb-0310-9956-ffa450edef68
Siddharth Wagle 12 rokov pred
rodič
commit
7707ec5ce0

+ 3 - 0
CHANGES.txt

@@ -445,6 +445,9 @@ Trunk (unreleased changes):
 
  BUG FIXES
 
+ AMBARI-1594. Ambari UI shows failed services while processes are running 
+ on the server. (swagle) 
+
  AMBARI-1582. Cannot start hadoop services after hdfs re-configuration 
  and amabri server restart. (swagle)
 

+ 1 - 1
ambari-agent/src/main/puppet/modules/hdp-hadoop/manifests/init.pp

@@ -173,7 +173,7 @@ class hdp-hadoop(
     hdp::directory_recursive_create { $logdirprefix: 
         owner => 'root'
     }
-    $piddirprefix = $hdp-hadoop::params::hadoop_piddirprefix
+    $piddirprefix = $hdp-hadoop::params::hadoop_pid_dir_prefix
     hdp::directory_recursive_create { $piddirprefix: 
         owner => 'root'
     }

+ 2 - 2
ambari-agent/src/main/puppet/modules/hdp-hadoop/manifests/params.pp

@@ -58,8 +58,8 @@ class hdp-hadoop::params(
 
   $hdfs_log_dir_prefix = hdp_default("hadoop/hadoop-env/hdfs_log_dir_prefix","/var/log/hadoop")
 
-  $hadoop_piddirprefix = hdp_default("hadoop/hadoop-env/hadoop_piddirprefix","/var/run/hadoop")
-  $run_dir = $hadoop_piddirprefix
+  $hadoop_pid_dir_prefix = hdp_default("hadoop/hadoop-env/hadoop_pid_dir_prefix","/var/run/hadoop")
+  $run_dir = $hadoop_pid_dir_prefix
 
   $namenode_formatted_mark_dir = "${run_dir}/hdfs/namenode/formatted/"
 

+ 2 - 2
ambari-agent/src/main/puppet/modules/hdp-hadoop/manifests/service.pp

@@ -30,7 +30,7 @@ define hdp-hadoop::service(
   $security_enabled = $hdp::params::security_enabled
 
   #NOTE does not work if namenode and datanode are on same host 
-  $pid_dir = "${hdp-hadoop::params::hadoop_piddirprefix}/${user}"
+  $pid_dir = "${hdp-hadoop::params::hadoop_pid_dir_prefix}/${user}"
   
   if (($security_enabled == true) and ($name == 'datanode')) {
     $run_as_root = true
@@ -40,7 +40,7 @@ define hdp-hadoop::service(
 
   if (($security_enabled == true) and ($name == 'datanode')) {
     $hdfs_user = $hdp::params::hdfs_user
-    $pid_file = "${hdp-hadoop::params::hadoop_piddirprefix}/${hdfs_user}/hadoop-${hdfs_user}-${name}.pid"
+    $pid_file = "${hdp-hadoop::params::hadoop_pid_dir_prefix}/${hdfs_user}/hadoop-${hdfs_user}-${name}.pid"
   } else {
     $pid_file = "${pid_dir}/hadoop-${user}-${name}.pid"
   } 

+ 2 - 2
ambari-agent/src/main/puppet/modules/hdp-hadoop/templates/hadoop-env.sh.erb

@@ -78,8 +78,8 @@ export HADOOP_SECURE_DN_LOG_DIR=<%=scope.function_hdp_template_var("hdfs_log_dir
 # export HADOOP_SLAVE_SLEEP=0.1
 
 # The directory where pid files are stored. /tmp by default.
-export HADOOP_PID_DIR=<%=scope.function_hdp_template_var("hadoop_piddirprefix")%>/$USER
-export HADOOP_SECURE_DN_PID_DIR=<%=scope.function_hdp_template_var("hadoop_piddirprefix")%>/$HADOOP_SECURE_DN_USER
+export HADOOP_PID_DIR=<%=scope.function_hdp_template_var("hadoop_pid_dir_prefix")%>/$USER
+export HADOOP_SECURE_DN_PID_DIR=<%=scope.function_hdp_template_var("hadoop_pid_dir_prefix")%>/$HADOOP_SECURE_DN_USER
 
 # A string representing this instance of hadoop. $USER by default.
 export HADOOP_IDENT_STRING=$USER

+ 17 - 3
ambari-agent/src/main/puppet/modules/hdp-hcat/manifests/init.pp

@@ -23,6 +23,7 @@ class hdp-hcat(
 ) inherits hdp-hcat::params
 {
   $hcat_config_dir = $hdp-hcat::params::hcat_conf_dir
+  $hcat_pid_dir = $hdp-hcat::params::hcat_pid_dir
 
   if ($hdp::params::use_32_bits_on_slaves == false) {
     $size = 64
@@ -41,8 +42,13 @@ class hdp-hcat(
       service_state => $service_state,
       force => true
     }
+	
+    hdp::directory { $hcat_pid_dir:
+      service_state => $service_state,
+      force => true
+    }
 
-    Hdp::Package['hcat'] -> Hdp::Directory[$hcat_config_dir]
+    Hdp::Package['hcat'] -> Hdp::Directory[$hcat_config_dir] -> Hdp::Directory[$hcat_pid_dir]
 
   } elsif ($service_state == 'installed_and_configured') {
     hdp::package { 'hcat' : 
@@ -53,10 +59,18 @@ class hdp-hcat(
       service_state => $service_state,
       force => true
     }
-
+	
+    hdp::directory_recursive_create { $hcat_pid_dir:
+      owner => $webhcat_user,
+      service_state => $service_state,
+      force => true
+    }
+	
+    hdp::user{ $webhcat_user:}
+	
     hdp-hcat::configfile { 'hcat-env.sh':}
   
-    Hdp::Package['hcat'] -> Hdp::Directory[$hcat_config_dir] -> Hdp-hcat::Configfile<||> 
+    Hdp::Package['hcat'] -> Hdp::User[$webhcat_user] -> Hdp::Directory[$hcat_config_dir] -> Hdp::Directory_recursive_create[$hcat_pid_dir] -> Hdp-hcat::Configfile<||> 
  } else {
     hdp_fail("TODO not implemented yet: service_state = ${service_state}")
   }

+ 1 - 1
ambari-agent/src/main/puppet/modules/hdp-templeton/templates/webhcat-env.sh.erb

@@ -21,7 +21,7 @@
 #
 
 # The file containing the running pid
-PID_FILE=<%=scope.function_hdp_template_var("templeton_pid_dir")%>/webhcat.pid
+PID_FILE=<%=scope.function_hdp_template_var("hcat_pid_dir")%>/webhcat.pid
 
 TEMPLETON_LOG_DIR=<%=scope.function_hdp_template_var("hcat_log_dir")%>/
 

+ 1 - 1
ambari-agent/src/main/python/ambari_agent/AmbariConfig.py

@@ -141,7 +141,7 @@ servicesToPidNames = {
   'GANGLIA_MONITOR': 'gmond.pid',
   'HBASE_MASTER': 'hbase-[A-Za-z0-9_]+-master.pid',
   'HBASE_REGIONSERVER': 'hbase-[A-Za-z0-9_]+-regionserver.pid',
-  'HCATALOG_SERVER': 'hcat.pid',
+  'HCATALOG_SERVER': 'webhcat.pid',
   'KERBEROS_SERVER': 'kadmind.pid',
   'HIVE_SERVER': 'hive-server.pid',
   'HIVE_METASTORE': 'hive.pid',