Как сбалансировать нагрузку на несколько серверов запросов Phoenix за шлюзом Knox? - PullRequest
0 голосов
/ 14 июня 2019

У меня есть 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 Ответ

1 голос
/ 14 июня 2019

Мне, наконец, удалось получить 3 PQS, следуя указаниям ноу ха (https://cwiki.apache.org/confluence/display/KNOX/Dynamic+HA+Provider+Configuration),, добавив в свой файл топологии раздел провайдера ха и указав 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, но не дает никакой информации о том, какое решение лучше.

...