更新时间:2024-07-24 GMT+08:00

快速使用HetuEngine访问Hive数据源

本章节指导用户从零开始使用HetuEngine对接Hive数据源,并通过HetuEngine查询本集群Hive数据源的数据库表。

前提条件

  • 集群已安装HetuEngine、Hive服务及其所依赖的服务(DBService、KrbServer、Zookeeper、HDFS、Yarn、MapReduce)且运行正常。
  • 如集群已启用Kerberos认证,需提前创建HetuEngine的用户并授予相关权限,具体操作请参见创建HetuEngine权限角色。且需要通过Ranger为该用户配置操作数据源的数据库、表、列的管理权限,具体操作请参考添加HetuEngine的Ranger访问权限策略
  • 已安装集群客户端,例如安装目录为“/opt/client”。

访问Hive数据源步骤

  1. 创建并启动HetuEngine计算实例。

    1. 使用HetuEngine管理员用户登录FusionInsight Manager,选择“集群 > 服务 > HetuEngine”,进入HetuEngine服务页面。
    2. 在概览页签下的“基本信息”区域单击“HSConsole WebUI”后的链接,进入HSConsole界面。
    3. 选择“计算实例 > 创建配置”。
      1. 在“基本配置”区域中,选择“所属租户”为用户所关联的租户,配置“实例部署超时时间(秒)”和“实例数量”。
      2. 根据实际资源规划配置“Coordinator容器资源配置”、“Worker容器资源配置”以及“高级配置”区域相关参数,参数详情可参考创建HetuEngine计算实例章节或保持默认值即可。

        创建计算实例时的默认配置只申请极少量的资源,仅供基本功能测试。用户需要根据实际业务需求和可用资源进行参数配置,可参考配置HetuEngine资源组配置HetuEngine Worker节点数量

      3. 配置完成后将“立即启动”置为“是”,单击“确定”等待实例配置完成。

  2. 登录安装有HetuEngine客户端的节点,执行以下命令,切换到客户端安装目录。

    cd /opt/client

  3. 执行以下命令,配置环境变量。

    source bigdata_env

  4. 认证或指定用户。

    • 安全模式集群:执行以下命令认证用户

      kinit HetuEngine组件操作用户

      例如:

      kinit hetu_test

      根据提示输入用户密码,首次登录需重置密码。

    • 普通模式集群:执行以下命令指定用户

      hetu-cli --user HetuEngine组件操作用户

      例如:

      hetu-cli --user hetu_test

  5. 执行以下命令,登录数据源的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> 

  6. 执行以下命令,查看数据库信息:

    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]