如何找出hdfs URI - java.io.IOException:不完整的HDFS URI,没有主机



如何找出我的hdfs dfs命令连接到的URI?

是否有任何存储 URI 的配置文件或任何可用于显示它的命令?

我查看了FileSystemShell的文档和dfsadmin文档,但没有成功。(另外,我无法访问大多数 dfsadmin 命令。

当我使用hdfs:///user/myUserName/...调用命令时,它会引发异常:

Exception in thread "main" java.io.IOException: Incomplete HDFS URI, no host: hdfs:///user/myUserName/test.avro
at org.apache.hadoop.hdfs.DistributedFileSystem.initialize(DistributedFileSystem.java:136)
at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2591)
at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:89)
at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:2625)
at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2607)
at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:368)
at org.apache.hadoop.fs.Path.getFileSystem(Path.java:296)
at org.apache.avro.mapred.FsInput.<init>(FsInput.java:38)
at org.apache.avro.tool.Util.openSeekableFromFS(Util.java:110)
at org.apache.avro.tool.DataFileGetSchemaTool.run(DataFileGetSchemaTool.java:47)
at org.apache.avro.tool.Main.run(Main.java:87)
at org.apache.avro.tool.Main.main(Main.java:76)

hdfs dfs -ls这样的简单命令工作正常。

使用 Hadoop 3.1.0。

如果您能够访问文件core-site.xml,则可以查找分配给属性的值fs.defaultFS

$ grep -A 2 defaultFS /etc/hadoop/conf/core-site.xml
<name>fs.defaultFS</name>
<value>hdfs://bigdataserver-2.internal.cloudapp.net:8020</value>
</property>

注意:我使用Cloudera,core-site.xml是我获得详细信息的地方。对于Hadoop,你可能会遇到core-default.xml

看看这个: https://hadoop.apache.org/docs/r2.8.5/hadoop-project-dist/hadoop-common/core-default.xml

最新更新