AWS EMR 上的 Spark UI

Spark UI on AWS EMR

我是 运行 AWS EMR 集群,通过 EMR 控制台下拉菜单安装了 Spark (1.3.1)。 Spark 是最新的并且正在处理数据,但我正在尝试查找已分配给 WebUI 的端口。我试过在没有连接的情况下同时转发 4040 和 8080 端口。我是这样转发的

ssh -i ~/KEY.pem -L 8080:localhost:8080 hadoop@EMR_DNS

1) 如何找到 Spark WebUI 的分配端口? 2) 如何验证 Spark WebUI 是 运行?

EMR 上的 Spark 是为 YARN 配置的,因此 Spark UI 可由 YARN 资源管理器 (http://spark.apache.org/docs/latest/monitoring.html) 提供的应用程序 url 使用。因此,最简单的方法是使用 SSH 打开的端口使用 SOCKS 设置浏览器,然后从 EMR 控制台打开资源管理器并单击 运行 右侧提供的 Application Master URL应用。 Spark History 服务器在默认端口 18080 可用。

EMR 为 http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-web-interfaces.html

的袜子示例

如果您不想按照 EMR 文档中的建议使用 SOCKS 处理浏览器设置,这里有一个替代方案。

  1. 打开一个到主节点的 ssh 隧道,端口转发到机器 运行 spark ui

    ssh -i path/to/aws.pem  -L 4040:SPARK_UI_NODE_URL:4040 hadoop@MASTER_URL
    

    MASTER_URL(问题中的EMR_DNS)是主节点的URL,您可以从集群的EMR管理控制台页面获取

    SPARK_UI_NODE_URL 可以在 stderr 日志的顶部附近看到。日志行将类似于:

    16/04/28 21:24:46 INFO SparkUI: Started SparkUI at http://10.2.5.197:4040
    
  2. 将浏览器指向 localhost:4040

在 EMR 4.6 上试过 运行 Spark 2.6.1

简单地使用SSH隧道 在您的本地计算机上执行:

ssh -i /path/to/pem -L 3000:ec2-xxxxcompute-1.amazonaws.com:8088 hadoop@ec2-xxxxcompute-1.amazonaws.com

在您的本地计算机浏览器上点击:

本地主机:3000

只需运行以下命令:

ssh -i /your-path/aws.pem -N -L 20888:ip-172-31-42-70.your-region.compute.internal:20888 hadoop@ec2-xxx.compute.amazonaws.com.cn

有3个地方需要修改:

  1. 你的 .pem 文件
  2. 你的内部主节点IP
  3. 您的 public DNS 域。

最后,在 Yarn UI 上,您可以单击您的 Spark Application Tracking URL,然后只需替换 url:

"http://your-internal-ip:20888/proxy/application_1558059200084_0002/" 

->

"http://localhost:20888/proxy/application_1558059200084_0002/"

它适用于 EMR 5.x

很高兴地宣布此功能终于在 AWS 上可用。您不需要 运行 任何特殊命令(或配置 SSH 隧道):

通过单击 link 到 spark 历史服务器 ui,您将能够查看旧的应用程序日志,或访问 运行ning spark 作业的 ui :

更多详情:https://docs.aws.amazon.com/emr/latest/ManagementGuide/app-history-spark-UI.html

希望对您有所帮助!