从用Java编写的Spark作业中,我正在尝试获取有权访问特定hdfs文件的所有linux/centos用户的列表。
目前正在下面提取 Java 代码以获取信息:
result = Shell.execCommand("sudo","bash","-c","lid","-g","-n", fileOwnersGroup);
但它没有奏效。它正在投掷:
须藤:没有TTY存在,也没有指定AskPass程序
尝试了各种选项,包括更新/etc/sudoer,但没有运气。
FileStatus
对象具有getOwner()
和getGroup()
方法。
您可以获取具有FileSystem
对象和文件Path
的状态。
例如,Spark Scala 列出目录中的文件夹
但是,您将需要一些外部查询来查找哪些 Unix 帐户映射到组中。例如,此类操作通常由 LDAP 搜索控制。
它正在抛出须藤:没有TTY存在,也没有指定AskPass程序
显然,问题是sudo提示输入密码,Spark进程不应该能够在本地文件系统上执行提升的命令。