2017-10-09 1 views
0

나는 HDFS에 대한 신입생이다. 내 질문은 hadoop 2.5 버전에 저장된 파일에 대한 심볼릭 링크를 만드는 방법이다. 기호 링크를 생성하기 위해 hdfs에 액세스하기 위해 자바 API를 사용했다. 심볼릭 링크) 및 다음과 같은 예외 : 스레드 "주요"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> 

둘째, 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/하둡/conf의에서 HDFS-site.xml 파일을 수정 test.SymlinkEnabledForTesting 사실이 xml 파일의 일부 내용을 추가 squall

관련 문제