gpt4 book ai didi

hadoop - 查找 HDFS 监听的端口号

转载 作者:可可西里 更新时间:2023-11-01 14:07:35 26 4
gpt4 key购买 nike

我想访问具有完全限定名称的 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 在 $HADOOP_HOME/conf 中甚至没有 core-site.xml

hadoop 似乎没有办法通过它的命令行选项告诉我 fs.default.name 中定义了什么。

如何从命令行可靠地获取 fs.default.name 中定义的值?

测试将始终在名称节点上运行,因此机器名称很容易。但是获取端口号(8020)有点困难。我尝试了 lsof、netstat.. 但仍然找不到可靠的方法。

最佳答案

以下命令在 Apache hadoop 2.7.0 及更高版本中可用,可用于获取 hadoop 配置属性的值。 fs.default.name 在 hadoop 2.0 中被弃用,fs.defaultFS 是更新后的值。不确定这是否适用于 maprfs。

hdfs getconf -confKey fs.defaultFS  # ( new property ) 


hdfs getconf -confKey fs.default.name    # ( old property ) 

不确定在 Mapr 或 hadoop 0.20 hadoop 版本中是否有任何命令行实用程序可用于检索配置属性值。在这种情况下,您最好在 Java 中尝试相同的方法来检索与配置属性对应的值。

Configuration hadoop conf = Configuration.getConf();
System.out.println(conf.get("fs.default.name"));

关于hadoop - 查找 HDFS 监听的端口号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26216876/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com