HWI 与 Hive 中 "HiveServer" 的区别

Difference Between HWI and "HiveServer" in Hive

这些天我正在使用 Apache Hive,下面的事情让我很困惑 -

  1. 有一个 Hive Web 界面 (hive --service hwi),它侦听端口(默认 9999)并允许客户端提交查询并稍后返回设施、授权等.

  2. 还有一个HiveServer(hive --service HiveServer),它运行一个服务器,允许远程客户端连接和提交Hive查询,也受授权保护等

它们有什么不同? (或者他们不是)?如果它们不同,但提供相同类型的功能,那么有什么不同?

还有一个 HiveServer2 和一个 Thrift 服务器,不确定但我认为是对 HiveServer 的改进?

有人可以谈谈它们并澄清一下,它们的独特之处是什么以及它们解决的更大问题是什么?

此致,

(*维普尔)();

HWI

Hive 的 HWI (HiveWebInterface) 是使用 Hive 命令行界面的替代方法。它提供了以下功能:

  • 架构浏览
  • 分离查询执行
  • 管理会话
  • 没有本地安装

HiveServer

另一方面,HiveServer 允许远程客户端使用 Thrift's various programming language 绑定向 Hive 提交请求。由于 HiveServer 使用 Thrift,所以有时也称为 ThriftServer。

HiveServer v1 无法处理来自多个客户端的并发请求,这一限制在 HiveServer v2 中得到解决,它允许与客户端的多个并发连接。 HiveServer2 还提供:

  • 使用 Kerberos 和 LDAP 进行身份验证
  • SSL 加密
  • PAM

HiveServer2 提供了各种client interfaces,例如:

  • 直线命令行shell
  • JDBC
  • Python & Ruby 客户

HiveServer2 JDBC 驱动程序可用于连接到 BI 工具,如 Tableau、Talend 等,以执行 ETL。