[
https://issues.apache.org/jira/browse/PHOENIX-5963?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Istvan Toth updated PHOENIX-5963:
---------------------------------
Description:
The load-balancer does not work with the current PQS assembly, due to
dependency (and script problems)
The proposal below would - hopefully - make it feasible to re-introduce and
support it as an optional dependecy for PQS:
As for the load-balancer, you are right that this setup doesn't allow for a
working load-balancer. However, it wouldn't work even if the load-balancer jar
was included in the classpath. The load-balancer depends on (unshaded)
zookeeper, and unshaded zookeeper is generally not available on the PQS
classpath anyway (it may have been available in some old phoenix-client
version, but currently both master and 4.x shades it).
Loading the load-balancer as an external service is nice in theory, but since
it's compiled separately from phoenix-client, the dependency conflicts that it
introduces are hard to solve.
If I were to do it, I'd:
* Refactor/Simplify loadbalancer, so that doesn't need Hadoop and Hbase deps
** Pass the Hbase Config object as in Iterable to registerServer
** Ditch the config singleton/cache, it is not useful in this context
** Preferably ditch Curator as well
* create a shaded loadbalancer jar with ZK (and curator) shaded into it
* Then prepare the PQS startup script for it, and document how to add this to
PQS as an optional dependency
was:
The load-balancer does not work with the current PQS assembly, due to
dependency (and script problems)
The proposal below would -hopefully- make it feasible to re-introduce and
support it as an optional dependecy for PQS:
As for the load-balancer, you are right that this setup doesn't allow for a
working load-balancer. However, it wouldn't work even if the load-balancer jar
was included in the classpath. The load-balancer depends on (unshaded)
zookeeper, and unshaded zookeeper is generally not available on the PQS
classpath anyway (it may have been available in some old phoenix-client
version, but currently both master and 4.x shades it).
Loading the load-balancer as an external service is nice in theory, but since
it's compiled separately from phoenix-client, the dependency conflicts that it
introduces are hard to solve.
If I were to do it, I'd:
* Refactor/Simplify loadbalancer, so that doesn't need Hadoop and Hbase deps
** Pass the Hbase Config object as in Iterable to registerServer
** Ditch the config singleton/cache, it is not useful in this context
** Preferably ditch Curator as well
* create a shaded loadbalancer jar with ZK (and curator) shaded into it
* Then prepare the PQS startup script for it, and document how to add this to
PQS as an optional dependency
> Enable loadbalancer for standalone PQS assembly
> -----------------------------------------------
>
> Key: PHOENIX-5963
> URL: https://issues.apache.org/jira/browse/PHOENIX-5963
> Project: Phoenix
> Issue Type: Bug
> Components: queryserver
> Affects Versions: queryserver-1.0.0
> Reporter: Istvan Toth
> Priority: Major
>
> The load-balancer does not work with the current PQS assembly, due to
> dependency (and script problems)
> The proposal below would - hopefully - make it feasible to re-introduce and
> support it as an optional dependecy for PQS:
>
> As for the load-balancer, you are right that this setup doesn't allow for a
> working load-balancer. However, it wouldn't work even if the load-balancer
> jar was included in the classpath. The load-balancer depends on (unshaded)
> zookeeper, and unshaded zookeeper is generally not available on the PQS
> classpath anyway (it may have been available in some old phoenix-client
> version, but currently both master and 4.x shades it).
> Loading the load-balancer as an external service is nice in theory, but since
> it's compiled separately from phoenix-client, the dependency conflicts that
> it introduces are hard to solve.
> If I were to do it, I'd:
> * Refactor/Simplify loadbalancer, so that doesn't need Hadoop and Hbase deps
> ** Pass the Hbase Config object as in Iterable to registerServer
> ** Ditch the config singleton/cache, it is not useful in this context
> ** Preferably ditch Curator as well
> * create a shaded loadbalancer jar with ZK (and curator) shaded into it
> * Then prepare the PQS startup script for it, and document how to add this
> to PQS as an optional dependency
--
This message was sent by Atlassian Jira
(v8.3.4#803005)