确定哪个默认名称节点和 namenode_port "hadoop fs -ls" 正在使用

determine which default namenode and namenode_port "hadoop fs -ls" is using

我是运行以下命令:

hadoop fs -ls 

我知道这个命令确实对应于如下内容:

hadoop fs -ls hdfs://<namenode>:<namenode_port>

如何确定 namenodenamenode_port 的这些值?

我已经尝试检查环境变量并查看文档,但我找不到任何东西可以做到这一点。

您需要参考 hadoop 配置文件 core-site.xml 以获得 <namenode><namenode_port> 值。搜索配置 属性 fs.defaultFS(最新)或 fs.default.name(已删除)。

core-site.xml 文件可以位于 /etc/hadoop/conf$HADOOP_HOME/etc/hadoop/conf 位置。

编辑

有一种动态的方法可以做到这一点。下面的 hadoop 命令将给出 HDFS URI。

hdfs getconf -confKey "fs.defaultFS"

但是,每次执行 hadoop 命令时,hadoop 都会加载客户端配置 xml 文件。如果您想对此进行测试,请通过将 /etc/hadoop/conf 的内容复制到新目录(假设 /home//hadoop-conf,它应该包含 core-site.xml 来在其他一些目录中创建单独的客户端配置, hdfs-site.xml, mapred-site.xml), 使用命令 export HADOOP_CONF_DIR=/home/<USER>/hadoop-conf 覆盖环境变量,更新 core-site.xml 文件,然后使用 hadoop 命令进行测试。请记住,这仅用于测试目的,一旦完成测试,请取消设置环境变量 (unset HADOOP_CONF_DIR)。