2011-12-16 2 views
1

hdfs에 연결하려고합니다.색인에서 권한이 잘못된 문자 : hdfs : // localhost : 9000 with hadoop

Configuration configuration = new Configuration(); 
configuration.set("fs.default.name", this.hdfsHost); 
fs = FileSystem.get(configuration); 

hdfsHost는 127.0.0.1:9000입니다.

하지만이 예외는 FileSystem.get()에서 발생합니다.

동일한 코드를 실행하는 다른 프로젝트가 있지만 잘 작동합니다. 누구든지 제안 할 수 있습니까? 당신에게 대단히 감사합니다

예외 트랙 :

Exception in thread "main" java.lang.IllegalArgumentException 
at java.net.URI.create(URI.java:842) 
at org.apache.hadoop.fs.FileSystem.getDefaultUri(FileSystem.java:103) 
at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:95) 
at TransferToHadoop.TransferFiles.<init>(TransferFiles.java:50)    
at.TransferToHadoop.ScheduleTransferJobs.getTransferFiles(ScheduleTransferJobs.java:99) 
at .TransferToHadoop.ScheduleTransferJobs.main(ScheduleTransferJobs.java:30) 
Caused by: java.net.URISyntaxException: Illegal character in authority at index 7: hdfs://localhost:9000 
at java.net.URI$Parser.fail(URI.java:2809) 
at java.net.URI$Parser.parseAuthority(URI.java:3147) 
at java.net.URI$Parser.parseHierarchical(URI.java:3058) 
at java.net.URI$Parser.parse(URI.java:3014) 
at java.net.URI.<init>(URI.java:578) 
at java.net.URI.create(URI.java:840) 
... 5 more 

답변

3

자격의 URL HDFS로 hdfsHost을 전달하십시오 : //127.0.0.1 : 9000 대신 127.0.0.1:9000

0

바인드 호스트의/etc/hosts 파일의 클라이언트와 서버 모두에서 해당 IP를 사용하는 이름

1

이는 core-site.xml에 hdfs name (fs. 2)의 등록 정보 값에 대해 후행 공백이있는 경우 발생할 수 있습니다. defaultFS).