索引为7的权限中的非法字符:hdfs:// localhost:9000 with hadoop

时间:2011-12-16 01:30:56

标签: exception hadoop hdfs

我正在尝试连接到hdfs。

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 个答案:

答案 0 :(得分:3)

尝试将hdfsHost作为合格的网址传递hdfs://127.0.0.1:9000而不是127.0.0.1:9000

答案 1 :(得分:2)

如果core-site.xml中的尾随空格与hdfs名称(fs.defaultFS)的属性值相对应,则会发生这种情况。

答案 2 :(得分:0)

在两个服务器中绑定主机名和相应的ip,即在/ etc / hosts文件中的客户端和服务器中绑定