- HiveServer2 (HS2) is a service that enables clients to execute
queries against Hive. HiveServer2 is the successor to HiveServer1
which has been deprecated. HS2 supports multi-client concurrency and
authentication. It is designed to provide better support for open
API clients like JDBC and ODBC. You can find more details about hiveserver at https://cwiki.apache.org/confluence/display/Hive/HiveServer2+Overview -
Hive Service is nothing but daemon which runs on your client node
which sends requests to Hive Server. -
Thrift is an RPC framework for building cross-platform services. Its
stack consists of 4 layers: Server, Transport, Protocol, and
Processor. You can find more details about the layers at
https://thrift.apache.org/docs/concepts.
Relation between all these:
- The Thrift-based Hive service is the core of HS2 and responsible for
servicing the Hive queries (e.g., from Beeline). In simple terms Hive
server is based on thrift protocols which sends queries from hive
client i.e., your command line interface or from HUE interface to the
underlying data which can be in your HDFS or any other data sources.
Usage:
- When you query any hive tables or database, in background
automatically your requests is transferred between hive service and
hive server - when you want to create your own service or project you can use
thrift protocols which will help you in creating layers, think this
as you are creating your user defined functions using libraries, so
in that case libraries will be thrift.
What is Apache Thrift: It is framework for scalable for cross-language service development.
When we can use Apache Thrift: Developing web-service that uses service developed in one language access that is in another language.
What is HiveServer : It is a service that allows a remote client to submit requests to hive. Using a variety of programming languages, and retrieve results.