HiveServer2 (HS2) is a server interface that enables remote clients to execute queries against hive and retrieve the results. The current thirft RPC based implementation is an improved version of HiveServer that supports multi-client concurrency and authentication. It is designed to provide better support for open API clients like JDBC and ODBC. The thrift IDL is available at https://github.com/apache/hive/blob/trunk/service/if/TCLIService.thrift
https://github.com/apache/hive/blob/trunk/service/if/TCLIService.thrift
This document describes how to setup the server. How to use a client with this server is described in Hive client setup doc .
Introduced in Hive version 0.11. See HIVE-2935. |
Configuration properties in hive-site.xml
hive.server2.thrift.min.worker.threads - Number of minimum worker threads, default 5. |
Optional Environment settings
HIVE_SERVER2_THRIFT_BIND_HOST - optional tcp host interface to bind to. Overrides the config file setting |
$HIVE_HOME/bin/hiveserver2 |
OR
$HIVE_HOME/bin/hive --service hiveserver2 |
HiveServer2 support Anonymous (no auth), Kerberos, pass through LDAP and pluggable custom authentication.
hive.server2.authentication - Authentication mode, default NONE. Options are NONE, KERBEROS, LDAP and CUSTOM |
By default HiveServer2 performs the query processing as the user who submitted the query. If this parameter is set to false, the query would run as user hiveserver2 process runs as.
hive.server2.enable.doAs - Impersonate the connected user, default true |
To prevent memory leak in unsecure mode, disable file system caches, by setting following params to true
fs.hdfs.impl.disable.cache - Disable hdfs filesystem cache, default false |