Hdfs文件权限

时间:2014-02-25 15:24:45

标签: java file hadoop permissions hdfs

我想更改文件权限,但涉及此错误。

Hadoop版本:1.0.3

Netbeans IDE 7.4

JDK = 7u45

Java代码:

    Configuration conf = new Configuration();
    conf.addResource(new Path("/home/furkanb/hadoop-1.0.3/conf/core-site.xml"));
    conf.addResource(new Path("/home/furkanb/hadoop-1.0.3/conf/hdfs-site.xml"));
    FileSystem fileSystem = FileSystem.get(conf);

    ......

    fileSystem.setPermission(new Path(file), FsPermission.createImmutable((short) 0777));

    fileSystem.close();

我遇到错误:

Exception in thread "main" java.io.IOException: Call to /127.0.0.1:9000 failed on local exception: java.io.EOFException
    at org.apache.hadoop.ipc.Client.wrapException(Client.java:1107)
    at org.apache.hadoop.ipc.Client.call(Client.java:1075)
    at org.apache.hadoop.ipc.RPC$Invoker.invoke(RPC.java:225)
    at com.sun.proxy.$Proxy1.setPermission(Unknown Source)

我该如何解决?

2 个答案:

答案 0 :(得分:4)

解决方案:

fileSystem.setPermission(fileStatus.getPath(), FsPermission.valueOf(permission));

permission = unix权限代码, 例子= drwxr-x - x

答案 1 :(得分:1)

您似乎遇到版本不匹配问题。当Hadoop计算机上的版本与您的客户端版本不同时,可能会发生此错误。

如果您使用的是Maven,可以按如下方式更新pom.xml:

<dependency>
    <groupId>org.apache.hadoop</groupId>
    <artifactId>hadoop-client</artifactId>
    <version>1.0.3</version>
</dependency>