我正在尝试连接到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
最佳答案
尝试将hdfsHost作为合格的URL hdfs://127.0.0.1:9000而不是127.0.0.1:9000传递
关于exception - 索引7处权限中的非法字符:hdfs://localhost:9000,具有hadoop,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8528827/