将 Ambari Hive 视图与 HDInsight 中的 Hadoop 配合使用

了解如何使用 Ambari Hive 视图运行 Hive 查询。 Hive 视图允许从 Web 浏览器创作、优化和运行 Hive 查询。

先决条件

  • 基于 Linux 的 Hadoop on HDInsight 群集版本 3.4 或更高版本。

    Important

    Linux 是 HDInsight 3.4 或更高版本上使用的唯一操作系统。 有关详细信息,请参阅 HDInsight 在 Windows 上停用

  • Web 浏览器

运行 Hive 查询

  1. 打开 Azure 门户

  2. 选择 HDInsight 群集,然后从“快速链接”部分选择“Ambari 视图”。

    门户快速链接部分

    当提示进行身份验证时,请使用在创建群集时所提供的群集登录名(默认为 admin)帐户名称和密码。

  3. 在视图列表中,选择“Hive 视图”。

    已选中 Hive 视图

    Hive 视图页面类似于下图:

    Hive 视图查询工作表图像

  4. 将以下 HiveQL 语句从“查询”选项卡粘贴到工作表中:

    DROP TABLE log4jLogs;
    CREATE EXTERNAL TABLE log4jLogs(
        t1 string,
        t2 string,
        t3 string,
        t4 string,
        t5 string,
        t6 string,
        t7 string)
    ROW FORMAT DELIMITED FIELDS TERMINATED BY ' '
    STORED AS TEXTFILE LOCATION '/example/data/';
    SELECT t4 AS loglevel, COUNT(*) AS count FROM log4jLogs 
        WHERE t4 = '[ERROR]' 
        GROUP BY t4;
    

    这些语句执行以下操作:

    • DROP TABLE:删除表和数据文件(如果该表已存在)。

    • CREATE EXTERNAL TABLE:在 Hive 中创建一个新的“外部”表。 外部表仅在 Hive 中存储表定义。 数据保留在原始位置。

    • ROW FORMAT:演示如何设置数据格式。 在此情况下,每个日志中的字段以空格分隔。

    • STORED AS TEXTFILE LOCATION:显示数据的存储位置,并且数据已存储为文本。

    • SELECT:选择 t4 列包含值 [ERROR] 的所有行的计数。

      Important

      将“数据库”选择保留为“默认”。 本文档中的示例使用 HDInsight 附带的默认数据库。

  5. 要启动查询,请使用工作表下方的“执行”按钮。 按钮变为橙色,文本更改为“停止”。

  6. 完成查询后,“结果”选项卡显示操作结果。 以下文本是查询结果:

     loglevel       count
     [ERROR]        3
    

    可使用“日志”选项卡查看作业创建的日志记录信息。

    Tip

    通过位于“查询处理结果”部分左上角的“保存结果”下拉对话框,可下载或保存结果。

Visual explain

要显示查询计划的可视化效果,选择工作表下方的“可视化说明”选项卡。

查询的“可视化说明”视图可帮助理解复杂查询的流。 可使用查询编辑器上的“说明”按钮查看此视图的等效文本。

Tez UI

要显示查询的 Tez UI,选择工作表下方的“Tez”选项卡。

Important

Tez 不用于解析所有查询。 无需使用 Tez 即可解析许多查询。

如果使用 Tez 来解析查询,将显示有向无环图 (DAG)。 若要查看之前运行的查询的 DAG,或调试 Tez 进程,请改用 Tez 视图

查看作业历史记录

“作业”选项卡显示 Hive 查询的历史记录。

作业历史记录图像

数据库表

可使用“表”选项卡处理 Hive 数据库内的表。

表选项卡图像

已保存的查询

在“查询”选项卡中,可以按需要保存查询。 保存查询后,可通过“已保存的查询”选项卡对其重复进行使用。

“保存的查询”选项卡图像

Tip

保存的查询存储在默认群集存储中。 可在路径 /user/<username>/hive/scripts 下找到保存的查询。 它们存储为纯文本 .hql 文件。

用户定义的函数

可以通过用户定义函数 (UDF) 扩展 Hive。 使用 UDF 实现 HiveQL 中不容易建模的功能或逻辑。

使用 Hive 视图顶部的“UDF”选项卡,声明并保存一组 UDF。 可以在查询编辑器中使用这些 UDF。

UDF 选项卡图像

将 UDF 添加到 Hive 视图后,“插入 UDF”按钮将显示在“查询编辑器”底部。 选择此项将显示 Hive 视图中定义的 UDF 的下拉列表。 选择一个 UDF 可向查询添加 HiveQL 语句以启用 UDF。

例如,如果定义了一个具有以下属性的 UDF:

  • 资源名称:myudfs

  • 资源路径:/myudfs.jar

  • UDF 名称:myawesomeudf

  • UDF 类名称:com.myudfs.Awesome

使用“插入 UDF”按钮将显示名为 myudfs 的条目,以及为该资源定义的每个 UDF 的另一下拉列表。 本例中为 myawesomeudf。 选择此条目会在查询的开头添加以下内容:

add jar /myudfs.jar;
create temporary function myawesomeudf as 'com.myudfs.Awesome';

然后便可在查询中使用 UDF。 例如,SELECT myawesomeudf(name) FROM people;

有关如何在 HDInsight 中将 UDF 与 Hive 配合使用的详细信息,请参阅以下文章:

Hive 设置

可以更改各种 Hive 设置,例如将 Hive 的执行引擎从 Tez(默认)更改为 MapReduce。

后续步骤

有关 HDInsight 中 Hive 的常规信息:

有关 HDInsight 上 Hadoop 的其他使用方法的信息: