瀏覽代碼

AMBARI-11571. Move NameNode with AMS in distributed mode - Stop All fails for AMS. (swagle)

Siddharth Wagle 10 年之前
父節點
當前提交
226b9a076f

+ 22 - 18
ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/hbase.py

@@ -23,7 +23,7 @@ from resource_management import *
 from ambari_commons.os_family_impl import OsFamilyFuncImpl, OsFamilyImpl
 
 @OsFamilyFuncImpl(os_family=OSConst.WINSRV_FAMILY)
-def hbase(name=None):
+def hbase(name=None, action = None):
   import params
   Directory(params.hbase_conf_dir,
             owner = params.hadoop_user,
@@ -82,7 +82,7 @@ def hbase(name=None):
 
 @OsFamilyFuncImpl(os_family=OsFamilyImpl.DEFAULT)
 def hbase(name=None # 'master' or 'regionserver' or 'client'
-              ):
+          , action=None):
   import params
 
   Directory(params.hbase_conf_dir,
@@ -170,22 +170,26 @@ def hbase(name=None # 'master' or 'regionserver' or 'client'
   if name == "master":
 
     if params.is_hbase_distributed:
-
-      params.HdfsResource(params.hbase_root_dir,
-                           type="directory",
-                           action="create_on_execute",
-                           owner=params.hbase_user,
-                           mode=0775
-      )
-
-      params.HdfsResource(params.hbase_staging_dir,
-                           type="directory",
-                           action="create_on_execute",
-                           owner=params.hbase_user,
-                           mode=0711
-      )
-
-      params.HdfsResource(None, action="execute")
+      # If executing Stop All, HDFS is probably down
+      if action != 'stop':
+
+        params.HdfsResource(params.hbase_root_dir,
+                             type="directory",
+                             action="create_on_execute",
+                             owner=params.hbase_user,
+                             mode=0775
+        )
+
+        params.HdfsResource(params.hbase_staging_dir,
+                             type="directory",
+                             action="create_on_execute",
+                             owner=params.hbase_user,
+                             mode=0711
+        )
+
+        params.HdfsResource(None, action="execute")
+
+      pass
 
     else:
 

+ 3 - 3
ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/hbase_master.py

@@ -30,16 +30,16 @@ class HbaseMaster(Script):
   def install(self, env):
     self.install_packages(env)
     
-  def configure(self, env):
+  def configure(self, env, action = None):
     import params
     env.set_params(params)
 
-    hbase(name='master')
+    hbase(name='master', action)
     
   def start(self, env):
     import params
     env.set_params(params)
-    self.configure(env) # for security
+    self.configure(env, action = 'start') # for security
 
     hbase_service( 'master',
       action = 'start'

+ 2 - 2
ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/hbase_regionserver.py

@@ -29,7 +29,7 @@ class HbaseRegionServer(Script):
   def install(self, env):
     self.install_packages(env)
     
-  def configure(self, env):
+  def configure(self, env, action = None):
     import params
     env.set_params(params)
 
@@ -38,7 +38,7 @@ class HbaseRegionServer(Script):
   def start(self, env):
     import params
     env.set_params(params)
-    self.configure(env) # for security
+    self.configure(env, action = 'start') # for security
 
     hbase_service( 'regionserver',
       action = 'start'

+ 7 - 9
ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/metrics_collector.py

@@ -33,28 +33,26 @@ class AmsCollector(Script):
     # self.configure(env) # for security
 
 
-  def configure(self, env):
+  def configure(self, env, action = None):
     import params
     env.set_params(params)
-    hbase('master')
-    hbase('regionserver')
+    hbase('master', action)
+    hbase('regionserver', action)
     ams(name='collector')
 
   def start(self, env):
-    self.configure(env) # for security
+    self.configure(env, action = 'start') # for security
 
-    ams_service( 'collector',
-                   action = 'start'
-    )
+    ams_service('collector', action = 'start')
 
   def stop(self, env):
     import params
     env.set_params(params)
 
     # Sometimes, stop() may be called before start(), in case restart() is initiated right after installation
-    self.configure(env) # for security
+    self.configure(env, action = 'stop') # for security
 
-    ams_service( 'collector', action = 'stop')
+    ams_service('collector', action = 'stop')
 
   def status(self, env):
     import status_params