2017-10-09 88 views
0

我是一個關於HDFS的新手,我的問題是如何爲保存在hadoop 2.5版本上的文件創建符號鏈接。我使用java API訪問hdfs來創建符號鏈接符號連接)和一個例外如下:在線程 「主要」 java.lang.UnsupportedOperationException如何爲保存在hadoop 2.5版本上的文件創建符號鏈接

例外: 符號連接不支持 在org.apache.hadoop.hdfs.DistributedFileSystem.createSymlink(DistributedFileSystem.java:1328)

我的java代碼如下:

1,在hdfs-site.xml中添加一些內容。

<property> 
    <name>test.SymlinkEnabledForTesting</name> 
    <value>true</value> 
</property> 

2,調用java API。

Configuration conf = new Configuration(); 
conf.set("mapred.create.symlink", "yes"); 
conf.set("fs.defaultFS", HdfsServer); 
URI uri = URI.create(HdfsServer); 
String target = "/tmp/target.csv"; 
Path targetPath = new Path(target); 
String uriWithLink = "/tmp/link.csv"; 
Path linkPath= new Path(uriWithLink); 
FileContext fc = FileContext.getFileContext(uri,conf); 
fc.createSymlink(targetPath, linkPath, true); 

有沒有人可以給我一些建議?

回答

0

java.lang.UnsupportedOperationException:符號連接不支持

可能會出現上述異常,由於沒有實現,甚至你在HDFS-site.xml中給出的符號鏈接。請參閱此鏈接以獲得更多理解link for Reason to Exception

因此,在FileContext之前,首先啓用符號鏈接。

像這樣

FileSystem.enableSymlinks(); // See linked patch: https://issues.apache.org/jira/browse/HADOOP-10020 

希望這有助於。

+0

謝謝。但仍然存在問題。第一,我修改在/ etc/hadoop的/ conf下HDFS-site.xml中,加入在該XML文件的某些內容 test.SymlinkEnabledForTesting squall

相關問題