我想访问具有完全限定名称的 hdfs,例如:
hadoop fs -ls hdfs://machine-name:8020/user
我也可以简单地访问 hdfs
hadoop fs -ls /user
但是,我正在编写应该适用于不同发行版(HDP、Cloudera、MapR...等)的测试用例,其中涉及使用限定名称访问 hdfs 文件。
我知道hdfs://machine-name:8020
在 core-site.xml 中定义为fs.default.name
. 但这似乎在不同的发行版上有所不同。例如,hdfs 是 MapR 上的 maprfs。IBM BigInsights甚至没有core-site.xml
.$HADOOP_HOME/conf
hadoop 似乎没有办法告诉我fs.default.name
它的命令行选项定义了什么。
如何fs.default.name
从命令行可靠地获取定义的值?
测试将始终在 namenode 上运行,因此机器名称很容易。但是获取端口号(8020)有点困难。我尝试了 lsof、netstat.. 但仍然找不到可靠的方法。