Пользовательский интерфейс WebHDFS через knox недоступен в кластере высокой доступности HDFS - PullRequest
0 голосов
/ 02 апреля 2019

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

Когда мой Namenode1 активен, а Namenode2 находится в StandbyState, 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)

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

НиктоПомогите мне, пожалуйста.Спасибо

...