YARN-8145. yarn rmadmin -getGroups doesn't return updated groups for user. Contributed by Sunil G.
This commit is contained in:
parent
1312f9ae4c
commit
241d985467
@ -34,7 +34,6 @@
|
|||||||
import org.apache.hadoop.metrics2.lib.DefaultMetricsSystem;
|
import org.apache.hadoop.metrics2.lib.DefaultMetricsSystem;
|
||||||
import org.apache.hadoop.metrics2.source.JvmMetrics;
|
import org.apache.hadoop.metrics2.source.JvmMetrics;
|
||||||
import org.apache.hadoop.net.NetUtils;
|
import org.apache.hadoop.net.NetUtils;
|
||||||
import org.apache.hadoop.security.Groups;
|
|
||||||
import org.apache.hadoop.security.SecurityUtil;
|
import org.apache.hadoop.security.SecurityUtil;
|
||||||
import org.apache.hadoop.security.UserGroupInformation;
|
import org.apache.hadoop.security.UserGroupInformation;
|
||||||
import org.apache.hadoop.security.authorize.ProxyUsers;
|
import org.apache.hadoop.security.authorize.ProxyUsers;
|
||||||
@ -254,9 +253,6 @@ protected void serviceInit(Configuration conf) throws Exception {
|
|||||||
// load core-site.xml
|
// load core-site.xml
|
||||||
loadConfigurationXml(YarnConfiguration.CORE_SITE_CONFIGURATION_FILE);
|
loadConfigurationXml(YarnConfiguration.CORE_SITE_CONFIGURATION_FILE);
|
||||||
|
|
||||||
// Refresh user to group mappings during init.
|
|
||||||
refreshUserToGroupMappingsWithConf();
|
|
||||||
|
|
||||||
// Do refreshSuperUserGroupsConfiguration with loaded core-site.xml
|
// Do refreshSuperUserGroupsConfiguration with loaded core-site.xml
|
||||||
// Or use RM specific configurations to overwrite the common ones first
|
// Or use RM specific configurations to overwrite the common ones first
|
||||||
// if they exist
|
// if they exist
|
||||||
@ -340,21 +336,6 @@ protected void serviceInit(Configuration conf) throws Exception {
|
|||||||
super.serviceInit(this.conf);
|
super.serviceInit(this.conf);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void refreshUserToGroupMappingsWithConf()
|
|
||||||
throws YarnException, IOException {
|
|
||||||
Configuration newConf = new Configuration(false);
|
|
||||||
InputStream confFileInputStream =
|
|
||||||
configurationProvider
|
|
||||||
.getConfigurationInputStream(newConf, YarnConfiguration.CORE_SITE_CONFIGURATION_FILE);
|
|
||||||
if (confFileInputStream != null) {
|
|
||||||
newConf.addResource(confFileInputStream);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Do refreshUserToGroupsMappings with loaded core-site.xml
|
|
||||||
Groups.getUserToGroupsMappingServiceWithLoadedConfiguration(newConf)
|
|
||||||
.refresh();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void loadConfigurationXml(String configurationFile)
|
private void loadConfigurationXml(String configurationFile)
|
||||||
throws YarnException, IOException {
|
throws YarnException, IOException {
|
||||||
InputStream configurationInputStream =
|
InputStream configurationInputStream =
|
||||||
|
@ -722,6 +722,7 @@ public void testRefreshUserToGroupsMappingsWithLocalConfigurationProvider() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Make sure RM will use the updated GroupMappingServiceProvider
|
// Make sure RM will use the updated GroupMappingServiceProvider
|
||||||
|
Groups.getUserToGroupsMappingServiceWithLoadedConfiguration(conf).refresh();
|
||||||
List<String> groupBefore =
|
List<String> groupBefore =
|
||||||
new ArrayList<String>(Groups.getUserToGroupsMappingService(
|
new ArrayList<String>(Groups.getUserToGroupsMappingService(
|
||||||
configuration).getGroups(user));
|
configuration).getGroups(user));
|
||||||
@ -1099,6 +1100,7 @@ public void testRMInitialsWithFileSystemBasedConfigurationProvider()
|
|||||||
.get("hadoop.proxyuser.test.hosts").contains("test_hosts"));
|
.get("hadoop.proxyuser.test.hosts").contains("test_hosts"));
|
||||||
|
|
||||||
// verify UserToGroupsMappings
|
// verify UserToGroupsMappings
|
||||||
|
Groups.getUserToGroupsMappingServiceWithLoadedConfiguration(conf).refresh();
|
||||||
List<String> groupAfter =
|
List<String> groupAfter =
|
||||||
Groups.getUserToGroupsMappingService(configuration).getGroups(
|
Groups.getUserToGroupsMappingService(configuration).getGroups(
|
||||||
UserGroupInformation.getCurrentUser().getUserName());
|
UserGroupInformation.getCurrentUser().getUserName());
|
||||||
|
Loading…
Reference in New Issue
Block a user