你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

快速入门:使用 Azure 门户在 Azure HDInsight 中创建 Apache Spark 群集

在本快速入门中,你将使用 Azure 门户在 Azure HDInsight 中创建 Apache Spark 群集。 然后创建 Jupyter Notebook,并使用它针对 Apache Hive 表运行 Spark SQL 查询。 Azure HDInsight 是适用于企业的分析服务,具有托管、全面且开源的特点。 用于 HDInsight 的 Apache Spark 框架使用内存中处理功能实现快速数据分析和群集计算。 Jupyter Notebook 允许你与数据交互,将代码与 markdown 文本组合在一起,并执行简单的可视化效果。

有关可用配置的深入说明,请参阅 在 HDInsight 中设置群集。 有关使用门户创建群集的详细信息,请参阅 门户中的“创建群集”。

如果同时使用多个群集,则可能需要创建虚拟网络;如果使用的是 Spark 群集,可能还需要使用 Hive Warehouse Connector。 有关详细信息,请参阅为 Azure HDInsight 规划虚拟网络将 Apache Spark 和 Apache Hive 与 Hive Warehouse Connector 集成

重要

无论是否使用,HDInsight 群集的计费都按分钟计算。 使用完群集后,请务必将其删除。 有关详细信息,请参阅本文的“ 清理资源 ”部分。

先决条件

拥有有效订阅的 Azure 帐户。 免费创建帐户

在 HDInsight 中创建 Apache Spark 群集

使用 Azure 门户创建 HDInsight 群集,该群集使用 Azure 存储 Blob 作为群集存储。 有关使用 Data Lake Storage Gen2 的详细信息,请参阅 快速入门:在 HDInsight 中设置群集

  1. 登录到 Azure 门户

  2. 在顶部菜单中,选择“+ 创建资源”

    Azure 门户如何创建资源的屏幕截图。

  3. 选择 Analytics>Azure HDInsight 转到 “创建 HDInsight 群集 ”页。

  4. “基本信息 ”选项卡中,提供以下信息:

    资产 Description
    Subscription 从下拉列表中,选择用于群集的 Azure 订阅。
    资源组 从下拉列表中选择现有资源组,或选择“新建”
    群集名称 输入任何全局唯一的名称。
    区域 从下拉列表中,选择在其中创建群集的区域。
    可用性区域 可选 - 指定要在其中部署群集的可用性区域
    群集类型 选择群集类型以打开列表。 从列表中选择 Spark
    群集版本 选择群集类型后,此字段中将自动填充默认版本。
    群集登录用户名 输入群集登录用户名。 默认名称为 admin。在此快速入门中稍后使用此帐户登录到 Jupyter Notebook。
    群集登录密码 输入群集登录密码。
    安全外壳 (SSH) 用户名 输入 SSH 用户名。 用于本快速入门的 SSH 用户名是 sshuser。 默认情况下,此帐户与 群集登录用户名 帐户共享相同的密码。

    屏幕截图显示了“创建 HDInsight 群集”,其中选择了“基本信息”选项卡。

  5. 选择 “下一步:存储 >> ”以继续转到 “存储 ”页。

  6. 在“存储”下,提供以下值

    资产 Description
    主存储类型 使用默认值 Azure 存储
    选择方法 使用默认值 “从列表中选择”。
    主存储帐户 使用自动填充的值。
    集装箱 使用自动填充的值。

    屏幕截图显示了“创建 HDInsight 群集”,其中选择了“存储”选项卡。

    选择“查看 + 创建”以继续。

  7. 在“查看 + 创建”下,选择“创建”。 创建群集大约需要 20 分钟时间。 必须先创建群集,才能继续下一会话。

如果在创建 HDInsight 群集时遇到问题,可能是你没有执行此作的适当权限。 有关详细信息,请参阅 访问控制要求

创建 Jupyter Notebook

Jupyter Notebook 是支持各种编程语言的交互式笔记本环境。 笔记本允许你与数据交互,将代码与 markdown 文本组合在一起,并执行简单的可视化效果。

  1. 在网络浏览器中,转到 https://CLUSTERNAME.azurehdinsight.net/jupyter,其中 CLUSTERNAME 是您群集的名称。 如果系统提示,请输入群集的群集登录凭据。

  2. 选择 “新建>PySpark ”以创建笔记本。

    创建 Jupyter Notebook 以运行交互式 Spark SQL 查询。

    创建并打开名为 Untitled(Untitled.pynb)的新笔记本。

运行 Apache Spark SQL 语句

SQL(结构化查询语言)是查询和定义数据的最常用且广泛使用的语言。 Spark SQL 作为 Apache Spark 的扩展,用于处理结构化数据,使用熟悉的 SQL 语法。

  1. 验证内核是否已准备就绪。 在笔记本中内核名称旁边看到空心圆圈时,内核已准备就绪。 实心圆表示操作系统内核正忙。

    屏幕截图显示了带有 PySpark 指示器的 Jupyter 窗口。

    首次启动笔记本时,内核在后台执行一些任务。 等待内核准备就绪。

  2. 将以下代码粘贴到空单元格中,然后按 Shift + ENTER 运行代码。 该命令列出群集上的 Hive 表:

    %%sql
    SHOW TABLES
    

    将 Jupyter Notebook 与 HDInsight 群集配合使用时,将获得一个预设 sqlContext ,可用于使用 Spark SQL 运行 Hive 查询。 %%sql 告知 Jupyter Notebook 使用预设 sqlContext 来运行 Hive 查询。 默认情况下,查询从 Hive 表(hivesampletable)检索所有 HDInsight 群集附带的前 10 行。 获取结果大约需要 30 秒。 输出如下所示:

    屏幕截图显示在此快速入门中创建的笔记本的 Jupyter 窗口。 是 quickstart." border="true":::

    每次在 Jupyter 中运行查询时,Web 浏览器窗口标题都会显示一个 (忙碌) 状态以及笔记本标题。 在右上角,PySpark 文本旁边还有一个实心圆圈。

  3. 运行另一个查询以查看hivesampletable中的数据。

    %%sql
    SELECT * FROM hivesampletable LIMIT 10
    

    屏幕应刷新以显示查询输出。

    HDInsight 中的 Hive 查询输出。 Insight" border="true":::

  4. 在笔记本上的“ 文件 ”菜单中,选择“ 关闭”和“停止”。 关闭笔记本会释放群集资源。

清理资源

HDInsight 将数据保存在 Azure 存储或 Azure Data Lake Storage 中,因此在群集未使用时可以安全地删除群集。 此外,即使 HDInsight 群集未被使用,仍需为其付费。 由于群集费用数倍于存储空间费用,因此在群集不用时删除群集可以节省费用。 如果计划立即处理 后续步骤 中列出的教程,则可能需要保留群集。

切换回 Azure 门户,然后选择“ 删除”。

在 Azure 门户中删除 HDInsight 群集。 sight cluster" border="true":::

还可以选择资源组名称以打开资源组页,然后选择“ 删除资源组”。 通过删除资源组,可以同时删除 HDInsight 群集和默认存储帐户。

后续步骤

本快速入门介绍了如何在 HDInsight 中创建 Apache Spark 群集并运行基本的 Spark SQL 查询。 转到下一教程,了解如何使用 HDInsight 群集针对示例数据运行交互式查询。