更新时间:2024-11-29 GMT+08:00

配置共部署Hive数据源

操作场景

本章节指导用户在HSConsole界面配置与HetuEngine在一个Hadoop集群的Hive类型数据源。

  • HetuEngine目前支持对接的数据格式包括:avro、text、rctext、orc、parquet、sequencefile。
  • HetuEngine对接Hive数据源,不支持指定多分隔符建表,但对于在Hive数据源中指定MultiDelimitSerDe类作为序列化类来创建text数据格式的多分隔符表,可以通过HetuEngine查询,其他场景不支持。
  • HetuEngine对接的Hive数据源支持Hudi表重定向功能。该功能支持在Hive connector访问Hudi表时重定向到Hudi connector,从而使用Hudi connector高级功能。使用该功能需提前配置目标Hudi数据源,并确保Hudi数据源与当前Hive数据源的Metastore URL一致,并在Hive数据源中配置“开启Hudi重定向”参数即可。

HetuEngine服务在安装时已经将共部署的Hive数据源默认实现对接,数据源名称为“hive”,不可删除。部分默认配置不可修改,如数据源名称,数据源类型,服务端Principal,客户端Principal等。但当环境配置发生变化时,如修改了本集群的“本端域”域名,重启HetuEngine服务可以自动同步共部署Hive数据源的相关配置,如服务端Principal,客户端Principal。

前提条件

  • 已创建HetuEngine计算实例。
  • 若需要使用Hive Metastore隔离功能,需要在Hive侧配置“HIVE_METASTORE_URI_HETU”,配置完成后需要重启HetuEngine服务的HSBroke实例,刷新Hive Metastore URI信息。

操作步骤

  1. 使用HetuEngine管理员用户登录Manager,选择“集群 > 服务 > HetuEngine”,进入HetuEngine服务页面。
  2. 在“概览”页签下的“基本信息”区域,单击“HSConsole WebUI”后的链接,进入HSConsole界面。
  3. 单击“数据源”,在hive数据源所在行的“操作”列下单击“编辑”,在页面内修改配置,可修改配置如下表。

    参数

    描述

    取值样例

    开启数据源鉴权

    是否同时使用Hive数据源的权限策略进行鉴权。开启后,HetuEngine采用基于SQL标准的Hive授权。

    • 集群未启用Kerberos认证(普通模式),HetuEngine采用Hive的默认授权。该选项不可配置。
    • 集群已启用Kerberos认证(安全模式),启用Ranger时,HetuEngine在基于Hive的默认授权基础上,叠加Ranger鉴权。开启该选项,则在基于SQL标准的Hive授权基础上叠加Ranger鉴权。停用Ranger时,HetuEngine切换为基于SQL标准的Hive授权。

    开启Hudi重定向

    已配置与当前Hive数据源的Metastore URL一致的目标Hudi数据源时可配置此功能。

    开启后可以在Hive connector访问Hudi表时重定向到Hudi connector,从而使用Hudi connector高级功能。

    Hudi数据源名称

    开启Hudi重定向时需配置目标Hudi数据源。

    下拉框中显示所有已配置的Hudi数据源,只能选择满足Metastore URL条件的Hudi数据源。

    -

    是否开启连接池

    访问hive metastore时是否开启连接池。默认“是”。

    最大连接数

    访问hive metastore时连接池的最大连接数。

    50(取值范围20~200)

  4. (可选)若用户需添加“自定义配置”,可参考6.g配置完成后单击“确定”保存配置。

数据类型映射

目前Hive数据源支持的数据类型为:BOOLEAN、TINYINT、SMALLINT、INT、BIGINT、REAL、DOUBLE、DECIMAL、NUMERIC、DEC、VARCHAR、VARCHAR(X)、CHAR、CHAR(X)、STRING、DATE、TIMESTAMP、TIME WITH TIMEZONE、TIMESTAMP WITH TIME ZONE、TIME、ARRAY、MAP、STRUCT、ROW。

性能优化

  • 元数据缓存

    Hive连接器支持元数据缓存,以便更快地提供对各种操作的元数据请求。可参考调整元数据缓存

  • 动态过滤

    开启动态过滤有助于Hive连接器的Join算子的计算优化。可参考调整动态过滤

  • 带分区条件查询

    建立分区表并且查询带分区过滤条件有助于过滤部分分区数据,从而提高性能。

  • Insert优化

    通过设置“task.writer-count”的值为“1”和增大“hive.max-partitions-per-writers”的值有助于提升Insert性能。可参考调整INSERT写入优化

约束

  • DELETE语法可以删除整个表的数据,或者分区表的指定分区。
  • Hive元数据库不支持Schema重命名,即不支持ALTER SCHEMA RENAME语法。