【问题标题】:run Spark-Submit on YARN but Imbalance (only 1 node is working)在 YARN 上运行 Spark-Submit 但不平衡(只有 1 个节点在工作)
【发布时间】:2016-12-25 05:18:31
【问题描述】:

我尝试在 YARN-CLUSTER(2 个节点) 上运行 Spark 应用程序,但似乎这 2 个节点不平衡,因为只有 1 个节点在工作,而另一个节点没有.

我的脚本:

spark-submit --class org.apache.spark.examples.SparkPi 
--master yarn-cluster --deploy-mode cluster --num-executors 2 
--driver-memory 1G 
--executor-memory 1G 
--executor-cores 2 spark-examples-1.6.1-hadoop2.6.0.jar 1000

我看到我的一个节点正在工作,但另一个没有,所以这是不平衡:

注意:左边是namenode,右边是datanode...

有什么想法吗?

【问题讨论】:

    标签: hadoop apache-spark cluster-computing hadoop-yarn


    【解决方案1】:

    您正在yarn-cluster 模式下运行作业,在集群模式下 Spark 驱动程序在集群主机上的 ApplicationMaster 中运行

    尝试在yarn-client 模式下运行它,在客户端模式下 Spark 驱动程序在提交作业的主机上运行,​​因此您将能够在控制台上看到输出

    spark-submit --verbose --class org.apache.spark.examples.SparkPi \
    --master yarn \
    --deploy-mode client \
    --num-executors 2 \
    --driver-memory 1G \
    --executor-memory 1G \
    --executor-cores 2 spark-examples-1.6.1-hadoop2.6.0.jar 10
    

    【讨论】:

    • 但我想在集群模式下运行它
    • 如果您只想查看输出,可以使用 "yarn logs -applicationId " 在纱线日志中看到它。您还可以修改 SparkPi 并将输出存储在 HDFS 或某些数据库上。
    • 如何找到applicationId?
    【解决方案2】:

    您可以从 SPARK UI 中检查执行器是在哪个节点上启动的

    Spark UI 提供了启动执行的节点的详细信息

    Executor 是 Spark UI 中的 TAB

    【讨论】:

      【解决方案3】:

      完整的数据集可能位于其中一个节点的本地,因此它可能会尝试尊重数据的局部性。 您可以在启动 spark-submit

      时尝试以下配置

      --conf "spark.locality.wait.node=0"

      对我也一样。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-07-31
        • 1970-01-01
        • 2017-01-27
        • 2018-03-31
        • 2017-10-29
        • 1970-01-01
        • 2018-04-06
        • 1970-01-01
        相关资源
        最近更新 更多