"chmod" 来自 Java 的 hadoop 路径
"chmod" hadoop path from Java
我所做的基本上是使用 java 代码自动执行一些 shell 命令(这些命令包括 hadoop shell 命令),现在我正在 [=31] 上执行以下命令=]:
hadoop fs -mkdir path//tp//folder
hadoop fs -chmod a+w path//to//folder
一切正常,现在什么时候尝试使用 java 代码来执行相同的操作:
org.apache.hadoop.fs.FileSystem.mkdir(new Path("path//to//folder"),new FsPermission(FsAction.ALL, FsAction.ALL, FsAction.ALL))
不幸的是这个方法:
public void setPermission(Path p, FsPermission permission) throws IOException
{
}
未实现(分别为:empty)with hadoop v 2.6.0 ~ 2.8.0
我的问题是如何使用 java 代码向 hadoop 路径添加 read/write 权限?
首先,您可能想要交叉检查您的分析结果。例如,如果您查看 here,您会发现 FileSystem 实际上是一个 abstract class。因此,如果 specific subclass 实际上在某个点 overrides 那个空方法 setPermissions()
,我不会感到惊讶- 例如,基于基础 OS。
无论如何,有一个简单但丑陋的解决方法:使用 ProcessBuilder 和 运行
hadoop fs -chmod a+w path//to//folder
来自 Java。并记下:
// TODO: check with next version of hadoop if fs.FileSystem.setPermission() is now implemented
我所做的基本上是使用 java 代码自动执行一些 shell 命令(这些命令包括 hadoop shell 命令),现在我正在 [=31] 上执行以下命令=]:
hadoop fs -mkdir path//tp//folder
hadoop fs -chmod a+w path//to//folder
一切正常,现在什么时候尝试使用 java 代码来执行相同的操作:
org.apache.hadoop.fs.FileSystem.mkdir(new Path("path//to//folder"),new FsPermission(FsAction.ALL, FsAction.ALL, FsAction.ALL))
不幸的是这个方法:
public void setPermission(Path p, FsPermission permission) throws IOException
{
}
未实现(分别为:empty)with hadoop v 2.6.0 ~ 2.8.0
我的问题是如何使用 java 代码向 hadoop 路径添加 read/write 权限?
首先,您可能想要交叉检查您的分析结果。例如,如果您查看 here,您会发现 FileSystem 实际上是一个 abstract class。因此,如果 specific subclass 实际上在某个点 overrides 那个空方法 setPermissions()
,我不会感到惊讶- 例如,基于基础 OS。
无论如何,有一个简单但丑陋的解决方法:使用 ProcessBuilder 和 运行
hadoop fs -chmod a+w path//to//folder
来自 Java。并记下:
// TODO: check with next version of hadoop if fs.FileSystem.setPermission() is now implemented