arrow_back

使用 Dataproc Serverless for Spark 加载 BigQuery

登录 加入
访问 700 多个实验和课程

使用 Dataproc Serverless for Spark 加载 BigQuery

实验 45 分钟 universal_currency_alt 5 个积分 show_chart 入门级
info 此实验可能会提供 AI 工具来支持您学习。
访问 700 多个实验和课程

概览

Dataproc Serverless 是一项全托管式服务,可以更轻松地运行开源数据处理和分析工作负载,而无需管理基础设施或手动调整工作负载。

Dataproc Serverless for Spark 提供优化的环境,旨在将现有 Spark 工作负载轻松迁移至 Google Cloud。

在本实验中,您将在 Dataproc Serverless 环境中运行批处理工作负载。此工作负载将使用 Spark 模板来处理 Avro 文件,以便创建和加载 BigQuery 表。

您将执行的操作

  • 配置环境
  • 下载实验资源
  • 配置并执行 Spark 代码
  • 在 BigQuery 中查看数据

设置

点击“开始实验”按钮前的注意事项

请阅读以下说明。实验会以定时的方式进行,且您无法暂停实验。定时器(点击“开始实验”即可启动)会显示云资源可供您使用的时间。

Qwiklabs 实操实验可让您在真实的云环境中开展实验活动,免受模拟或演示环境的局限。为此,我们会向您提供新的临时凭据,您可以在该实验的规定时间内通过此凭据登录和访问 Google Cloud Platform。

要求

要完成此实验,您需要:

  • 能够使用标准的互联网浏览器(建议使用 Chrome 浏览器)。
  • 为完成实验留出时间。

注意:如果您已拥有个人 GCP 帐号或项目,请不要使用其进行此实验。

如何开始实验并登录控制台

  1. 点击开始实验按钮。如果该实验需要付费,系统会打开一个弹出式窗口供您选择付款方式。左侧面板中包含您在进行该实验时必须使用的临时凭据。

    凭据面板

  2. 复制用户名,然后点击打开 Google 控制台。 该实验会启动资源并打开另一个标签页,显示选择账号页面。

    注意:请在单独的窗口打开标签页,让它们并排显示。
  3. 在“选择账号”页面中点击使用其他账号。“登录”页面即会打开。

    选择一个账号对话框,其中突出显示了“使用其他账号”选项

  4. 粘贴您从“连接详情”面板复制的用户名,然后复制并粘贴相应的密码。

注意:您必须使用“连接详情”面板中的凭据,请勿使用您的 Google Cloud Skills Boost 凭据。如果您拥有自己的 Google Cloud 账号,请不要在此实验中使用,以免产生费用。
  1. 继续在后续页面中点击以完成相应操作:
  • 接受条款及条件。
  • 由于该账号为临时账号,请勿添加账号恢复选项或双重验证。
  • 请勿注册免费试用。

片刻之后,系统会在此标签页中打开 Cloud 控制台。

注意:您可以点击左上角的导航菜单来查看列有 Google Cloud 产品和服务的菜单。 Cloud 控制台菜单

激活 Google Cloud Shell

Google Cloud Shell 是一种装有开发者工具的虚拟机。它提供了一个永久性的 5GB 主目录,并且在 Google Cloud 上运行。

Google Cloud Shell 提供了可用于访问您的 Google Cloud 资源的命令行工具。

  1. 在 Cloud 控制台右上角的工具栏中,点击“打开 Cloud Shell”按钮。

    突出显示的 Cloud Shell 图标

  2. 点击继续

预配并连接到环境需要一些时间。如果您连接成功,即表示您已通过身份验证,且项目 ID 会被设为您的 PROJECT_ID。例如:

在 Cloud Shell 终端中突出显示的项目 ID

gcloud 是 Google Cloud 的命令行工具。它会预先安装在 Cloud Shell 上,且支持 Tab 自动补全功能。

  • 您可以通过以下命令列出有效的账号名称:
gcloud auth list

输出:

Credentialed accounts: - @.com (active)

输出示例

Credentialed accounts: - google1623327_student@qwiklabs.net
  • 您可以通过以下命令列出项目 ID:
gcloud config list project

输出:

[core] project =

输出示例

[core] project = qwiklabs-gcp-44776a13dea667a6 注意:有关 gcloud 的完整文档,请参阅 gcloud CLI 概览指南

任务 1. 完成环境配置任务

首先,您要执行几个环境配置任务,为执行 Dataproc Serverless 工作负载提供支持。

  1. 在 Cloud Shell 中,运行以下命令以启用专用 IP 访问通道:
gcloud compute networks subnets update default --region={{{project_0.default_region |REGION}}} --enable-private-ip-google-access
  1. 使用以下命令创建新的 Cloud Storage 存储桶作为暂存位置:
gsutil mb -p {{{project_0.project_id |PROJECT_ID}}} gs://{{{project_0.project_id |PROJECT_ID}}}
  1. 使用以下命令创建新的 Cloud Storage 存储桶,作为 BigQuery 创建和加载表时的临时位置:
gsutil mb -p {{{project_0.project_id |PROJECT_ID}}} gs://{{{project_0.project_id |PROJECT_ID}}}-bqtemp
  1. 创建一个 BQ 数据集来存储数据。
bq mk -d loadavro 完成环境配置任务

任务 2. 下载实验资源

接下来,您要把完成实验所需的一些资源下载到实验提供的 Compute Engine 虚拟机中。您将在 Compute Engine 虚拟机中执行其余实验步骤。

  1. 在导航菜单中点击 Compute Engine。您会看到为您预配的 Linux 虚拟机。点击 lab-vm 实例旁的 SSH 按钮。

GCE 虚拟机实例页面

  1. 在虚拟机终端提示符处输入以下命令,下载将被处理并存储到 BigQuery 中的 Avro 文件。
wget https://storage.googleapis.com/cloud-training/dataengineering/lab_assets/idegc/campaigns.avro
  1. 接下来,将 Avro 文件复制到之前创建的用于暂存的 Cloud Storage 存储桶中。
gcloud storage cp campaigns.avro gs://{{{project_0.project_id |PROJECT_ID}}}
  1. 下载包含要在无服务器环境中执行的 Spark 代码的归档文件。
wget https://storage.googleapis.com/cloud-training/dataengineering/lab_assets/idegc/dataproc-templates.zip
  1. 解压缩归档文件。
unzip dataproc-templates.zip
  1. 切换到 Python 目录。
cd dataproc-templates/python 下载实验资源

任务 3. 配置并执行 Spark 代码

下面,您将在虚拟机实例终端中设置几个环境变量,并执行 Spark 模板以将数据加载至 BigQuery。

  1. 为 Dataproc Serverless 环境设置以下环境变量。
export GCP_PROJECT={{{project_0.project_id |PROJECT_ID}}} export REGION={{{project_0.default_region |REGION}}} export GCS_STAGING_LOCATION=gs://{{{project_0.project_id |PROJECT_ID}}} export JARS=gs://cloud-training/dataengineering/lab_assets/idegc/spark-bigquery_2.12-20221021-2134.jar
  1. 运行以下代码以执行 Spark Cloud Storage to BigQuery 模板,将 Avro 文件加载到 BigQuery 中。
./bin/start.sh \ -- --template=GCSTOBIGQUERY \ --gcs.bigquery.input.format="avro" \ --gcs.bigquery.input.location="gs://{{{project_0.project_id |PROJECT_ID}}}" \ --gcs.bigquery.input.inferschema="true" \ --gcs.bigquery.output.dataset="loadavro" \ --gcs.bigquery.output.table="campaigns" \ --gcs.bigquery.output.mode=overwrite\ --gcs.bigquery.temp.bucket.name="{{{project_0.project_id |PROJECT_ID}}}-bqtemp" 注意:您可以放心地忽略陈述以下信息的警告:警告 FileStreamSink:假设没有元数据目录。在路径中查找元数据目录时出错… 这是一个小测试,不需要元数据目录。 注意:如果您看到错误消息提示批量作业失败,请稍等,然后重新运行该命令,直到作业成功为止。 配置并执行 Spark 代码

任务 4. 确认数据已加载至 BigQuery

现在,您已经成功执行 Spark 模板,该在 BigQuery 中检查结果了。

  1. 在 BigQuery 中查看新表中的数据。
bq query \ --use_legacy_sql=false \ 'SELECT * FROM `loadavro.campaigns`;'
  1. 该查询应返回类似以下结果:

输出示例:

+------------+--------+---------------------+--------+---------------------+----------+-----+ | created_at | period | campaign_name | amount | advertising_channel | bid_type | id | +------------+--------+---------------------+--------+---------------------+----------+-----+ | 2020-09-17 | 90 | NA - Video - Other | 41 | Video | CPC | 81 | | 2021-01-19 | 30 | NA - Video - Promo | 325 | Video | CPC | 137 | | 2021-06-28 | 30 | NA - Video - Promo | 78 | Video | CPC | 214 | | 2021-03-15 | 30 | EU - Search - Brand | 465 | Search | CPC | 170 | | 2022-01-01 | 30 | EU - Search - Brand | 83 | Search | CPC | 276 | | 2020-02-18 | 30 | EU - Search - Brand | 30 | Search | CPC | 25 | | 2021-06-08 | 30 | EU - Search - Brand | 172 | Search | CPC | 201 | | 2020-11-29 | 60 | EU - Search - Other | 83 | Search | CPC | 115 | | 2021-09-11 | 30 | EU - Search - Other | 86 | Search | CPC | 237 | | 2022-02-17 | 30 | EU - Search - Other | 64 | Search | CPC | 296 | +------------+--------+---------------------+--------+---------------------+----------+-----+ 确认数据已加载至 BigQuery

恭喜!

您已成功使用 Dataproc Serverless for Spark 执行了批量工作负载,将 Avro 文件加载到了 BigQuery 表中。

版权所有 2020 Google LLC 保留所有权利。Google 和 Google 徽标是 Google LLC 的商标。其他所有公司名和产品名可能是其各自相关公司的商标。

准备工作

  1. 实验会创建一个 Google Cloud 项目和一些资源,供您使用限定的一段时间
  2. 实验有时间限制,并且没有暂停功能。如果您中途结束实验,则必须重新开始。
  3. 在屏幕左上角,点击开始实验即可开始

使用无痕浏览模式

  1. 复制系统为实验提供的用户名密码
  2. 在无痕浏览模式下,点击打开控制台

登录控制台

  1. 使用您的实验凭证登录。使用其他凭证可能会导致错误或产生费用。
  2. 接受条款,并跳过恢复资源页面
  3. 除非您已完成此实验或想要重新开始,否则请勿点击结束实验,因为点击后系统会清除您的工作并移除该项目

此内容目前不可用

一旦可用,我们会通过电子邮件告知您

太好了!

一旦可用,我们会通过电子邮件告知您

一次一个实验

确认结束所有现有实验并开始此实验

使用无痕浏览模式运行实验

请使用无痕模式或无痕式浏览器窗口运行此实验。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。