Невозможно преобразовать HDFS из не-HA в HA
Вступление
Цель: конвертировать HDFS из не-HA в HA.
Метод: в соответствии с этой документацией должна быть возможность конвертировать HFDS из не-HA, реализуя следующую конфигурацию:
/etc/hadoop/conf/hdfs-site.xml
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
/etc/hadoop/conf/core-site.xml
<property>
<name>ha.zookeeper.quorum</name>
<value>localhost:2181</value>
</property>
и выполнить следующие команды:
sudo service hadoop-hdfs-journalnode start
sudo service hadoop-hdfs-zkfc start
hdfs namenode -initializeSharedEdits
sudo -u hdfs hdfs namenode -bootstrapStandby
sudo service hadoop-hdfs-namenode start
Результаты:
14/06/09 15:37:15 FATAL namenode.NameNode: Exception in namenode join
java.io.IOException: org.apache.hadoop.HadoopIllegalArgumentException: HA is not enabled for this namenode.
at org.apache.hadoop.hdfs.server.namenode.ha.BootstrapStandby.run(BootstrapStandby.java:310)
at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1154)
at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1241)
Caused by: org.apache.hadoop.HadoopIllegalArgumentException: HA is not enabled for this namenode.
at org.apache.hadoop.hdfs.server.namenode.ha.BootstrapStandby.parseConfAndFindOtherNN(BootstrapStandby.java:261)
at org.apache.hadoop.hdfs.server.namenode.ha.BootstrapStandby.run(BootstrapStandby.java:92)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:84)
at org.apache.hadoop.hdfs.server.namenode.ha.BootstrapStandby.run(BootstrapStandby.java:305)
... 2 more
14/06/09 15:37:15 INFO util.ExitUtil: Exiting with status 1
14/06/09 15:37:15 INFO namenode.NameNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at localhost/127.0.0.1
************************************************************/
Вопрос
Как преобразовать HDFS из не-HA в HA?
2 ответа
После применения конфигурации (см. Раздел "Подробности конфигурации"), определенной в данной документации, проблема HA is not enabled for this namenode
было решено
<property>
<name>dfs.namenode.rpc-address.mycluster.nn1</name>
<value>machine1.example.com:8020</value>
</property>
<property>
<name>dfs.namenode.rpc-address.mycluster.nn2</name>
<value>machine2.example.com:8020</value>
</property>
Применение других параметров конфигурации соответственно к ActiveNN и StandyNN преобразовало HDFS из не-HA в HA.
Для меня ошибка HA is not enabled for this namenode
была исправлена, когда я исправил файл конфигурации hdfs-site.xml, где я ошибочно упомянул 3 namenode-id для одного nameservice-id.
При конфигурации принимает только 2 namenode-идентификатора.