我们有两个名称节点:nnA和nnB。
从一个远程系统,我想看看这个系统的文件和目录。
如果nnA是主要名称节点,我可以执行hdfs-dfs.defaultFS=hdfs://nnA-ls/path/to/files如果nnB是主要名称节点,我可以执行hdfs-dfs.defaultFS=hdfs://nnB-ls/path/to/files
如果我使用的名称节点恰好是当时的主节点,那么这两个命令都可以正常工作。如果我选择使用的名称节点恰好是次要名称节点,我会收到错误Operation category READ is not supported in state standby.
我希望能够在命令中指定两个名称节点。从远程系统中,我无法知道哪个名称节点是主要节点,哪个是次要节点,它们完全有可能偶尔切换。
这是我正在编写的一个脚本,我真的想避免在任何时候调用hdfs时循环通过可能的主名称节点。
我花了一整天的时间在谷歌上搜索,还没有找到这个用例的解决方案或其他任何人
从远程系统我无法知道哪个名称节点是主,哪个是辅助
首先,"secondary namenode"实际上意味着什么,根据您得到的错误,您似乎是指备用名称节点。
您需要参考$HADOOP_CONF_DIR/hdfs-site.xml
中的dfs.nameservices
,然后才能使用hdfs dfs -ls hdfs://nameservice/path
Related-有任何命令可以在hadoop中为nameservice获取活动的namenode吗?