【问题标题】:spark-scheduling across application [duplicate]跨应用程序的火花调度[重复]
【发布时间】:2017-06-15 06:03:45
【问题描述】:

我想同时在四个不同的文件上运行 spark wordcount 应用程序。

我有一个带有 4 个工作节点的独立集群,每个节点有一个核心和 1gb 内存。

spark 在独立模式下工作... 1.4worker节点 2.1 每个工作节点的核心 每个节点 3.1gb 内存 4.core_max设置为1

./conf/spark-env.sh

**

export SPARK_MASTER_OPTS="-Dspark.deploy.defaultCores=1"
export SPARK_WORKER_OPTS="-Dspark.deploy.defaultCores=1"
export SPARK_WORKER_CORES=1
export SPARK_WORKER_MEMORY=1g
export SPARK_WORKER_INSTANCES=4

**

我已经使用 .sh 文件执行了

./bin/spark-submit --master spark://-Aspire-E5-001:7077 ./wordcount.R  txt1 &
./bin/spark-submit --master spark://-Aspire-E5-001:7077 ./wordcount.R  txt2 &
./bin/spark-submit --master spark://-Aspire-E5-001:7077 ./wordcount.R  txt3 &
./bin/spark-submit --master spark://-Aspire-E5-001:7077 ./wordcount.R  txt4

这是并行提交申请的正确方法吗?

当一个应用程序运行它需要 2 秒这样(只使用一个核心) 当同时给出 4 个应用程序时,每个应用程序需要超过 4 秒... 如何在不同的文件上并行运行 spark 应用程序?

【问题讨论】:

    标签: r apache-spark scheduling resource-scheduling


    【解决方案1】:

    当您向 Spark 集群提交多个作业时,Application master/resource-manager 会自动并行调度这些作业。 (因为火花在纱线上)。

    你不需要为此做任何额外的安排。

    对于您展示的场景,您可以在一个 spark 作业中读取所有不同的文件。

    相信我,由于 Spark 的惰性评估/DAG 优化和 RDD 转换(逻辑/物理计划),不同文件的读取和字数计数将并行进行。

    您可以在单个作业中读取所有文件:

    sc.wholeTextFiles("<folder-path>")
    

    folder-path 是所有文件所在的父目录。

    【讨论】:

      猜你喜欢
      • 2016-10-12
      • 1970-01-01
      • 2017-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-07
      相关资源
      最近更新 更多