快速使用HetuEngine访问Hive数据源
操作场景
本章节指导用户从零开始使用HetuEngine对接Hive数据源,并通过HetuEngine查询本集群Hive数据源的数据库表。
前提条件
- 集群已安装HetuEngine、Hive服务及其所依赖的服务(DBService、KrbServer、Zookeeper、HDFS、Yarn、MapReduce)且运行正常。
- 如果集群已启用Kerberos认证(安全模式):
- 需提前创建HetuEngine的用户并授予相关权限,具体操作请参考创建HetuEngine权限角色。
- 需要通过Ranger为该用户配置操作数据源的数据库、表、列的管理权限,具体操作请参考添加HetuEngine的Ranger访问权限策略。
- 已安装集群客户端,例如安装目录为“/opt/client”,以下操作的客户端目录只是举例,请根据实际安装目录修改。
下载并安装集群客户端的具体操作,请参考安装MRS集群客户端。
访问Hive数据源步骤
- 创建并启动HetuEngine计算实例。
- 使用HetuEngine管理员用户登录FusionInsight Manager,选择“集群 > 服务 > HetuEngine”,进入HetuEngine服务页面。
- 在“概览”页签下的“基本信息”区域单击“HSConsole WebUI”后的链接,进入HSConsole界面。
- 选择“计算实例 > 创建配置”。
- 在“基本配置”区域中,选择“所属租户”为用户所关联的租户,配置“实例部署超时时间(秒)”和“实例数量”。
- 根据实际资源规划配置“Coordinator容器资源配置”、“Worker容器资源配置”以及“高级配置”区域相关参数,参数详情可参考创建HetuEngine计算实例章节或保持默认值即可。
- 配置完成后将“立即启动”置为“是”,单击“确定”等待实例配置完成。
- 登录安装有HetuEngine客户端的节点,执行以下命令,切换到客户端安装目录,例如安装目录为“/opt/client”,具体以实际替换。
cd /opt/client - 执行以下命令,配置环境变量。
source bigdata_env
- 认证或指定用户。
- 集群已启用Kerberos认证(安全模式):执行以下命令认证用户
kinit HetuEngine组件操作用户例如:
kinit hetu_test
根据提示输入用户密码,首次登录需重置密码。
- 集群未启用Kerberos认证(普通模式):执行以下命令指定用户
hetu-cli --user HetuEngine组件操作用户例如:
hetu-cli --user hetu_test
- 集群已启用Kerberos认证(安全模式):执行以下命令认证用户
- 执行以下命令,登录数据源的catalog。支持通过使用“--mode”参数来选择通过ZooKeeper连接或HSFabric连接方式登录数据源。
- 通过ZooKeeper连接(不指定“--mode”参数则默认为该方式)
hetu-cli --catalog 数据源名称
例如执行以下命令:
hetu-cli --catalog hive
- 通过HSFabric连接(需确保已安装HSFabric实例)
hetu-cli --mode hsfabric --catalog 数据源名称
例如执行以下命令:
hetu-cli --mode hsfabric --catalog hive
- 本集群的Hive数据源名称默认为“hive”。如需对接集群外部的数据源,可参考添加HetuEngine数据源进行操作,在HSConsole界面配置外部数据源。
- 首次登录客户端需要启动后台HetuEngine集群,大约需等待120秒,可以进入客户端界面。
- 开启租户的严格校验模式:适用于MRS 3.3.0及以后版本
HetuEngine提供服务级默认资源队列配置项,如果没指定租户信息,默认使用Yarn为用户指定的默认租户,可能出现多个用户都默认使用相同的租户队列,从而无法达到资源隔离的效果。
如果用户需要进行资源隔离,将SQL分配给指定的资源队列来执行,来达到资源合理分配的目的时,可通过开启租户的严格校验模式来实现该需求,仅需配置“tenant.strict.mode.enabled”参数为“true”并在使用客户端时添加“--tenant”参数指定租户资源队列即可。
登录Manager,选择“集群 > 服务 > HetuEngine > 配置 > 全部配置”,搜索“tenant.strict.mode.enabled”,将参数的值选为“true”并保存。单击“实例”,勾选配置过期的角色实例,选择“更多 > 重启实例”,根据界面提示重启实例以使配置生效。
- 如果开启了租户的严格校验模式,使用HetuEngine的跨域功能,需要配置HetuEngine数据源的“hsfabric.local.tenant”参数,可参考添加跨集群HetuEngine数据源。
参数说明:
- --mode:(可选)指定登录数据源方式。
- --catalog:(可选)指定的数据源名称。
- --tenant:(可选)指定集群启动的租户资源队列,不指定为租户的默认队列。使用此参数时,业务用户需要具有该租户对应角色的权限。MRS 3.3.0及以后版本是否可选根据如下判断:
- 可选:未启用租户的严格校验模式。
- 必选:启用了租户的严格校验模式。
- --schema:(可选)指定要访问数据源下的schema名称。
- --user:(普通模式下必选)指定要登录客户端执行业务的用户名称,该用户至少需要具有“--tenant”指定队列的相应角色的业务用户,且不能是操作系统用户。
- 其他参数可以执行hetu-cli --help查看。
java -Djava.security.auth.login.config=/opt/client/HetuEngine/hetuserver/conf/jaas.conf -Dzookeeper.sasl.clientconfig=Client -Dzookeeper.auth.type=kerberos -Djava.security.krb5.conf=/opt/client/KrbClient/kerberos/var/krb5kdc/krb5.conf -Djava.util.logging.config.file=/opt/client/HetuEngine/hetuserver/conf/hetuserver-client-logging.properties -jar /opt/client/HetuEngine/hetuserver/jars/hetu-cli-*-executable.jar --catalog hive --deployment-mode on_yarn --server https://10.112.17.189:24002,10.112.17.228:24002,10.112.17.150:24002?serviceDiscoveryMode=zooKeeper&zooKeeperNamespace=hsbroker --krb5-remote-service-name HTTP --krb5-config-path /opt/client/KrbClient/kerberos/var/krb5kdc/krb5.conf hetuengine>
- 通过ZooKeeper连接(不指定“--mode”参数则默认为该方式)
- 执行以下命令,查看数据库信息:
show schemas;
Schema -------------------- default information_schema (2 rows) Query 20230228_064136_00023_9kpap@default@HetuEngine, FINISHED, 3 nodes Splits: 36 total, 36 done (100.00%) 0:02 [2 rows, 35B] [0 rows/s, 15B/s]