配置Hive访问跨集群的HBase数据
操作场景
Hive on HBase即是允许用户通过Hive的SQL接口查询和操作存储在HBase中的数据,将HBase的高效存储和实时读写能力与Hive的SQL查询能力相结合,提供了一种灵活且高效的数据处理方式。
Hive支持访问和处理存储在同一集群内的HBase中的数据,也支持访问和处理跨集群互信中的HBase数据。即在两个开启Kerberos认证的互信集群中,使用Hive集群操作HBase集群,将目的端HBase集群的HBase关键配置项配置到源端Hive集群的HiveServer中。
前提条件
两个开启Kerberos认证的安全集群已完成跨集群互信配置,具体操作请参见配置MRS集群间互信。
跨集群配置Hive on HBase
- 下载HBase配置文件到本地,并解压。
- 登录目的端HBase集群的Manager界面,选择“集群 > 服务 > HBase”。
- 选择“更多 > 下载客户端”。 图1 下载HBase客户端
- 在下载客户端页面,客户端类型选择“仅配置文件”,单击“确定”下载HBase配置文件到本地。 图2 下载HBase配置文件
- 登录源端Hive集群的Manager。
- 选择“集群 > 服务 > Hive > 配置 > 全部配置”进入Hive服务配置页面,选择“HiveServer(角色) > 自定义”修改HiveServer角色的“hive-site.xml”自定义配置文件,增加HBase配置文件的如下配置项。
可从已下载的HBase客户端配置文件的“hbase-site.xml”文件中,搜索并添加如下配置项及其取值到HiveServer中。
例如,客户端配置文件压缩包为“FusionInsight_Cluster_1_HBase_Client.tar”,解压后得到“FusionInsight_Cluster_1_HBase_ClientConfig_ConfigFiles.tar”,继续解压该文件,最后进入客户端配置文件解压路径的“HBase\config”下,获取到“hbase-site.xml”文件。
表1 Hive on HBase配置参数 参数名称
参数描述
hbase.security.authentication
用于设置HBase所在集群的安全认证方式。
- kerberos:表示集群启用了Kerberos认证。
- simple:表示集群未启用Kerberos认证。
hbase.security.authorization
用于设置HBase是否启用鉴权功能。
- true:HBase会启用基于角色或权限的访问控制,以确保用户或应用程序只能访问其被授权的表或数据。
- false:HBase不会执行权限检查,所有用户都可以访问所有HBase表和数据。
hbase.zookeeper.property.clientPort
用于指定HBase集群与Zookeeper集群之间通信所使用的客户端端口号,即HBase客户端连接Zookeeper服务时使用的端口。
hbase.zookeeper.quorum
用于指定HBase集群连接的Zookeeper服务的地址列表,域名需要转换为IP地址。
hbase.regionserver.kerberos.principal
访问HBase RegionServer的keytab文件对应的principal。
hbase.master.kerberos.principal
访问HBase HMaster的keytab文件对应的principal。
图3 HiveServer角色的自定义配置
- 修改参数配置后,单击“保存”,根据界面提示操作后,等待配置保存成功。
MRS 3.6.0-LTS及之后版本,该参数动态生效,不需要重启Hive服务。
- MRS 3.6.0-LTS之前版本,Hive服务端配置更新后,如果“配置状态”为“配置过期”,则需重启组件以使配置生效。 图4 修改Hive配置
在Hive服务概览页面,选择“更多 > 重启服务/滚动重启服务”,验证管理员密码后,等待服务重启成功。
组件重启期间将无法对外提供服务,可能会影响集群的上层业务正常运行,请在业务空闲期或确认操作无影响后再执行本操作。