Я использую технологию Rack Awareness в HDFS, я могу использовать следующую команду для получения топологии:
hdfs dfsadmin -printTopology
Сегодня, после настройки HDFS Federation и использования viewfs вместо hdfs в качестве файловой системы по умолчанию, например:
<!--
<property>
<name>fs.defaultFS</name>
<value>hdfs://namenode1:9000</value>
</property>
-->
<property>
<name>fs.defaultFS</name>
<value>viewfs:///</value>
</property>
<property>
<name>fs.viewfs.mounttable.default.link./ns1</name>
<value>hdfs://namenode1:9000</value>
</property>
<property>
<name>fs.viewfs.mounttable.default.link./ns2</name>
<value>hdfs://namenode2:9000</value>
</property>
Я получил сообщение об ошибке:
hduser@namenode1:/usr/local/hadoop/etc/hadoop$ hdfs dfsadmin -printTopology
printTopology: FileSystem viewfs:/ is not an HDFS file system
Usage: java DFSAdmin [-printTopology]
Итак, мои вопросы:
Я новичок в кластере HDFS, надеюсь, здесь можно получить совет.
Вы должны использовать новый клиент hadoop и установить core-site.xml следующим образом: property: fs.defaultFS value: hdfs: // ваш активный узел namenode: порт, а не протокол viewfs, тогда вы можете использовать комментарий клиента hdfs