Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在运行时更改Hadoop用户名不会';行不通_Java_Hadoop_Hdfs - Fatal编程技术网

Java 在运行时更改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后,如上

我编写了一个小的Hadoop客户端Java应用程序,它列出了HDFS(不安全)中的所有文件和配置单元中的所有表,以及其他一些东西。但是,我需要在运行时更改Hadoop用户名

通过
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---