Пользовательский интерфейс WebHDFS через knox недоступен в кластере высокой доступности HDFS

Я пытаюсь получить доступ к интерфейсу webhdfs через Knox на моем кластере с включенной HDFS HA. Но он всегда указывает только на один узел в HA.

Когда мой Namenode1 активен, а Namenode2 находится в режиме ожидания, WebHDFS доступен. Но когда Namennode2 становится активным и Namenode1 останавливается, WebHDFS недоступна (Здесь Namenode1 не находится в режиме ожидания, я остановил его вручную).

По ошибке похоже, что WebHDFS-запрос идет к master-02, который останавливается вместо перехода к Active Namenode master-03.

Когда я вручную изменяю топологию knox и записываю master-03 в качестве первого URL-адреса в NAMENODE и HDFSUI, Knox начинает указывать на master-03. Поэтому я думаю, что шлюз knox указывает только на первый URL.

    <provider>
<role>ha</role>
<name>HaProvider</name>
<enabled>true</enabled>
<param>
<name>WEBHDFS</name>
<value>maxFailoverAttempts=3;failoverSleep=1000;maxRetryAttempts=300;retrySleep=1000;enabled=true</value>
</param>
<param>
<name>NAMENODE</name>
<value>maxFailoverAttempts=3;failoverSleep=1000;enabled=true</value>
</param>
<param>
<name>HDFSUI</name>
<value>maxFailoverAttempts=3;failoverSleep=1000;enabled=true</value>
</param>
<param>
<name>YARNUI</name>
<value>maxFailoverAttempts=3;failoverSleep=1000;enabled=true</value>
</param>
<param>
<name>RESOURCEMANAGER</name>
<value>maxFailoverAttempts=3;failoverSleep=1000;enabled=true</value>
</param>
<param>
<name>HIVE</name>
<value>maxFailoverAttempts=3;failoverSleep=1000;enabled=true</value>
</param>
<param>
<name>HBASEUI</name>
<value>maxFailoverAttempts=3;failoverSleep=1000;enabled=true</value>
</param>
</provider>

<service>
<role>WEBHDFS</role>
<url>http://master-02:50070/webhdfs/</url>
<url>http://master-03:50070/webhdfs/</url>
</service>
<service>
<role>NAMENODE</role>
<url>hdfs://master-02:8020/</url>
<url>hdfs://master-03:8020/</url>
</service>
<service>
<role>HDFSUI</role>
<url>http://master-02:50070/</url>
<url>http://master-03:50070/</url>
</service>

Ошибка, которую я получаю в логах есть.

2019-03-01 09:01:59,436 WARN hadoop.gateway (DefaultDispatch.java:executeOutboundRequest(147)) - Connection exception dispatching request: http://master-02:50070/dfshealth.html org.apache.http.conn.HttpHostConnectException: Connect to master-02:50070 [master-02/10.100.69.15] failed: Connection refused (Connection refused)
org.apache.http.conn.HttpHostConnectException: Connect to master-02:50070 [master-02/10.100.69.15] failed: Connection refused (Connection refused)
at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:159)
at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:359)
at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:381)

Автоматическое аварийное переключение не происходит.

Кто-нибудь, пожалуйста, помогите мне. Спасибо

0 ответов

Другие вопросы по тегам