0

我正在编写一个 Java 模块,我需要在其中使用 hdfs URI 访问 HDFS 文件系统。执行模块的用户可能与启动 namenode 和 datanode 的用户不同。

此外,java 模块和 hadoop 集群有可能在不同的机器上运行。

我面临的问题是,当我尝试使用 FileSystem 对象访问 hdfs 时,用于访问 FS 对象的用户名是运行 java 模块的本地用户。

我的问题是我们如何通过使用启动 namenode 和 datanode 实例的相同用户名来强制访问 HDFS。

我尝试设置 user.name 系统属性,但即使这样也没有用。我在几个地方阅读了将 whoami 的实现放在运行我的 java 模块的机器上,因为客户端代码使用此命令来获取用户名。

我想知道是否有其他方法可以实现这一目标?

问候萨哈尔

4

1 回答 1

0

对于 Java 程序,您可以使用CDH3 或 1.x 及更高版本中提供的安全模拟功能。

于 2012-12-31T00:08:03.197 回答