我正在尝试连接到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
答案 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文件中的客户端和服务器中绑定