Java 在运行时更改Hadoop用户名不会';行不通
我编写了一个小的Hadoop客户端Java应用程序,它列出了HDFS(不安全)中的所有文件和配置单元中的所有表,以及其他一些东西。但是,我需要在运行时更改Hadoop用户名 通过Java 在运行时更改Hadoop用户名不会';行不通,java,hadoop,hdfs,Java,Hadoop,Hdfs,我编写了一个小的Hadoop客户端Java应用程序,它列出了HDFS(不安全)中的所有文件和配置单元中的所有表,以及其他一些东西。但是,我需要在运行时更改Hadoop用户名 通过System.setProperty(“HADOOP_USER_name”、“testuser”)设置名称在我第一次需要这个用户名时可以正常工作。但是当我想将用户名更改为例如System.setProperty(“HADOOP_USER_NAME”,“hdfs”)我得到一个异常(将hadoop用户名设置为hdfs后,如上
System.setProperty(“HADOOP_USER_name”、“testuser”)设置名称代码>在我第一次需要这个用户名时可以正常工作。但是当我想将用户名更改为例如System.setProperty(“HADOOP_USER_NAME”,“hdfs”)代码>我得到一个异常(将hadoop用户名设置为hdfs后,如上所示):
这里有什么问题?为什么我不能随时通过HADOOP_USER_NAME属性更改用户名
编辑
我可以只使用UserGroupInformation.setLoginUser(UserGroupInformation.createRemoteUser(username))
在运行时更改用户还是有一些限制?因为您正在使用JDBC连接连接到HDFS或配置单元。
在关闭现有连接之前,您无法从同一应用程序再建立一个到HDFS/Hive服务的连接。因为您使用JDBC连接到HDFS或Hive。
在关闭现有连接之前,无法从同一应用程序再建立一个到HDFS/Hive服务的连接
org.apache.hadoop.security.AccessControlException: Permission denied: user=testuser, access=READ_EXECUTE, inode="/app-logs/ambari-qa":ambari-qa:hadoop:drwxrwx---