参考文章:https://www.cnblogs.com/zourui4271/p/15078435.html
hiveserver1
HiveServer 是一种可选的 Hive 内置服务,可以允许远程客户端使用不同编程语言向 Hive 提交请求并返回结果。HiveServer 是建立在 Apache ThriftTM(http://thrift.apache.org/) 之上的,因此有时会被称为 Thrift Server,这可能会导致我们认知的混乱,因为新服务 HiveServer2 也是建立在 Thrift 之上的。自从引入 HiveServer2 后,HiveServer 也被称为 HiveServer1。
为什么有了 HiveServer,还要引入 HiveServer2 ?主要是因为 HiveServer 有如下的局限性:
-
支持远程客户端连接,但一次只能连接一个客户端,无法处理来自多个客户端的并发请求。这实际上是因为受到 HiveServer 暴露的 Thrift 接口所限制,并且不能通过修改 HiveServer 源代码来解决。
-
没有会话管理的支持。
-
不提供身份验证支持。
从 Hive 1.0.0 版本开始,Hive 发行版中删除了 HiveServer。需要切换到 HiveServer2。
hiveserver2
HiveServer2 是一种能使客户端执行 Hive 查询的服务。HiveServer2 是 HiveServer1 的改进版,HiveServer1 已经被废弃。HiveServer2 对 HiveServer 进行了重写来解决上述问题。
HiveServer2 作为复合服在单个进程中运行,其中包括基于 Thrift 的 Hive 服务(TCP或HTTP)以及用于 Web UI的 Jetty Web 服务。HiveServer2 可以支持多客户端并发和身份认证。旨在为开放API客户端(如JDBC和ODBC)提供更好的支持。