启用用户模拟以监控 Spark 用户和任务活动 - Amazon EMR
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

启用用户模拟以监控 Spark 用户和任务活动

注意

EMR Notebooks 在新控制台中作为 Amazon EMR Studio Workspaces 提供。您仍然可以在旧控制台中使用现有笔记本,但无法在其中创建新笔记本。新控制台中的创建 Workspace 按钮将取代此功能。要访问或创建 Workspaces,EMR Notebooks 用户需要额外的 IAM 角色权限。有关更多信息,请参阅 Amazon EMR Notebooks are Amazon EMR Studio Workspaces in new console(Amazon EMR Notebooks 在新控制台中为 Amazon EMR Studio Workspaces)和 What's new in the console?(控制台中有哪些新功能?)

借助 EMR Notebooks,您可以在 Spark 集群上配置用户模拟。此功能可帮助您跟踪从笔记本编辑器内启动的作业活动。此外,EMR Notebooks 有一个内置的 Jupyter notebook 小组件,可用于在笔记本编辑器的查询输出旁边显示 Spark 任务详细信息。默认情况下,此小部件处于可用状态,无需特殊配置。但是,要查看历史记录服务器,您的客户端必须配置为查看主节点上托管的 Amazon EMR Web 界面。

设置 Spark 用户模拟

默认情况下,用户使用笔记本编辑器提交的 Spark 作业似乎源自一个模糊的 livy 用户身份。您可以为集群配置用户模拟,以便这些任务与运行代码的用户身份相关联。系统会为在笔记本中运行代码的每个用户身份在主节点上创建 HDFS 用户目录。例如,如果用户 NbUser1 从笔记本编辑器运行代码,您可以连接主节点并可以看到 hadoop fs -ls /user 显示目录 /user/user_NbUser1

您可以在 core-sitelivy-conf 配置分类中设置属性以启用该功能。如果您让 Amazon EMR 同时创建集群和笔记本,那么默认情况下,此功能将不可用。有关使用配置分类自定义应用程序的更多信息,请参阅《Amazon EMR 版本指南》中的配置应用程序

使用以下配置分类和值为 EMR Notebooks 启用用户模拟:

[ { "Classification": "core-site", "Properties": { "hadoop.proxyuser.livy.groups": "*", "hadoop.proxyuser.livy.hosts": "*" } }, { "Classification": "livy-conf", "Properties": { "livy.impersonation.enabled": "true" } } ]

使用 Spark 任务监控小组件

如果运行代码的笔记本编辑器在 EMR 集群上执行 Spark 任务,那么输出中会包含一个用于监控 Spark 任务的 Jupyter notebook 小组件。此小组件会提供任务详细信息、指向 Spark 历史记录服务器页面和 Hadoop 任务历史记录页面的有用链接,以及指向 Amazon S3 中有关任何失败任务的任务日志的便捷链接。

要查看集群主节点上的历史记录服务器页面,您必须根据需要设置 SSH 客户端和代理。有关更多信息,请参阅查看 Amazon EMR 集群上托管的 Web 界面。要查看 Amazon S3 中的日志,必须启用集群日志记录,这是新集群的默认设置。有关更多信息,请参阅查看归档到 Amazon S3 的日志文件

以下是一个 Spark 任务监控示例。


                    alt_text