Reference: HDP Hive Performance Tuning Guide published on 8/29/2016
Section 3.6.1 states that for multiple workloads or applications, using multiple HiveServer2 instances is recommended. Section 3.6.2 states that for HDP 2.3 and later, a single interactive queue is recommended. How these two recommendations play together if an organization wants to separate resources allocated for different workloads, but still take advantage of LLAP when appropriate? Even one of the workloads is classified as ETL and we can assume that it will be plain Hive over Tez, for some queries could still benefit from LLAP without impacting other users that run most of the time queries that are best fit for LLAP? Many organizations like to provide different SLAs and also have different sponsors of resource queues and would like to not mix them up but still benefit from LLAP speed for some queries.
Any suggestion on how to address these enterprise requirements?
In HDP 2.5 and 2.6, Hive server interactive and HiveServer2 are configured as two separate services, where HS2 retains all the same functionality as before, but HSI has some limitations (e.g. it doesn't support HA). Tthis may change in HDP 3.0, esp. limitation-wise. HSI requires one to allocate some fraction of the cluster to interactive queries, for LLAP, i.e. the permanently active daemons that will execute interactive workloads. This knob controls the balance between interactive and other queries. In HDP 2.5 and 2.6.0, we do not enforce the usage of HSI, so one can in theory use it for ETL queries too, but that is not recommended; we may also block non-LLAP Tez queries from it in future.
The general recommendation is thus to divide the cluster into the interactive and non-interactive portion, run interactive queries via the single HSI, and run other queries via HS2 using the old recommendations. Many queries that are not interactive per se (even the ETL queries), however, can benefit from LLAP; so it is also recommended to try running queries on LLAP first before consigning them to the non-interactive cluster.