Procházet zdrojové kódy

AMBARI-12871. Ambari startup scripts exhibit long delays (5+ seconds each) on every "modifying user" operation. This adds a few minutes to the time it takes to start or restart any component, causing excessive downtime for every config change. (aonishuk)

Andrew Onishuk před 10 roky
rodič
revize
6ccabc61e4

+ 5 - 7
ambari-server/src/main/resources/stacks/HDP/2.0.6/hooks/before-ANY/scripts/shared_initialization.py

@@ -30,25 +30,23 @@ def setup_users():
   """
   """
   import params
   import params
 
 
-  if not params.host_sys_prepped:
+  if not params.host_sys_prepped and not params.ignore_groupsusers_create:
     for group in params.group_list:
     for group in params.group_list:
       Group(group,
       Group(group,
-          ignore_failures = params.ignore_groupsusers_create
       )
       )
 
 
     for user in params.user_list:
     for user in params.user_list:
       User(user,
       User(user,
           gid = params.user_to_gid_dict[user],
           gid = params.user_to_gid_dict[user],
           groups = params.user_to_groups_dict[user],
           groups = params.user_to_groups_dict[user],
-          ignore_failures = params.ignore_groupsusers_create
       )
       )
 
 
     if params.override_uid == "true":
     if params.override_uid == "true":
       set_uid(params.smoke_user, params.smoke_user_dirs)
       set_uid(params.smoke_user, params.smoke_user_dirs)
     else:
     else:
-      print 'Skipping setting uid for smoke user as host is sys prepped'
+      Logger.info('Skipping setting uid for smoke user as host is sys prepped')
   else:
   else:
-    print 'Skipping creation of User and Group as host is sys prepped'
+    Logger.info('Skipping creation of User and Group as host is sys prepped or ignore_groupsusers_create flag is on')
     pass
     pass
 
 
 
 
@@ -62,7 +60,7 @@ def setup_users():
     if not params.host_sys_prepped and params.override_uid == "true":
     if not params.host_sys_prepped and params.override_uid == "true":
       set_uid(params.hbase_user, params.hbase_user_dirs)
       set_uid(params.hbase_user, params.hbase_user_dirs)
     else:
     else:
-      print 'Skipping setting uid for hbase user as host is sys prepped'
+      Logger.info('Skipping setting uid for hbase user as host is sys prepped')      
       pass
       pass
 
 
   if not params.host_sys_prepped:
   if not params.host_sys_prepped:
@@ -71,7 +69,7 @@ def setup_users():
     if params.has_tez and params.hdp_stack_version != "" and compare_versions(params.hdp_stack_version, '2.3') >= 0:
     if params.has_tez and params.hdp_stack_version != "" and compare_versions(params.hdp_stack_version, '2.3') >= 0:
         create_tez_am_view_acls()
         create_tez_am_view_acls()
   else:
   else:
-    print 'Skipping setting dfs cluster admin and tez view acls as host is sys prepped'
+    Logger.info('Skipping setting dfs cluster admin and tez view acls as host is sys prepped')
 
 
 def create_dfs_cluster_admins():
 def create_dfs_cluster_admins():
   """
   """

+ 0 - 18
ambari-server/src/test/python/stacks/2.0.6/hooks/before-ANY/test_before_any.py

@@ -48,87 +48,69 @@ class TestHookBeforeInstall(RMFTestCase):
     )
     )
 
 
     self.assertResourceCalled('Group', 'hadoop',
     self.assertResourceCalled('Group', 'hadoop',
-        ignore_failures = False,
     )
     )
     self.assertResourceCalled('Group', 'nobody',
     self.assertResourceCalled('Group', 'nobody',
-        ignore_failures = False,
     )
     )
     self.assertResourceCalled('Group', 'users',
     self.assertResourceCalled('Group', 'users',
-        ignore_failures = False,
     )
     )
     self.assertResourceCalled('User', 'hive',
     self.assertResourceCalled('User', 'hive',
         gid = 'hadoop',
         gid = 'hadoop',
-        ignore_failures = False,
         groups = [u'hadoop'],
         groups = [u'hadoop'],
     )
     )
     self.assertResourceCalled('User', 'oozie',
     self.assertResourceCalled('User', 'oozie',
         gid = 'hadoop',
         gid = 'hadoop',
-        ignore_failures = False,
         groups = [u'users'],
         groups = [u'users'],
     )
     )
     self.assertResourceCalled('User', 'nobody',
     self.assertResourceCalled('User', 'nobody',
         gid = 'hadoop',
         gid = 'hadoop',
-        ignore_failures = False,
         groups = [u'nobody'],
         groups = [u'nobody'],
     )
     )
     self.assertResourceCalled('User', 'ambari-qa',
     self.assertResourceCalled('User', 'ambari-qa',
         gid = 'hadoop',
         gid = 'hadoop',
-        ignore_failures = False,
         groups = [u'users'],
         groups = [u'users'],
     )
     )
     self.assertResourceCalled('User', 'flume',
     self.assertResourceCalled('User', 'flume',
         gid = 'hadoop',
         gid = 'hadoop',
-        ignore_failures = False,
         groups = [u'hadoop'],
         groups = [u'hadoop'],
     )
     )
     self.assertResourceCalled('User', 'hdfs',
     self.assertResourceCalled('User', 'hdfs',
-        ignore_failures = False,
         gid = 'hadoop',
         gid = 'hadoop',
         groups = [u'hadoop'],
         groups = [u'hadoop'],
     )
     )
     self.assertResourceCalled('User', 'storm',
     self.assertResourceCalled('User', 'storm',
         gid = 'hadoop',
         gid = 'hadoop',
-        ignore_failures = False,
         groups = [u'hadoop'],
         groups = [u'hadoop'],
     )
     )
     self.assertResourceCalled('User', 'mapred',
     self.assertResourceCalled('User', 'mapred',
         gid = 'hadoop',
         gid = 'hadoop',
-        ignore_failures = False,
         groups = [u'hadoop'],
         groups = [u'hadoop'],
     )
     )
     self.assertResourceCalled('User', 'hbase',
     self.assertResourceCalled('User', 'hbase',
         gid = 'hadoop',
         gid = 'hadoop',
-        ignore_failures = False,
         groups = [u'hadoop'],
         groups = [u'hadoop'],
     )
     )
     self.assertResourceCalled('User', 'tez',
     self.assertResourceCalled('User', 'tez',
         gid = 'hadoop',
         gid = 'hadoop',
-        ignore_failures = False,
         groups = [u'users'],
         groups = [u'users'],
     )
     )
     self.assertResourceCalled('User', 'zookeeper',
     self.assertResourceCalled('User', 'zookeeper',
         gid = 'hadoop',
         gid = 'hadoop',
-        ignore_failures = False,
         groups = [u'hadoop'],
         groups = [u'hadoop'],
     )
     )
     self.assertResourceCalled('User', 'falcon',
     self.assertResourceCalled('User', 'falcon',
         gid = 'hadoop',
         gid = 'hadoop',
-        ignore_failures = False,
         groups = [u'users'],
         groups = [u'users'],
     )
     )
     self.assertResourceCalled('User', 'sqoop',
     self.assertResourceCalled('User', 'sqoop',
         gid = 'hadoop',
         gid = 'hadoop',
-        ignore_failures = False,
         groups = [u'hadoop'],
         groups = [u'hadoop'],
     )
     )
     self.assertResourceCalled('User', 'yarn',
     self.assertResourceCalled('User', 'yarn',
         gid = 'hadoop',
         gid = 'hadoop',
-        ignore_failures = False,
         groups = [u'hadoop'],
         groups = [u'hadoop'],
     )
     )
     self.assertResourceCalled('User', 'hcat',
     self.assertResourceCalled('User', 'hcat',
         gid = 'hadoop',
         gid = 'hadoop',
-        ignore_failures = False,
         groups = [u'hadoop'],
         groups = [u'hadoop'],
     )
     )
     self.assertResourceCalled('File', '/tmp/changeUid.sh',
     self.assertResourceCalled('File', '/tmp/changeUid.sh',