hiveserver2服务
hiveserver2提供JDBC/ODBC接口,使得用户可以远程访问Hive数据,即作为客户端的代理与Hadoop集群进行交互。
hiveserver2部署时需要部署到一个能访问集群的节点上,保证能够直接往Hadoop上提交数据。

用户在客户端提交SQL语句时,由hiveserver请求HDFS或者提交计算任务到Yarn上,再由hiveserver2将结果返回给客户端。
(1)用户说明:
用户即由hiveserver2代理进行远程访问Hadoop集群的用户。
因为Hadoop集群中的数据由访问权限控制,设置了hive.server2.enable.doAs(表示是否启用Hiveserver2用户模拟功能)参数控制访问Hadoop集群的用户身份。
参数value值为true时启用(默认开启),即Hiveserver2会模拟客户端的登录用户访问Hadoop集群;参数value值为fault时,会直接使用Hiveserver2进程的启动用户访问Hadoop集群数据。
未开启用户模拟功能:

因为没启用用户模拟功能,所以在用户登录使用时,都是由Hiveserver2的启动进程的用户与Hadoop集群进行交互。
开启用户模拟功能:

在开启用户模拟时,用户登录,Hiveserver会模拟登录的用户与Hadoop集群进行交互。
在生产环境中要启用用户模拟功能,只有开启用户模拟功能之后才能保证用户的权限隔离。
(2)Hiveserver2部署
(i)Hadoop端配置
hivesever2的模拟用户功能,依赖于Hadoop提供的proxy user(代理用户功能),只有Hadoop中的代理用户才能模拟其他用户的身份访问Hadoop集群。
需要将hiveserver2的启动用户设置为Hadoop的代理用户。
Hadoop中的core-site.xml中添加,之后分发文件并重启集群:
cd HADOOP_HOME/etc/hadoop
vim core-site.xml
#添加以下
<!--配置所有节点(host节点)的liaoyanxia用户都可作为代理用户,value为具体节点的主机-->
<property>
<name>hadoop.proxyuser.liaoyanxia.hosts</name>

Hiveserver2提供JDBC/ODBC接口,允许用户远程通过客户端访问Hadoop集群。它需要部署在可访问集群的节点上,处理客户端提交的SQL语句,与HDFS和Yarn交互。用户模拟功能允许Hiveserver2模拟客户端用户身份访问集群,确保权限隔离。部署Hiveserver2涉及Hadoop和Hive的配置,包括设置代理用户和启动配置。测试连接可通过命令行工具如beeline或图形化客户端如Datagrip进行。

707

被折叠的 条评论
为什么被折叠?



