更新时间:2024-10-28 GMT+08:00

配置Hive表不同分区分别存储至OBS和HDFS

操作场景

存算分离场景下,Hive分区表支持不同的分区分别指定不同的存储源,可以指定一个分区表中不同分区的存储源为OBS或者HDFS。

本特性仅适用于MRS 3.2.0及之后版本。此章节仅说明分区表指定存储源的能力,关于Hive如何在存算分离场景下对接OBS,对接指导可参考Hive对接OBS文件系统章节。

前提条件

已安装Hive客户端。

操作示例

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

    cd 客户端安装目录

    例如安装目录为“/opt/client”,则执行以下命令:

    cd /opt/client

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

    source bigdata_env

  4. 集群认证模式是否为安全模式。
    • 是,执行以下命令进行用户认证:

      kinit Hive业务用户

    • 否,执行5
  5. 执行以下命令登录Hive客户端。

    beeline

  6. 执行如下命令创建Hive分区表“table_1”,指定分区“pt='2021-12-12'”的路径为“hdfs//xxx”,指定分区“pt='2021-12-18'”的路径为“obs://xxx”:

    create table table_1(id string) partitioned by(pt string) [stored as [orc|textfile|parquet|...]];

    alter table table_1 add partition(pt='2021-12-12') location 'hdfs://xxx';

    alter table table_1 add partition(pt='2021-12-18') location 'obs://xxx';

  7. 给分区表“table_1”中插入数据后,对应的分区数据存储在对应的存储源上,可以使用desc查看分区的location,执行以下命令查看路径下的数据:

    desc formatted table_1 partition(pt='2021-12-18');