配置共部署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信息。
操作步骤
- 使用HetuEngine管理员用户登录Manager,选择“集群 > 服务 > HetuEngine”,进入HetuEngine服务页面。
- 在“概览”页签下的“基本信息”区域,单击“HSConsole WebUI”后的链接,进入HSConsole界面。
- 单击“数据源”,在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)
- (可选)若用户需添加“自定义配置”,可参考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语法。