hdfs dfs -ls в удаленной файловой системе с несколькими именными узлами? - PullRequest
0 голосов
/ 20 февраля 2020

У нас есть два наменода: nnA и nnB.

Из удаленной системы я хочу просмотреть файлы и каталоги этой системы.

Если nnA является основным namenode, я могу сделать hdfs dfs -Dfs.defaultFS = hdfs: // nnA -ls / path / to / files Если nnB является основным namenode, я могу сделать hdfs dfs -Dfs.defaultFS = hdfs: // nnB -ls / path / to / files

Обе эти команды работают нормально, если используемый мной наменод в то время является основным. Если выбранный мной наменод оказывается вторым наменодом, я получаю ошибку Operation category READ is not supported in state standby.

Я хочу указать оба наменода в моей команде. Из удаленной системы у меня нет возможности узнать, какой наменод является первичным, а какой - вторичным, и они вполне могут время от времени переключаться.

Это сценарий, над которым я работаю и очень хочу чтобы не зацикливаться на возможных первичных наменодах в любое время, когда я звоню в hdfs.

Я потратил целый день на поиск в Google и не нашел решения или кого-либо еще с этим вариантом использования

1 Ответ

1 голос
/ 21 февраля 2020

Из удаленной системы у меня нет возможности узнать, какой наменод является первичным, а какой вторичным

Во-первых, «вторичный наменоде» на самом деле что-то означает, и кажется, что вы вместо этого означало standby namenode, в зависимости от полученной ошибки.

Вам необходимо обратиться к dfs.nameservices в вашем $HADOOP_CONF_DIR/hdfs-site.xml, тогда вы можете использовать hdfs dfs -ls hdfs://nameservice/path

Related - Любая команда для активации наменоде для службы имен в имел oop?

...