更新时间:2025-08-01 GMT+08:00
配置Hive表不同分区分别存储至OBS和HDFS
操作场景
存算分离场景下,Hive分区表支持不同的分区分别指定不同的存储源,可以指定一个分区表中不同分区的存储源为OBS或者HDFS。
此章节仅说明分区表指定存储源的能力,关于Hive如何在存算分离场景下对接OBS,对接指导可参考Hive对接OBS文件系统章节。
约束与限制
本特性仅适用于MRS 3.2.0及之后版本。
前提条件
已安装Hive客户端。下载并安装集群客户端的具体操作,请参考安装MRS集群客户端。
操作示例
- 以Hive客户端安装用户登录安装客户端的节点。
- 执行以下命令,切换到客户端安装目录。
cd 客户端安装目录
例如安装目录为“/opt/client”,则执行以下命令:
cd /opt/client
- 执行以下命令配置环境变量。
source bigdata_env
- 集群是否启用了Kerberos认证。
- 是,执行以下命令进行用户认证:
kinit Hive业务用户
- 否,执行5。
- 是,执行以下命令进行用户认证:
- 执行以下命令登录Hive客户端。
beeline
- 执行如下命令创建Hive分区表“table_1”,指定分区“pt='2021-12-12'”的路径为“hdfs://xxx”,指定分区“pt='2021-12-18'”的路径为“obs://并行文件系统名称/xxx”:
创建Hive分区表“table_1”:
create table table_1(id string) partitioned by(pt string) [stored as [orc|textfile|parquet|...]];
指定分区“pt='2021-12-12'”的路径为“hdfs://xxx”:
alter table table_1 add partition(pt='2021-12-12') location 'hdfs://xxx';
指定分区“pt='2021-12-12'”的路径为“obs://xxx”:
alter table table_1 add partition(pt='2021-12-18') location 'obs://并行文件系统名称/xxx';
- 给分区表“table_1”中插入数据后,对应的分区数据存储在对应的存储源上,可以使用desc查看分区的Location,执行以下命令查看路径下的数据:
desc formatted table_1 partition(pt='2021-12-18');
相关文档
关于Hive表的Location是否支持跨OBS和HDFS路径存储说明请参见Hive表的Location支持跨OBS和HDFS路径吗。
父主题: Hive企业级能力增强