我正在编写一个Java模块,我需要使用hdfs URI访问HDFS文件系统。 将要执行模块的用户可能与已启动namenode和datanode的用户不同。
此外,java模块和hadoop集群有可能在不同的机器上运行。
我面临的问题是,当我尝试使用FileSystem对象访问hdfs时,用于访问FS对象的用户名是运行java模块的本地用户。
我的问题是如何通过使用已启动namenode和datanode实例的相同用户名来强制执行对HDFS的访问。
我尝试设置user.name系统属性,但即使这样也行不通。 我在几个地方读过,在我的java模块运行的机器上放置了whoami的实现,因为客户端代码使用此命令来获取用户名。
我想知道是否有其他方法可以实现这一目标?
此致 Sajal