在 Amazon 中查看永久应用程序用户界面 EMR - Amazon EMR
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在 Amazon 中查看永久应用程序用户界面 EMR

从 Amazon EMR 版本 5.25.0 开始,您可以使用集群要页面或控制台中的应用程序用户界面选项卡连接到集群外托管的永久性 Spark History Server 应用程序详细信息。从 Amazon EMR 版本 5.30.1 开始,Tez 用户界面和YARN时间轴服务器永久应用程序接口可用。对持久性应用程序历史记录的一键式链接访问提供了以下好处:

  • 无需通过SSH连接设置 Web 代理,即可快速分析活动作业和作业历史记录并对其进行故障排除。

  • 您可以访问处于活动状态和终止状态的集群的应用程序历史记录和相关日志文件。日志在应用程序结束后的 30 天内均可用。

在控制台中导航到您的集群详细信息,选择应用程序选项卡。集群启动后,选择您想要的应用程序 UI。应用程序 UI 将在新的浏览器选项卡中打开。有关更多信息,请参阅监控和检测

您可以通过 Spark 历史服务器、YARN时间轴服务器和 Tez 用户界面上的链接查看YARN容器日志。

注意

要从 Spark 历史服务器、YARN时间轴服务器和 Tez UI 访问YARN容器日志,您必须为集群启用对 Amazon S3 的日志记录。如果您不启用日志记录,则指向YARN容器日志的链接将不起作用。

日志收集

为了实现对永久应用程序用户界面的一键访问,Amazon EMR 会收集两种类型的日志:

  • 应用程序事件日志被收集到EMR系统存储桶中。使用服务器端加密和 Amazon S3 托管密钥 (SSE-S3) 对事件日志进行静态加密。如果您为集群使用私有子网,请确保ARNs在私有子网的 Amazon S3 策略的资源列表中包含正确的系统存储桶。有关更多信息,请参阅私有子网的最小 Amazon S3 策略

  • YARN容器日志将收集到您拥有的 Amazon S3 存储桶中。您必须为集群启用日志记录才能访问YARN容器日志。有关更多信息,请参阅配置集群日志记录和调试

如果您出于隐私原因需要禁用此功能,则可在创建集群时使用引导脚本来停止守护程序,如以下示例所示。

aws emr create-cluster --name "Stop Application UI Support" --release-label emr-7.5.0 \ --applications Name=Hadoop Name=Spark --ec2-attributes KeyName=<myEMRKeyPairName> \ --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m3.xlarge InstanceGroupType=CORE,InstanceCount=1,InstanceType=m3.xlarge InstanceGroupType=TASK,InstanceCount=1,InstanceType=m3.xlarge \ --use-default-roles --bootstrap-actions Path=s3://region.elasticmapreduce/bootstrap-actions/run-if,Args=["instance.isMaster=true","echo Stop Application UI | sudo tee /etc/apppusher/run-apppusher; sudo systemctl stop apppusher || exit 0"]

运行此引导脚本后,Amazon 不会EMR将任何 Spark History Server 或YARN时间轴服务器事件日志收集到EMR系统存储桶中。Application user interfaces (应用程序用户界面) 选项卡上没有可用的应用程序历史记录信息,并且您将不再能够从控制台访问所有应用程序用户界面。

大型 Spark 事件日志文件

在某些情况下,长时间运行的 Spark 作业(例如 Spark 流式传输)和大型作业(例如 Spark SQL 查询)可能会生成大型事件日志。使用大型事件日志,您可以快速耗尽计算实例上的磁盘空间,并在加载 Persistent 时遇到OutOfMemory错误UIs。要避免这些问题,建议您启用 Spark 事件日志滚动和压缩功能。此功能在 Amazon EMR 版本 emr-6.1.0 及更高版本上可用。有关滚动和压缩的更多详细信息,请参阅 Spark 文档中的对滚动事件日志文件应用压缩

要激活 Spark 事件日志滚动和压缩功能,请启用以下 Spark 配置设置。

  • spark.eventLog.rolling.enabled – 根据大小启用事件日志滚动。默认情况下,此设置处于禁用状态。

  • spark.eventLog.rolling.maxFileSize – 激活滚动时,指定事件日志文件在滚动之前的最大大小。默认值为 128 MB。

  • spark.history.fs.eventLog.rolling.maxFilesToRetain – 指定要保留的非压缩事件日志文件的最大数量。默认情况下,会保留所有事件日志文件。设置为较小的数字以压缩较旧的事件日志。最小值为 1。

请注意,压缩会尝试排除具有过时事件日志文件的事件,如下所示。如果它确实丢弃了事件,则在 Spark 历史记录服务器 UI 上将看不到它们。

  • 已完成作业的事件以及相关阶段或任务事件。

  • 终止执行程序的事件。

  • 已完成SQL查询的事件,以及相关的作业、阶段和任务事件。

启动启用滚动和压缩的集群
  1. 使用以下配置创建 spark-configuration.json 文件。

    [ { "Classification": "spark-defaults", "Properties": { "spark.eventLog.rolling.enabled": true, "spark.history.fs.eventLog.rolling.maxFilesToRetain": 1 } } ]
  2. 使用 Spark 滚动压缩配置创建集群,如下所示。

    aws emr create-cluster \ --release-label emr-6.6.0 \ --instance-type m4.large \ --instance-count 2 \ --use-default-roles \ --configurations file://spark-configuration.json

注意事项和限制

一键式访问持久性应用程序用户界面当前具有以下限制。

  • 当应用程序详细信息显示在 Spark 历史记录服务器 UI 上时,至少会有两分钟的延迟。

  • 仅当应用程序的事件日志目录位于中时,此功能才起作用HDFS。默认情况下,Amazon 将事件日志EMR存储在目录中HDFS。如果您将默认目录更改为其它文件系统(例如 Amazon S3),则此功能将不起作用。

  • 此功能目前不适用于具有多个主节点的EMR集群或与EMR集成的集群 Amazon Lake Formation。

  • 要启用对永久应用程序用户界面的一键访问,您必须拥有 Amazon EMR 的DescribeCluster操作权限。如果您拒绝IAM委托人对此操作的许可,则权限更改大约需要五分钟才能生效。

  • 如果在正在运行的集群中重新配置应用程序,则将无法通过应用程序 UI 获取应用程序历史记录。

  • 对于每个应用程序 Amazon Web Services 账户,活动应用程序的默认限制UIs为 200。

  • 在下文中 Amazon Web Services 区域,您可以通过 Amazon EMR 6.14.0 及更高版本UIs从控制台访问应用程序:

    • 亚太地区(雅加达)(ap-southeast-3)

    • 欧洲(西班牙)(eu-south-2)

    • 亚太地区(墨尔本)(ap-southeast-4)

    • 以色列(特拉维夫)(il-central-1)

    • 中东 (UAE) (me-central-1)

  • 在下文中 Amazon Web Services 区域,您可以通过 Amazon EMR 5.25.0 及更高版本UIs从控制台访问应用程序:

    • 美国东部(弗吉尼亚州北部)(us-east-1)

    • 美国西部(俄勒冈州)(us-west-2)

    • 亚太地区(孟买)(ap-south-1)

    • 亚太地区(首尔)(ap-northeast-2)

    • 亚太地区(新加坡)(ap-southeast-1)

    • 亚太地区(悉尼)(ap-southeast-2)

    • 亚太地区(东京)(ap-northeast-1)

    • 加拿大(中部)(ca-central-1)

    • 南美洲(圣保罗)(sa-east-1)

    • 欧洲地区(法兰克福)(eu-central-1)

    • 欧洲地区(爱尔兰)(eu-west-1)

    • 欧洲(伦敦)(eu-west-2)

    • 欧洲地区(巴黎)(eu-west-3)

    • 欧洲地区(斯德哥尔摩)(eu-north-1)

    • 中国(北京)(cn-north-1)

    • 中国(宁夏)(cn-northwest-1)