Hive Server2 介绍
什么是HiveServer2?
官网解释:HiveServer2(HS2)是一个服务端接口,使远程客户端可以执行对Hive的查询并返回结果。目前基于Thrift RPC的实现是HiveServer的改进版本,并支持多客户端并发和身份验证。
身份验证参数:
hive.server2.authentication
- NONE: 不进行身份验证检查-普通的SASL传输。任何登录者都拥有超级权限,可以对hive进行任意操作。
- LDAP: 基于LDAP/AD身份认证。
- KERBEROS: Kerberos/GSSAPI 认证。
- CUSTOM: 自定义身份验证提供程序(与hive.server2.custom.authentication.class一起使用)
- PAM: 可插拔认证模块。
- NOSASL: 原始传输。需要任意一个用户名,不需要密码,不填写或者填写错误用户名会导致报错。
通过 HiveServer2 就可以使用 JDBC / ODBC 方式来远程连接 Hive 服务,Hive 本质是一个客户端,将 SQL 语法翻译为 MR 或者 Spark 提交到 Yarn,读取 HDFS 文件,将 SQL 语句对应的查询结果输出到文件中。然后发往客户端的过程。
我们知道 HDFS 中的文件都是有权限的,当我们使用不同的角色,访问 HDFS 时,权限粒度也是不一样的。
HiveServer2 作为一个中间代理的服务,提供了两种不同的模式来作为真正访问 HDFS 的角色。
hive.server2.enable.doAs
为 true 的时候,表示 hiveServer2 会以提交用户的身份去执行语句。hive.server2.enable.doAs
为 false 的时候,表示使用启动 Hive Server2 进程的用户角色访问 HDFS