使用其他用户名访问HDFS

时间:2012-08-28 10:26:48

标签: java username hdfs

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

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

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

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

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

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

此致 Sajal

1 个答案:

答案 0 :(得分:0)

对于Java程序,您可以使用CDH3或1.x以后的Secure Impersonation功能。