2014-02-25 59 views
0

我想更改文件权限,但涉及此错误。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) 

如何c我解决它?

+1

提供更多的代码行,包括您在Path()中使用的“文件”。 –

+0

错误消息表明您可能给setPermission方法提供了错误的“路径”。 –

+0

文件路径= /user/furkanb/test.txt – furkanbhcc

回答

3

解决方案:

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

权限= UNIX权限的代码,例如 = drwxr-x-- x

1

看来你有一个版本不匹配的问题。当Hadoop机器上的版本与您的客户机版本不同时,可能会发生此错误。

如果您正在使用Maven,你可以按照以下更新你的pom.xml:

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