Как сбалансировать нагрузку на несколько серверов запросов Phoenix за шлюзом Knox?
У меня есть 3 сервера запросов phoenix, работающие за шлюзом knox (скрывающим сложность аутентификации kerberos), доступ к которому осуществляется через драйвер odbc Симбы. Мне удается подключиться к одному серверу запросов Phoenix и запустить запросы с помощью knox, напрямую сопоставив в файле топологии службу avatica с внутренним IP-адресом и портом одного сервера запросов Phoenix во внутренней сети. Я хотел бы, чтобы knox имел произвольный доступ к любому из моих серверов запросов 3 phoenix, а не к одному. Знаете ли вы, могу ли я достичь этого с помощью zookeeper и как я могу настроить его для этого?
Я уже пытался сделать некоторую балансировку нагрузки, делая топологию knox, указывающую на обратный прокси-сервер nginx, устанавливая в качестве восходящего потока мои 3 PQS, но у меня ошибка 401, аналогично мои учетные данные были переданы через прокси
мой файл odbc.ini:
[phoenixovh]
Driver=/opt/hortonworks/phoenixodbc/lib/64/libphoenixodbc_sb64.so
Host=knox.<clusterid>.datalake.ovh
Port=443
AuthMech=2
UID=<user>
PWD=<password>
LogLevel=0
ConnectionSyncInterval=120
SSL=1
HttpPath=gateway/default/avatica
TransportMode=http
часть моего файла топологии knox (работает для 1 PQS) (default.xml)
<service>
<role>AVATICA</role>
<url> internal_address__and_port_of_url_of_one_pqs</url>
</service>
1 ответ
Наконец-то мне удалось получить 3 PQS, следуя указаниям ноу-ха ( https://cwiki.apache.org/confluence/display/KNOX/Dynamic+HA+Provider+Configuration), добавив в файл топологии раздел провайдера ha и предоставление 3 URL в конфигурации сервиса вместо одного:
<provider>
<role>ha</role>
<name>HaProvider</name>
<enabled>true</enabled>
<param>
<name>AVATICA</name>
<value>maxFailoverAttempts=3;failoverSleep=1000;maxRetryAttempts=300;retrySleep=1000;enabled=true</value>
</param>
</provider>
</gateway>
...
<service>
<role>AVATICA</role>
<url>internal url of PQS1</url>
<url>internal url of PQS2</url>
<url>internal url of PQS3</url>
</service>
В руководстве Knox упоминается этот путь, а также строка подключения zookeeper, но не дается никакой информации о том, какое решение лучше.