【问题标题】:1 slave node on AWS EMR not usedAWS EMR 上的 1 个从节点未使用
【发布时间】:2020-07-06 11:16:27
【问题描述】:

我正在使用以下命令运行存储在 AWS EMR 集群(1 个主节点和 2 个从属节点,每个具有 8GB RAM 和 4 个内核)上的主节点上的 pyspark 代码 -

spark-submit --master yarn --deploy-mode cluster --jars /home/hadoop/mysql-connector-java-5.1.45/mysql-connector-java-5.1.45-bin.jar --driver-class-path /home/hadoop/mysql-connector-java-5.1.45/mysql-connector-java-5.1.45.jar --conf spark.executor.extraClassPath=/home/hadoop/mysql-connector-java-5.1.45/mysql-connector-java-5.1.45.jar --driver-memory 2g --executor-cores 3 --num-executors 3 --executor-memory 5g mysql_spark.py

我注意到了两件事:

  1. 我通过 SSH 连接到从属节点,我注意到其中一个从属节点根本没有被使用(为此使用了 htop)。附上截图。这就是它的样子。我的spark-submit 命令有问题吗? 2 slave nodes screenshot
  1. 在提交申请之前,主节点8GB的6.54GB RAM已经在使用中(再次使用htop)。没有其他应用程序正在运行。为什么会这样?

【问题讨论】:

    标签: apache-spark amazon-emr htop


    【解决方案1】:

    第一个你使用的 --deploy-mode 是 cluster 这意味着 master 不被计算在内,只有核心/任务节点的资源被考虑并有资格启动 spark执行者/驱动程序。

    Click here for more information about the difference between client and cluster deploy modes.

    第二:检查实例类型的属性yarn.scheduler.maximum-allocation-mb的配置,这是可以分配给驱动程序/执行程序的最大可用内存。

    第三:尺码 例如,如果 c5.xlarge 类型的核心/任务节点 yarn.scheduler.maximum-allocation-mb = 6144 每个节点可以启动一个 5.5 GB 的 executor(默认情况下 --executor-memory = 5g + 10% memoryOverhead)。一个驱动程序(2GB)将在单个节点上启动,另一个节点将启动一个执行程序。

    建议:或者除以6144 / 2,这样每个节点可以启动2个executor,一个节点会启动1个executor和driver(1个driver + 3个executor)。

    【讨论】:

      【解决方案2】:

      您指定了--num-executors 3,所以一共有4个执行者(1个驱动+3个)

      因此,对于每个工作节点,您有 4 个 vCore 和 8GB 内存。

      根据您的配置 -

      • 驱动程序将使用 1 个 vCore 和 2GB 内存。
      • 每个执行程序将使用 3 个 vCore 和 5GB 内存。

      因此,查看您的配置,您的程序应该同时使用两个工作节点。因为一个节点不足以容纳所有资源。


      我建议你去看看

      1. 纱线用户界面http://<master-ip>:8088
      2. Spark 历史服务器 UI http://<master-ip>:18080

      查看这些执行器在哪个节点中启动(每个执行器将与节点 IP 相关联)以及它们有多少。您可以通过导航到该特定作业进行检查。
      还要从 Spark UI 验证每个执行程序使用了多少内存和 CPU。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-03-22
        • 1970-01-01
        • 2018-07-04
        • 2023-03-17
        • 2017-07-01
        相关资源
        最近更新 更多