使用针对 Visual Studio 的 Data Lake 工具连接到 Azure HDInsight 并运行 Apache Hive 查询Use Data Lake Tools for Visual Studio to connect to Azure HDInsight and run Apache Hive queries

了解如何使用用于 Visual Studio 的 Microsoft Azure Data Lake 和流分析工具(也称为 Data Lake 工具)连接到 Azure HDInsight 中的 Apache Hadoop 群集并提交 Hive 查询。Learn how to use Microsoft Azure Data Lake and Stream Analytics Tools for Visual Studio (also called Data Lake Tools) to connect to Apache Hadoop clusters in Azure HDInsight and submit Hive queries.

有关使用 HDInsight 的详细信息,请参阅 HDInsight 简介HDInsight 入门For more information about using HDInsight, see Introduction to HDInsight and Get started with HDInsight.

有关连接到 Apache Storm 群集的详细信息,请参阅使用 Visual Studio 为 Apache Storm on HDInsight 开发 C# 拓扑For more information about connecting to an Apache Storm cluster, see Develop C# topologies for Apache Storm on HDInsight by using Visual Studio.

可以使用用于 Visual Studio 的 Data Lake 工具访问 Azure Data Lake Analytics 和 HDInsight。You can use Data Lake Tools for Visual Studio to access Azure Data Lake Analytics and HDInsight.

先决条件Prerequisites

若要完成本文并使用用于 Visual Studio 的 Data Lake 工具,需要具备以下项目:To complete this article and use Data Lake Tools for Visual Studio, you need the following items:

安装用于 Visual Studio 的 Data Lake 工具Install Data Lake Tools for Visual Studio

  • Visual Studio 2017 或 Visual Studio 2019Visual Studio 2017 or Visual Studio 2019
    在安装期间,请确保至少包含工作负荷“Azure 开发”或“数据存储和处理”。 During installation, ensure you include at least Workloads Azure development or Data storage and processing.

    对于现有安装,请在菜单栏中导航到“工具” > “获取工具和功能...”打开 Visual Studio 安装程序。 For existing installations, from the menu bar, navigate to Tools > Get Tools and Features... to open Visual Studio Installer. 然后至少选择工作负荷“Azure 开发”或“数据存储和处理”。 Then select at least Workloads Azure development or Data storage and processing.

    Visual Studio 安装程序的屏幕截图

  • Visual Studio 2013 和 2015Visual Studio 2013 and 2015
    下载 Data Lake 工具Download Data Lake Tools. 请选择与 Visual Studio 版本匹配的 Data Lake 工具版本。Choose the version of Data Lake Tools that matches your version of Visual Studio.

Note

目前,用于 Visual Studio 的 Data Lake 工具仅提供英文版。Currently, only the English version of Data Lake Tools for Visual Studio is available.

更新用于 Visual Studio 的 Data Lake 工具Update Data Lake Tools for Visual Studio

  1. 打开 Visual Studio。Open Visual Studio.

  2. 在菜单栏中,导航到“工具” > “扩展和更新...”。 From the menu bar, navigate to Tools > Extensions and Updates....

  3. 在“扩展和更新”窗口中,展开左侧的“更新”。 From the Extensions and Updates window, expand Updates on the left.

  4. 如果有可用的更新,“Azure Data Lake 和流分析工具”会显示在主窗口中。 If an update is available, Azure Data Lake and Stream Analytic Tools will appear in the main window. 选择“更新” 。Select Update.

Note

只能使用 Data Lake 工具 2.3.0.0 或更高版本连接到交互式查询群集,然后运行交互式 Hive 查询。You can use only Data Lake Tools version 2.3.0.0 or later to connect to Interactive Query clusters and run interactive Hive queries.

连接到 Azure 订阅Connect to Azure subscriptions

可以使用用于 Visual Studio 的 Data Lake 工具连接到 HDInsight 群集,执行一些基本管理操作,以及运行 Hive 查询。You can use Data Lake Tools for Visual Studio to connect to your HDInsight clusters, perform some basic management operations, and run Hive queries.

Note

有关连接到常规 Hadoop 群集的信息,请参阅 Write and submit Hive queries by using Visual Studio(使用 Visual Studio 编写和提交 Hive 查询)。For information about connecting to a generic Hadoop cluster, see Write and submit Hive queries by using Visual Studio.

若要连接到 Azure 订阅,请执行以下操作:To connect to your Azure subscription:

  1. 打开 Visual Studio。Open Visual Studio.

  2. 在菜单栏中,导航到“视图” > “服务器资源管理器”。 From the menu bar, navigate to View > Server Explorer.

  3. 在服务器资源管理器中右键单击“Azure”并选择“连接到 Microsoft Azure 订阅...”,然后完成登录过程。 From Server Explorer, right-click Azure, select Connect to Microsoft Azure Subscription..., and complete the sign in process.

  4. 在服务器资源管理器中,会显示现有 HDInsight 群集的列表。From Server Explorer, a list of existing HDInsight clusters appears. 如果没有任何群集,可以使用 Azure 门户、Azure PowerShell 或 HDInsight SDK 创建一个群集。If you don't have any clusters, you can create one by using the Azure portal, Azure PowerShell, or the HDInsight SDK. 有关详细信息,请参阅创建 HDInsight 群集For more information, see Create HDInsight clusters.

    服务器资源管理器中的用于 Visual Studio 的 Data Lake 工具群集列表的屏幕截图Screenshot of the Data Lake Tools for Visual Studio cluster list in Server Explorer

  5. 展开 HDInsight 群集。Expand an HDInsight cluster. 此时会显示“Hive 数据库”、默认存储帐户、链接的存储帐户,以及“Hadoop 服务日志”。 Hive Databases, a default storage account, linked storage accounts, and Hadoop Service log appear. 可以进一步展开条目。You can further expand the entities.

连接到 Azure 订阅后,可执行以下任务。After you've connected to your Azure subscription, you can perform the following tasks.

若要从 Visual Studio 连接到 Azure 门户,请执行以下操作:To connect to the Azure portal from Visual Studio:

  1. 在服务器资源管理器中,导航到“Azure” > “HDInsight”并选择你的群集。 From Server Explorer, navigate to Azure > HDInsight and select your cluster.

  2. 右键单击某个 HDInsight 群集,并选择“在 Azure 门户中管理群集”。 Right-click an HDInsight cluster, and select Manage Cluster in Azure Portal.

通过 Visual Studio 提问和/或提供反馈:To ask questions and/or provide feedback from Visual Studio:

  1. 在服务器资源管理器中,导航到“Azure” > “HDInsight”。 From Server Explorer, navigate to Azure > HDInsight.

  2. 右键单击“HDInsight”,并选择“MSDN 论坛”以提问,或选择“提供反馈”以提供反馈。 Right-click HDInsight and select either MSDN Forum to ask questions, or Give Feedback to give feedback.

可以通过右键单击 HDInsight 后选择“链接 HDInsight 群集” 来链接群集。You could link a cluster by right clicking on HDInsight then select Link a HDInsight Cluster. 输入连接 URL用户名密码,依次单击“下一步” 、“完成” ,群集应在“HDInsight”节点下成功列出。Enter Connection Url, user name and password, click Next then Finish, the cluster should be listed under HDInsight node successful.

针对 Visual Studio 的 Data Lake 工具“链接群集”对话框的屏幕截图

右键单击链接的群集,选择“编辑” ,用户可以更新群集信息。Right click on the linked cluster, select Edit, user could update the cluster information. 添加 HDInsight 群集目前仅支持 Hive。Adding an HDInsight cluster only supports Hive for now.

针对 Visual Studio 的 Data Lake 工具“链接群集更新”的屏幕截图

浏览链接的资源Explore linked resources

在“服务器资源管理器”中,可以看到默认存储帐户和任何链接的存储帐户。From Server Explorer, you can see the default storage account and any linked storage accounts. 如果展开默认存储帐户,则可以看到存储帐户中的容器。If you expand the default storage account, you can see the containers on the storage account. 默认存储帐户和默认容器将处于标记状态。The default storage account and the default container are marked. 右键单击任何容器即可查看容器内容。Right-click any of the containers to view the container contents.

服务器资源管理器中针对 Visual Studio 的 Data Lake 工具列表链接资源的屏幕截图Screenshot of Data Lake Tools for Visual Studio list linked resources in Server Explorer

打开容器后,可使用以下按钮来上传、删除和下载 Blob:After opening a container, you can use the following buttons to upload, delete, and download blobs:

服务器资源管理器中针对 Visual Studio 的 Data Lake 工具 blob 操作的屏幕截图Screenshot of Data Lake Tools for Visual Studio blob operations in Server Explorer

运行交互式 Apache Hive 查询Run interactive Apache Hive queries

Apache Hive 是构建于 Hadoop 之上的数据仓库基础结构。Apache Hive is a data warehouse infrastructure that's built on Hadoop. Hive 用于数据汇总、查询和分析。Hive is used for data summarization, queries, and analysis. 可以使用用于 Visual Studio 的 Data Lake 工具从 Visual Studio 运行 Hive 查询。You can use Data Lake Tools for Visual Studio to run Hive queries from Visual Studio. 有关 Hive 的详细信息,请参阅将 Apache Hive 与 HDInsight 配合使用For more information about Hive, see Use Apache Hive with HDInsight.

交互式查询使用 Apache Hive 2.1 中的 Hive on LLAPInteractive Query uses Hive on LLAP in Apache Hive 2.1. 交互式查询为在存储的大型数据集上进行的复杂数据仓库样式查询带来了交互性。Interactive Query brings interactivity to complex data warehouse-style queries on large, stored datasets. 相对于传统的 Hive 批处理作业,在交互式查询上运行 Hive 查询速度要快得多。Running Hive queries on Interactive Query is much faster compared to traditional Hive batch jobs.

Note

仅当连接到 HDInsight 交互式查询群集时,才能运行交互式 Hive 查询。You can run interactive Hive queries only when you connect to an HDInsight Interactive Query cluster.

也可使用用于 Visual Studio 的 Data Lake 工具来查看 Hive 作业中的内容。You can also use Data Lake Tools for Visual Studio to see what’s inside a Hive job. 用于 Visual Studio 的 Data Lake 工具可收集和显示某些 Hive 作业的 Yarn 日志。Data Lake Tools for Visual Studio collects and surfaces the Yarn logs of certain Hive jobs.

在服务器资源管理器中,导航到“Azure” > “HDInsight”并选择你的群集。 From Server Explorer, navigate to Azure > HDInsight and select your cluster. 后续部分所述的操作将在服务器资源管理器中的此位置着手。This will be the starting point in Server Explorer for the sections to follow.

查看 hivesampletableView hivesampletable

所有 HDInsight 群集都有一个名为 hivesampletable 的默认示例 Hive 表。All HDInsight clusters have a default sample Hive table called hivesampletable.

在群集中,导航到“Hive 数据库” > “默认” > “hivesampletable”。 From your cluster, navigate to Hive Databases > default > hivesampletable.

  • 查看 hivesampletable 架构:To view hivesampletable schema:
    展开“hivesampletable”。 Expand hivesampletable.

  • 查看 hivesampletable 数据:To view hivesampletable data:
    右键单击“hivesampletable”并选择“查看前 100 行”。 Right-click hivesampletable, and select View Top 100 Rows. 这相当于使用 Hive ODBC 驱动程序运行以下 Hive 查询:This is equivalent to running the following Hive query by using the Hive ODBC driver:

    SELECT * FROM hivesampletable LIMIT 100

    可以自定义行计数。You can customize the row count.

    HDInsight Hive Visual Studio 架构查询的屏幕截图Screenshot of an HDInsight Hive Visual Studio schema query

创建 Hive 表Create Hive tables

若要创建 Hive 表,可以使用 GUI,也可以使用 Hive 查询。To create a Hive table, you can use the GUI or you can use Hive queries. 有关使用 Hive 查询的信息,请参阅 运行 Apache Hive 查询For information about using Hive queries, see Run Apache Hive queries.

  1. 在群集中,导航到“Hive 数据库” > “默认”。 From your cluster, navigate to Hive Databases > default.

  2. 右键单击“默认”并选择“创建表”。 Right-click default, and select Create Table.

  3. 根据需要配置表。Configure the table as desired.

  4. 选择“创建表” ,以便提交创建新 Hive 表的作业。Select Create Table to submit the job to create the new Hive table.

    HDInsight Visual Studio 工具“创建表”窗口的屏幕截图Screenshot of the HDInsight Visual Studio Tools Create Table window

创建并运行 Hive 查询Create and run Hive queries

可以使用两个选项来创建并运行 Hive 查询:You have two options for creating and running Hive queries:

  • 创建临时查询Create ad-hoc queries
  • 创建 Hive 应用程序Create a Hive application

创建并运行临时查询:To create, and run ad-hoc queries:

  1. 右键单击要运行查询的群集,然后选择“编写 Hive 查询”。 Right-click the cluster where you want to run the query, and select Write a Hive Query.

  2. 输入以下 Hive 查询:Enter the following Hive query:

    SELECT devicemodel, COUNT(devicemodel) AS deviceCount
    FROM hivesampletable
    GROUP BY devicemodel
    ORDER BY devicemodel
    

    Hive 编辑器支持 IntelliSense。The Hive editor supports IntelliSense. 用于 Visual Studio 的 Data Lake 工具支持在编辑 Hive 脚本时加载远程元数据。Data Lake Tools for Visual Studio supports loading remote metadata when you edit your Hive script. 例如,如果键入 SELECT * FROM,则 IntelliSense 会列出所有建议的表名称。For example, if you type SELECT * FROM, IntelliSense lists all the suggested table names. 在指定表名称后,IntelliSense 会列出列名称。When a table name is specified, IntelliSense lists the column names. 这些工具支持大多数 Hive DML 语句、子查询和内置 UDF。The tools support most Hive DML statements, subqueries, and built-in UDFs.

    HDInsight Visual Studio Tools IntelliSense 示例 1 的屏幕截图Screenshot of an HDInsight Visual Studio Tools IntelliSense example 1

    HDInsight Visual Studio Tools IntelliSense 示例 2 的屏幕截图Screenshot of an HDInsight Visual Studio Tools IntelliSense example 2

    Note

    IntelliSense 只建议 HDInsight 工具栏中所选群集的元数据。IntelliSense suggests only the metadata of the cluster that is selected in the HDInsight toolbar.

  3. 选择执行模式:Choose execution mode:

    • 交互式Interactive

      确保“交互式”已选中,然后选择“执行”。 Ensure Interactive is selected and then select Execute.

      查询和“执行”的屏幕截图

    • 批处理Batch

      确保“批处理”已选中,然后选择“提交”。 Ensure Batch is selected and then select Submit. 如果选择高级提交选项,请为脚本配置“作业名称”、“参数”、“其他配置”和“状态目录”。 If you select the advanced submit option, configure Job Name, Arguments, Additional Configurations, and Status Directory for the script.

      查询和“批处理”的屏幕截图

      HDInsight Hadoop Hive 查询的屏幕截图Screenshot of an HDInsight Hadoop Hive query

      Note

      无法将批提交到交互式查询群集。You can not submit batches to Interactive Query clusters. 必须使用交互模式。You must use interactive mode.

若要创建并运行 Hive 解决方案,请执行以下操作:To create and run a Hive solution:

  1. 在菜单栏中,导航到“文件” > “新建” > “项目...”。 From the menu bar, navigate to File > New > Project....

  2. 在左窗格中,导航到“已安装” > “Azure Data Lake” > “HIVE (HDInsight)”。 In the left pane, navigate to Installed > Azure Data Lake > HIVE (HDInsight).

  3. 在中间窗格中,选择“Hive 应用程序”。 In the middle pane, select Hive Application. 输入属性,然后选择“确定” 。Enter the properties, and then select OK.

    HDInsight Visual Studio Tools“新建 Hive 项目”的屏幕截图Screenshot of an HDInsight Visual Studio Tools new Hive project

  4. 在“解决方案资源管理器”中,双击“Script.hql”将该脚本打开。 In Solution Explorer, double-click Script.hql to open the script.

查看作业摘要和输出View job summary and output

作业摘要根据选择的是“批处理”还是“交互式”模式而略有不同。 The job summary varies slightly between Batch and Interactive mode.

作业摘要Job summary

使用“刷新”按钮更新状态,直到作业状态更改为“已完成”。 Use the Refresh button to update the status until the job status changes to Finished.

  • 如需“批处理”模式下的作业详细信息,请选择底部的链接以查看“作业查询”、“作业输出”、“作业日志”或“Yarn 日志”。 For the job details from Batch mode, select the links at the bottom to see Job Query, Job Output, Job log, or Yarn log.

  • 如需“交互式”模式下的作业详细信息,请查看“输出”和“HiveServer2 输出”选项卡。 For the job details from Interactive mode, see tabs Output and HiveServer2 Output.

    作业详细信息job details

查看作业图View job graph

目前,仅显示使用 Tez 作为执行引擎的 Hive 作业的作业图。Currently, job graphs are only shown for Hive jobs that use Tez as the execution engine. 有关启用 Tez 的信息,请参阅使用 HDInsight 中的 Apache HiveFor information about enabling Tez, see Use Apache Hive in HDInsight. 另请参阅使用 Apache Tez 而不是 Map ReduceSee also, Use Apache Tez instead of Map Reduce.

若要查看顶点中的所有运算符,请双击作业图的相应顶点。To view all the operators inside the vertex, double-click on the vertices of the job graph. 也可通过指向特定运算符来查看该运算符的更多详细信息。You can also point to a specific operator to see more details about the operator.

即使已将 Tez 指定为执行引擎,但如果未启动 Tez 应用程序,则也可能不会显示作业图。The job graph may not appear even if Tez is specified as the execution engine if no Tez application is launched. 可能的原因是作业不包含 DML 语句,或者在未启动 Tez 应用程序的情况下 DML 语句可以返回。This might happen because the job does not contain DML statements, or the DML statements can return without launching a Tez application. 例如,SELECT * FROM table1 不会启动 Tez 应用程序。For example, SELECT * FROM table1 will not launch the Tez application.

作业图Job graph

任务执行详细信息Task Execution Detail

在作业图中,可以选择“任务执行详细信息”获取 Hive 作业的结构化和可视化信息。 From the job graph, you can select Task Execution Detail to get structured and visualized information for Hive jobs. 也可以获取更多的作业详细信息。You can also get more job details. 如果出现性能问题,可以使用此视图来获取该问题的更多详细信息。If performance issues occur, you can use the view to get more details about the issue. 例如,可以了解每个任务的运行方式和详细信息(数据读取/写入、计划/开始/结束时间,等等),For example, you can get information about how each task operates, and detailed information about each task (data read/write, schedule/start/end time, and so on). 以便根据可视化信息优化作业配置或系统体系结构。Use the information to tune job configurations or system architecture based on the visualized information.

Data Lake Visual Studio Tools“任务执行视图”窗口的屏幕截图Screenshot of the Data Lake Visual Studio Tools Task Execution View window

查看 Hive 作业View Hive jobs

可以查看作业查询、作业输出、作业日志和 Hive 作业的 Yarn 日志。You can view job queries, job output, job logs, and Yarn logs for Hive jobs.

在最新版本的工具中,可以通过收集和显示 Yarn 日志来查看 Hive 作业的内容。In the most recent release of the tools, you can see what’s inside your Hive jobs by collecting and surfacing Yarn logs. Yarn 日志有助于调查性能问题。A Yarn log can help you investigating performance issues. 有关 HDInsight 如何收集 Yarn 日志的详细信息,请参阅以编程方式访问 HDInsight 应用程序日志For more information about how HDInsight collects Yarn logs, see Access HDInsight application logs programmatically.

若要查看 Hive 作业,请执行以下操作:To view Hive jobs:

  1. 右键单击某个 HDInsight 群集,并选择“查看作业”。 Right-click an HDInsight cluster, and select View Jobs. 此时会显示群集上运行的 Hive 作业的列表。A list of the Hive jobs that ran on the cluster appears.

  2. 选择作业。Select a job. 在“Hive 作业摘要” 窗口中,选择以下项目之一:In the Hive Job Summary window, select one of the following:

    • 作业查询Job Query
    • 作业输出Job Output
    • 作业日志Job Log
    • Yarn 日志Yarn log

    HDInsight Visual Studio Tools“查看 Hive 作业”窗口的屏幕截图Screenshot of the HDInsight Visual Studio Tools View Hive Jobs window

运行 Apache Pig 脚本Run Apache Pig scripts

  1. 在菜单栏中,导航到“文件” > “新建” > “项目...”。 From the menu bar, navigate to File > New > Project....

  2. 在左窗格中,导航到“已安装” > “Azure Data Lake” > “Pig (HDInsight)”。 In the left pane, navigate to Installed > Azure Data Lake > Pig (HDInsight).

  3. 在中间窗格中选择“Pig 应用程序”。 In the middle pane, select Pig Application. 输入属性,然后选择“确定” 。Enter the properties, and then select OK.

  4. 在“解决方案资源管理器”中,双击“Script.pig”打开脚本。 In Solution Explorer, double-click Script.pig to open the script.

反馈和已知问题Feedback and known issues

  • 解决了以 null 值开头的结果不会显示的问题。An issue in which results that are started with null values aren't shown has been fixed. 如果受此问题困扰,请与支持团队联系。If you're blocked on this issue, contact the support team.
  • Visual Studio 创建的 HQL 脚本会根据用户的本地区域设置进行编码。The HQL script that Visual Studio creates is encoded, depending on the user’s local region setting. 如果以二进制文件形式将脚本上传到群集,脚本将无法正常执行。The script doesn't execute correctly if you upload the script to a cluster as a binary file.

后续步骤Next steps

本文介绍了如何使用用于 Visual Studio 的 Data Lake 工具包从 Visual Studio 连接到 HDInsight 群集,In this article, you learned how to use the Data Lake Tools for Visual Studio package to connect to HDInsight clusters from Visual Studio. 以及如何运行 Hive 查询。You also learned how to run a Hive query. 有关详细信息,请参阅以下文章:For more information, see these articles: