2014-02-25 55 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>