本文介绍如何通过Hive在E-MapReduce集群上创建库和表等操作。

前提条件

已创建集群,详情请参见 创建集群

进入Hive命令行

  1. 使用SSH方式登录到集群主节点,详情请参见使用SSH连接主节点
  2. 执行以下命令,切换为hadoop用户。
    su hadoop
  3. 执行以下命令,进入Hive命令行。
    hive
    返回信息如下所示时,表示进入Hive命令行。
    Logging initialized using configuration in file:/etc/ecm/hive-conf-2.3.5-2.0.3/hive-log4j2.properties Async: true
    Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X releases.

库操作

本文示例中的数据库以testdb为例介绍。

  • 创建库
    create database if not exists testdb;

    当返回信息包含OK时,表示创建库testdb成功。

  • 查看库
    desc database testdb;
    查看信息如下所示。 查看库
  • 使用数据库
    use testdb;
    返回信息如下所示。 use database
  • 删除库
    drop database if exists testdb;

    当返回信息包含OK时,表示删除库成功。

表操作

本文示例中的表以t为例介绍。

  • 创建表
    create table if not exists t (id bigint, value string);

    当返回信息包含OK时,表示创建表t成功。

  • 查看表信息
    desc formatted t;
    查看信息如下所示。 查看表
  • 查看所有表
    show tables;
    返回信息如下所示。
    OK
    t
  • 删除表
    drop table if exists t;

    当返回信息包含OK时,表示删除表成功。

SQL操作

  • 插入记录
    insert into table t select 1, 'value-1';
    当返回信息包含OK时,表示插入信息成功。
    OK
    Time taken: 14.73 seconds
  • 查询表中的前10条信息
    select * from t limit 10;
    返回信息如下所示。
    OK
    1       value-1
    Time taken: 11.48 seconds, Fetched: 1 row(s)
  • 聚合操作
    select value, count(id) from t group by value;
    返回信息如下所示。
    OK
    value-1 1
    Time taken: 20.11 seconds, Fetched: 1 row(s)