
# 快速使用HetuEngine访问Hive数据源
#### 操作场景
本章节指导用户从零开始使用HetuEngine对接Hive数据源，并通过HetuEngine查询本集群Hive数据源的数据库表。
#### 前提条件
- 集群已安装HetuEngine、Hive服务及其所依赖的服务（DBService、KrbServer、Zookeeper、HDFS、Yarn、MapReduce）且运行正常。
- 如果集群已启用Kerberos认证（安全模式）：
  - 需提前创建HetuEngine的用户并授予相关权限，具体操作请参考[创建HetuEngine权限角色](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_1714.html)。
  
  - 需要通过Ranger为该用户配置操作数据源的数据库、表、列的管理权限，具体操作请参考[添加HetuEngine的Ranger访问权限策略](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_1862.html)。
   
- 已安装集群客户端，例如安装目录为"/opt/client"。 下载并安装集群客户端的具体操作，请参考[安装MRS集群客户端](https://support.huaweicloud.com/usermanual-mrs/mrs_01_0089.html)。
  
 
#### 访问Hive数据源步骤
1. 创建并启动HetuEngine计算实例。 
   1. 使用HetuEngine管理员用户登录MRS集群Manager。 登录集群Manager具体操作，请参考[访问MRS集群Manager](https://support.huaweicloud.com/usermanual-mrs/mrs_01_0128.html)。
      
   
   2. 选择"集群 \> 服务 \> HetuEngine"，进入HetuEngine服务页面。
   
   3. 在"概览"页签下的"基本信息"区域单击"HSConsole WebUI"后的链接，进入HSConsole界面。
   
   4. 选择"计算实例 \> 创建配置"。
      1. 在"基本配置"区域中，选择"所属租户"为用户所关联的租户，配置"实例部署超时时间(秒)"和"实例数量"。
      
      2. 根据实际资源规划配置"Coordinator容器资源配置"、"Worker容器资源配置"以及"高级配置"区域相关参数，参数详情可参考[创建HetuEngine计算实例](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_1731.html)章节或保持默认值即可。默认配置只申请极少量的资源，仅供基本功能测试。用户需要根据实际业务需求和可用资源进行参数配置，可参考[配置HetuEngine资源组](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_1732.html)和[配置HetuEngine Worker节点数量](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_2320.html)。
      
      3. 参数配置完成后将"立即启动"置为"是"，单击"确定"等待实例配置完成。
       
   
   
   
   
2. 登录安装有HetuEngine客户端的节点，执行以下命令，切换到客户端安装目录，例如安装目录为"/opt/client"，具体以实际替换。 
   ```
   cd /opt/client
   ```
   
   
3. 执行以下命令，配置环境变量。 
   ```
   source bigdata_env
   ```
   
   
4. 认证或指定用户。 
   - 集群已启用Kerberos认证（安全模式）时，执行以下命令认证用户：
     ```
     kinit HetuEngine组件操作用户
     ```
     例如：
     ```
     kinit hetu_test
     ```
     根据提示输入用户密码，首次登录需重置密码。
     
   
   - 集群未启用Kerberos认证（普通模式）时执行以下命令指定用户：
     ```
     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
     ```
     
   
   
   ![](https://support.huaweicloud.com/cmpntguide-lts-mrs/public_sys-resources/note_3.0-zh-cn.png)
   - 本集群的Hive数据源名称默认为"hive"。如需对接集群外部的数据源，可参考[添加HetuEngine数据源](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_2314.html)进行操作，在HSConsole界面配置外部数据源。
   
   - 首次登录客户端需要启动后台HetuEngine集群，大约需等待120秒，可以进入客户端界面。
   
   
   
   - 开启租户的严格校验模式：适用于MRS 3.3.0-LTS及之后版本 HetuEngine提供服务级默认资源队列配置项，如果没指定租户信息，默认使用Yarn为用户指定的默认租户，可能出现多个用户都默认使用相同的租户队列，从而无法达到资源隔离的效果。
     如果用户需要进行资源隔离，将SQL分配给指定的资源队列来执行，来达到资源合理分配的目的时，可通过开启租户的严格校验模式来实现该需求，仅需配置"tenant.strict.mode.enabled"参数为"true"并在使用客户端时添加"--tenant"参数指定租户资源队列即可。
     登录MRS集群Manager，具体操作请参考[访问MRS集群Manager](https://support.huaweicloud.com/usermanual-mrs/mrs_01_0128.html)。选择"集群 \> 服务 \> HetuEngine \> 配置 \> 全部配置"，搜索"tenant.strict.mode.enabled"，将参数的值选为"true"并保存。单击"实例"，勾选配置过期的角色实例，选择"更多 \> 重启实例"，根据界面提示重启实例以使配置生效。
     
   
   
   
   - 如果开启了租户的严格校验模式，使用HetuEngine的跨域功能，需要配置HetuEngine数据源的"hsfabric.local.tenant"参数，可参考[添加跨集群HetuEngine数据源](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_1719.html)。
   
   
   **本章节参数说明：**
   - **--mode**：（可选）指定登录数据源方式。
   
   - **--catalog**：（可选）指定的数据源名称。
   
   - **--tenant** ：（可选）指定集群启动的租户资源队列，不指定为租户的默认队列。使用此参数时，业务用户需要具有该租户对应角色的权限。MRS 3.3.0及以后版本是否可选根据如下判断：
     - 可选：未启用租户的严格校验模式。
     
     - 必选：启用了租户的严格校验模式。
      
   
   - **--schema**：（可选）指定要访问数据源下的schema名称。
   
   - **--user**：（集群未启用Kerberos认证（普通模式）时必选）指定要登录客户端执行业务的用户名称，该用户至少需要具有"--tenant"指定队列的相应角色的业务用户，且不能是操作系统用户。
   
   - 其他参数可以执行**hetu-cli --help**查看。
    
   
   
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]
   ```
   
   
 
