tencent cloud

文档反馈

使用 Hive 在 COS/CHDFS 中创建库表

最后更新时间:2024-10-30 11:44:08
    本文为您介绍如何使用 Hive 在 COS 及 CHDFS 上创建库表。

    开发准备

    确认您已经开通了腾讯云,并且创建了一个 EMR 集群。在创建 EMR 集群的时候需要在软件配置界面选择 Hive 组件。
    示例中存在需要访问腾讯云对象存储 COS 的内容,可参考 创建存储桶 在 COS 中创建一个存储桶(Bucket),并于 EMR 控制台 实例信息 页面开启对象存储授权。
    示例中存在需要访问腾讯云对象存储 CHDFS 的内容,可参考 挂载 CHDFS 创建挂载点并挂载至 EMR 集群。

    使用 Hive 在 COS 上创建库表

    说明:
    EMR 已默认集成 Hadoop-COS ,您在 EMR 控制台开启对象存储授权后,会使用腾讯云 EMR 实例绑定的角色,获取访问 COS 的临时密钥进行访问,该方式相比固定密钥更为安全。
    其他配置方式可参考对象存储-Hadoop 工具

    方式一:将整个数据库建立在 COS 上

    登录 EMR 集群的 Master 节点,切换到 Hadoop 用户,执行以下命令即可进入 Hive 命令行:
    hive
    执行下面的命令,在你的 COS 桶下创建名为 hivewithcos 的数据库。
    hive> create database hivewithcos location 'cosn://${bucketname}/${path}';
    说明:
    其中 ${bucketname}为您创建的 COS 存储桶名称,${path} 为存储路径。
    查看执行结果,可以看到我们在 COS 上创建的 hivewithcos 数据库:
    hive> show databases;
    OK
    default
    hivewithcos
    Time taken: 0.094 seconds, Fetched: 2 row(s)
    创建一张名为 record 的数据表(向表中 load 数据的方式和 HDFS 相同):
    hive> use hivewithcos;
    hive> create table record(id int, name string) row format delimited fields terminated by ',' stored as textfile;
    查看表:
    hive> show tables;
    OK
    record
    Time taken: 0.063 seconds, Fetched: 1 row(s)

    方式二:将指定表放在 COS 上

    在 Hive 中创建一个数据库:
    hive> create database test;
    hive> use test;
    执行如下语句在 COS 桶路径下创建名为 record 的表(向表中 load 数据的方式和 HDFS 相同):
    hive> create table record(id int, name string) row format delimited fields terminated by ',' stored as textfile location 'cosn://$bucketname/$path';
    查看表:
    hive> show tables;
    OK
    record
    Time taken: 0.063 seconds, Fetched: 1 row(s)

    使用 Hive 在 CHDFS 创建库表

    方式一:将整个数据库建立在 CHDFS上

    登录 EMR 集群的 Master 节点,切换到 Hadoop 用户,执行以下命令即可进入 Hive 命令行:
    hive
    执行下面的命令,在你的 CHDF 目录下创建名为 hivewithofs 的数据库:
    hive> create database hivewithofs location 'ofs://${mountpoint}/${path}';
    说明:
    其中 ${mountpoint} 为您创建的 CHDFS 挂载地址,${path} 为路径。
    查看执行结果,可以看到我们在 CHDFS 上创建的 hivewithofs 数据库:
    hive> show databases;
    OK
    default
    hivewithofs
    Time taken: 0.094 seconds, Fetched: 2 row(s)
    创建一张名为 record 的数据表(向表中 load 数据的方式和 HDFS 相同)
    hive> use hivewithofs;
    hive> create table record(id int, name string) row format delimited fields terminated by ',' stored as textfile;
    查看表:
    hive> show tables;
    OK
    record
    Time taken: 0.063 seconds, Fetched: 1 row(s)

    方式二:将指定表放在 CHDFS 上

    在 Hive 创建一个数据库 test2:
    hive> create database test2;
    hive> use test2;
    执行如下语句在 chdfs 下创建名为record的表:
    hive> create table record(id int, name string) row format delimited fields terminated by ',' stored as textfile location 'cosn://$mountpoint/$path';
    查看表:
    hive> show tables;
    OK
    record
    Time taken: 0.063 seconds, Fetched: 1 row(s)
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持