Я учусь Hadoop-2.9.2
, особенно на namenode HA.
В первый раз при настройке кластера я помещаю dfs.namenode.secondary.http-address
в hdfs-site.xml
, и он работает правильно.
Послечитая this , я обнаружил, что нет необходимости во вторичном namenode под Hadoop HA.
Обратите внимание, что в кластере HA StandName NameNode также выполняет контрольные точки состояния пространства имени, следовательно, нет необходимости запускать вторичный NameNode, CheckpointNode или BackupNode в кластере высокой доступности.На самом деле, сделать это было бы ошибкой.Это также позволяет тому, кто реконфигурирует кластер HDFS без поддержки HA, включить HA, чтобы повторно использовать оборудование, которое ранее было выделено для Secondary NameNode.
наконец, я удалил dfs.namenode.secondary.http-address
из hdfs.site.xml и перезапустил кластер, но secondarynamenode
на 0.0.0.0
все еще там.
вот мой hdfs-site.xml ниже.
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/hadoop/data/nameNode</value>
<name>dfs.datanode.data.dir</name>
<value>/home/hadoop/data/datanode</value>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
hdfs
Команда показывает мне то же, что и ниже.
$ hdfs getconf -secondarynamenodes
18/12/21 00:35:43 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
0.0.0.0
Я гарантирую, что все файлы конфигурации синхронизированы по всем узлам.
Согласно моему пониманию, мне нужно получить значение secondarynamenode
до того, каквход в настройку HA.
Если я не ошибаюсь, как я могу справиться с этим?
Я знаю, что могу сделать hadoop-daemon.sh stop secondarynamenode
, но я не хочу, чтобы это началосьв start-dfs.sh
.