|
@@ -21,14 +21,16 @@ import java.io.IOException;
|
|
import java.io.PrintStream;
|
|
import java.io.PrintStream;
|
|
import java.net.InetSocketAddress;
|
|
import java.net.InetSocketAddress;
|
|
|
|
|
|
|
|
+import org.apache.commons.logging.Log;
|
|
|
|
+import org.apache.commons.logging.LogFactory;
|
|
import org.apache.hadoop.classification.InterfaceAudience;
|
|
import org.apache.hadoop.classification.InterfaceAudience;
|
|
import org.apache.hadoop.conf.Configuration;
|
|
import org.apache.hadoop.conf.Configuration;
|
|
|
|
+import org.apache.hadoop.fs.CommonConfigurationKeys;
|
|
import org.apache.hadoop.fs.FileSystem;
|
|
import org.apache.hadoop.fs.FileSystem;
|
|
|
|
+import org.apache.hadoop.hdfs.DFSConfigKeys;
|
|
import org.apache.hadoop.hdfs.HdfsConfiguration;
|
|
import org.apache.hadoop.hdfs.HdfsConfiguration;
|
|
import org.apache.hadoop.hdfs.NameNodeProxies;
|
|
import org.apache.hadoop.hdfs.NameNodeProxies;
|
|
-import org.apache.hadoop.hdfs.protocolPB.GetUserMappingsProtocolClientSideTranslatorPB;
|
|
|
|
import org.apache.hadoop.hdfs.server.namenode.NameNode;
|
|
import org.apache.hadoop.hdfs.server.namenode.NameNode;
|
|
-import org.apache.hadoop.security.UserGroupInformation;
|
|
|
|
import org.apache.hadoop.tools.GetGroupsBase;
|
|
import org.apache.hadoop.tools.GetGroupsBase;
|
|
import org.apache.hadoop.tools.GetUserMappingsProtocol;
|
|
import org.apache.hadoop.tools.GetUserMappingsProtocol;
|
|
import org.apache.hadoop.util.ToolRunner;
|
|
import org.apache.hadoop.util.ToolRunner;
|
|
@@ -39,6 +41,8 @@ import org.apache.hadoop.util.ToolRunner;
|
|
*/
|
|
*/
|
|
@InterfaceAudience.Private
|
|
@InterfaceAudience.Private
|
|
public class GetGroups extends GetGroupsBase {
|
|
public class GetGroups extends GetGroupsBase {
|
|
|
|
+
|
|
|
|
+ private static final Log LOG = LogFactory.getLog(GetGroups.class);
|
|
|
|
|
|
static{
|
|
static{
|
|
HdfsConfiguration.init();
|
|
HdfsConfiguration.init();
|
|
@@ -59,6 +63,22 @@ public class GetGroups extends GetGroupsBase {
|
|
return NameNode.getAddress(conf);
|
|
return NameNode.getAddress(conf);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
+ public void setConf(Configuration conf) {
|
|
|
|
+ conf = new HdfsConfiguration(conf);
|
|
|
|
+ String nameNodePrincipal = conf.get(
|
|
|
|
+ DFSConfigKeys.DFS_NAMENODE_USER_NAME_KEY, "");
|
|
|
|
+
|
|
|
|
+ if (LOG.isDebugEnabled()) {
|
|
|
|
+ LOG.debug("Using NN principal: " + nameNodePrincipal);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ conf.set(CommonConfigurationKeys.HADOOP_SECURITY_SERVICE_USER_NAME_KEY,
|
|
|
|
+ nameNodePrincipal);
|
|
|
|
+
|
|
|
|
+ super.setConf(conf);
|
|
|
|
+ }
|
|
|
|
+
|
|
@Override
|
|
@Override
|
|
protected GetUserMappingsProtocol getUgmProtocol() throws IOException {
|
|
protected GetUserMappingsProtocol getUgmProtocol() throws IOException {
|
|
return NameNodeProxies.createProxy(getConf(), FileSystem.getDefaultUri(getConf()),
|
|
return NameNodeProxies.createProxy(getConf(), FileSystem.getDefaultUri(getConf()),
|