【问题标题】:Spark UI on AWS EMRAWS EMR 上的 Spark UI
【发布时间】:2015-10-06 05:53:31
【问题描述】:

我正在运行一个 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 正在运行?

【问题讨论】:

    标签: apache-spark amazon-emr


    【解决方案1】:

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

    http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-web-interfaces.html 上带有 EMR 的袜子示例

    【讨论】:

    • 您好,我可以访问http://master-public-dns-name:8088/ 上的 Hadoop ResourceManager,但是到 Application Master URL 的链接都不起作用。我是否设置了错误的代理,或者我应该使用 YARN ResourceManager - 如何访问 YARN ResourceManager?最后,我无法使用 EMR 控制台上的 RecourseManager 链接,只有 Enable Web Connection 是可点击的链接。知道这是为什么吗?
    • 听起来您使用的是 EMR 版本 4.0.0。 8088 端口的 Hadoop 资源管理器是 YARN 资源管理器。检查您在 socks 代理上的 URL 模式是否包括应用程序主 URL 显示的 URL 路径(可能预期的域不同)。最后,AWS EMR 控制台上的 Enable Web Connection 是一个 bug,很快就会修复。
    • 我也有同样的问题,我的浏览器可以打开8088,但是我不能打开9026和9101。另外我点了“启用网络连接”,也没有看到链接列表跨度>
    • @soulmachine 您的 ssh 隧道和 socks 代理是否启用? docs.aws.amazon.com/ElasticMapReduce/latest/ManagementGuide/…
    • 我可以通过 SSH 隧道打开 8088(ResourceManager) 8888(Hue) 和 11000(Oozie),我确定我的 socks 代理工作正常
    【解决方案2】:

    如果您不想按照 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)是您可以从集群的 EMR 管理控制台页面获取的主节点的 URL

      可以在标准错误日志顶部附近看到 SPARK_UI_NODE_URL。日志行将类似于:

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

    在运行 Spark 2.6.1 的 EMR 4.6 上试过这个

    【讨论】:

    • 标准错误日志在哪里?如果我在与 master_URL 相同的注释中启动 pyspark,master_URL 和 SPRK_UL_NODE 应该相同吗?
    【解决方案3】:

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

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

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

    希望对你有帮助!

    【讨论】:

      【解决方案4】:

      只需运行以下命令:

      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. 您的公共 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

      【讨论】:

      • 这让我到达了我需要使用 Spark 2.4.0 和 EMR 5.22 的地方。谢谢!
      【解决方案5】:

      只需使用 SSH 隧道 在你的本地机器上做:

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

      在本地机器浏览器上点击:

      本地主机:3000

      【讨论】:

        猜你喜欢
        • 2019-08-12
        • 2018-07-07
        • 2018-04-26
        • 1970-01-01
        • 2016-06-07
        • 1970-01-01
        • 2023-04-04
        • 2015-11-20
        • 1970-01-01
        相关资源
        最近更新 更多