Как сбалансировать нагрузку нескольких серверов запросов phoenix за шлюзом Knox?

У меня есть 3 сервера запросов phoenix, работающих за шлюзом knox (скрывая сложность аутентификации kerberos), доступ к которым осуществляется через драйвер Simba 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>


person cmatic    schedule 14.06.2019    source источник


Ответы (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 упоминает этот способ, а также строку подключения зоопарка, но не дает никаких сведений о том, какое решение лучше.

person cmatic    schedule 14.06.2019