+++ title = " Self-paced” weight = 23 pre = “23. ” +++


标题: “自主学习” 权重: 7


3.1 部署CloudFormation堆栈

  1. 从此:link[链接]{href=”/static/apache-hudi-tuning-cfn.yml” action=download}下载CloudFormation模板。
  2. 转到AWS控制台中的AWS CloudFormation ,确保我们位于所选的AWS区域。
  3. 选择创建堆栈
  4. 创建堆栈向导中,选择使用新资源选项。
  5. 模板源下,选择上传模板文件,然后选择选择文件。选择之前下载的CloudFormation模板。
  6. 单击下一步,输入堆栈名称,然后单击下一步
  7. 在堆栈选项屏幕上,只需单击下一步
  8. 在审核屏幕上,验证所有设置是否如我们所愿,启用我确认AWS CloudFormation可能会使用自定义名称创建IAM资源。,然后选择提交

3.2 运行EMR步骤

堆栈部署完成后,我们可以按照以下步骤准备研讨会所需的数据集。

  1. CloudFormation堆栈在AWS帐户中创建了一个名为data-lakes的EMR集群。导航到EMR控制台 (确保我们位于所选的AWS区域),然后转到集群。等待集群进入等待状态。

:image[EMR]{src=”/static/emrstudio-1.png” width=600}

  1. 从此:link[链接]{href=”/static/prepare_daily_batch_data.py” action=download}下载EMR步骤的Spark应用程序代码。
  2. CloudFormation堆栈在帐户中创建了一个名为hudi-tuning-workshop-<your-account-id>的S3存储桶。导航到AWS控制台中的Amazon S3 ,打开此S3存储桶,单击其名称。我们应该看到类似以下的内容。

:image[集群等待状态]{src=”/static/bucket-content.png” width=600}

  1. 单击上传按钮,上传之前下载的Spark应用程序代码。上传成功后,我们的S3存储桶内容应如下所示:

:image[集群等待状态]{src=”/static/bucket-content-spark-app.png” width=600}

  1. 导航到AWS控制台中的Amazon EMR (确保我们位于所选的AWS区域),从左侧导航窗格中打开集群,选择名为data-lakes的EMR集群。转到步骤选项卡。我们应该看到2个处于已完成状态的步骤。单击添加步骤

:image[EMR]{src=”/static/steps-tab.png” width=600}

  1. 使用以下详细信息配置步骤(用我们的AWS帐户ID替换所有需要的地方的):
    • 名称: Prepare Daily Batch Data
    • JAR位置: command-runner.jar
    • 参数: spark-submit --deploy-mode cluster --name prepare-daily-batch-data --num-executors 39 --executor-memory 4G --executor-cores 4 --conf spark.dynamicAllocation.enabled=false s3://hudi-tuning-workshop-<your-account-id>/prepare_daily_batch_data.py hudi-tuning-workshop-<your-account-id>

:image[集群等待状态]{src=”/static/step-preparation.png” width=600}

请确保用我们的AWS帐户ID替换上述代码中的每个<your-account-id>。
  1. 单击添加步骤,等待步骤处于已完成状态。

:image[EMR]{src=”/static/step-completed.png” width=600}

  1. 步骤完成后,返回到AWS控制台中的Amazon S3 ,打开hudi-tuning-workshop-<your-account-id>存储桶,导航到datasets文件夹,确认内容如下所示:

:image[EMR]{src=”/static/new-bucket-content.png” width=600}

  1. 使用以下详细信息配置另一个步骤(用我们的AWS帐户ID替换所有需要的地方的):
    • 名称: Add Outlier Record
    • JAR位置: command-runner.jar
    • 参数: bash -c "echo \"drone_id,current_lat,current_lon,current_height,current_order_id,direction,loaded,package_delivered,timestamp\" > outlier.csv; echo \"D000,53.3572085,-6.4498488,51,W0120200115029605,1,1,0,202001150700\" >> outlier.csv; aws s3 cp outlier.csv s3://hudi-tuning-workshop-<your-account-id>/datasets/e-commerce/drones/warehouse_id=W01/year=2020/month=1/"
请确保用我们的AWS帐户ID替换上述代码中的每个<your-account-id>。

:image[EMR]{src=”/static/step-preparation-2.png” width=600}

  1. 单击添加步骤,等待步骤处于已完成状态。

:image[EMR]{src=”/static/step2-completed.png” width=700}

  1. 步骤完成后,返回到AWS控制台中的Amazon S3 ,打开hudi-tuning-workshop-<your-account-id>存储桶,导航到datasets/e-commerce/drones/warehouse_id=W01/year=2020/month=1/文件夹,确认我们在其中有32个文件,包括一个名为outlier.csv的文件:

:image[EMR]{src=”/static/bucket-content-2.png” width=700}

**我们现在已准备好开始研讨会了。我们可以转到[下一部分](/overview)并开始研讨会。**
完成实践操作后,请务必完成下面的**完成研讨会后的清理**部分。

4. 完成研讨会后的清理

完成实践操作后,请务必按以下方式清理所有资源:

  1. 转到AWS控制台中的Amazon EMR ,单击左侧导航窗格中的工作室。现在按照以下步骤删除我们的工作区:
    • 单击工作室访问URL以打开我们的EMR工作室。
    • 在EMR工作室中,在左侧导航窗格中单击工作区
    • 选择我们为本次研讨会创建的工作区。
    • 操作下拉菜单中,选择删除。在弹出窗口中单击删除确认工作区删除。此删除可能需要几分钟时间完成。
  2. 转到AWS控制台中的Amazon S3 。我们应该看到CloudFormation模板创建的三个S3存储桶:
    • athena-output-<your-account-id>-<your-region>
    • hudi-tuning-workshop-<your-account-i