2017-10-09 7 views
0

私はHDFSについて新入生です。私の質問は、hadoop 2.5バージョンに保存されたファイルのシンボリックリンクを作成する方法です.HDFSにアクセスしてシンボリックリンクシンボリックリンク)と次のように例外:スレッド "メイン" java.lang.UnsupportedOperationExceptionがでhadoop 2.5で保存されたファイルのシンボリックリンクを作成する方法

例外: はorg.apache.hadoop.hdfs.DistributedFileSystem.createSymlinkで をサポートしていないシンボリックリンク(DistributedFileSystem.java:1328)

私のJavaコードは次のとおりです。

最初に、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の前にsymlinkを有効にしてください。この

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

よう

何かが、この情報がお役に立てば幸いです。

+0

ありがとうございました。しかし、まだ問題があります。第一に、私は test.SymlinkEnabledForTesting は、/ etc/Hadoopの/ confの中でHDFS-site.xmlのを修正このXMLファイルにいくつかのコンテンツを追加しました – squall

関連する問題