scala - Apache Spark : local[K] master URL - job gets stuck

标签 scala sbt apache-spark

我正在使用 apache spark 0.8.0 来处理大型数据文件并执行一些基本的 .map.reduceByKey RDD 上的操作.

由于我使用的是一台带有多个处理器的机器,所以我提到了 local[8]在创建时的主 URL 字段中 SparkContext

val sc = new SparkContext("local[8]", "Tower-Aggs", SPARK_HOME ) 

但是每当我提到多个处理器时,工作就会随机卡住(暂停/停止)。它没有固定的地方卡住,它只是随机的。有时它根本不会发生。我不确定在那之后它是否会继续,但它会卡住很长时间,之后我中止了工作。

但是当我只使用 local 时代替 local[8] ,作业无缝运行而不会卡住。
val sc = new SparkContext("local", "Tower-Aggs", SPARK_HOME )

我无法理解问题出在哪里。

我正在使用 Scala 2.9.3sbt构建和运行应用程序

最佳答案

我正在使用 spark 1.0.0 并遇到了同样的问题:如果一个函数无限期地传递给一个转换或 Action 等待/循环,那么 spark 默认不会唤醒它或终止/重试它,在这种情况下你可以杀死任务。

但是,最近的一项功能(推测性任务)允许 Spark 启动复制任务,如果一些任务花费的时间比其对等项的平均运行时间长得多。这可以在以下配置属性中启用和配置:

  • spark.speculation false 如果设置为“true”,则执行任务的推测执行。这意味着如果一个或多个任务在一个阶段运行缓慢,它们将被重新启动。
  • spark.speculation.interval 100 Spark 检查要推测的任务的频率,以毫秒为单位。
  • spark.speculation.quantile 0.75 在为特定阶段启用推测之前必须完成的任务的百分比。
  • spark.speculation.multiplier 1.5 任务比被考虑进行推测的中位数慢多少倍。

  • (来源:http://spark.apache.org/docs/latest/configuration.html)

    关于scala - Apache Spark : local[K] master URL - job gets stuck,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20187048/

    相关文章:

    string - 字符串迭代器的意外行为

    hadoop - 从 Spark RDD 中删除空分区

    scala - 如何为 SBT 设置默认项目

    apache-kafka - Apache Flink 1.4 与 Apache Kafka 1.0.0

    scala - 使用 sc.textFile() 加载本地文件以激发

    apache-spark - Spark2无法将数据帧写入 Parquet hive 表: HiveFileFormat`.与指定格式 `ParquetFileFormat`不匹配

    scala - Spark : Would a dataframe repartitioned to one node experience a shuffle when a groupBy is called on it?

    c# - 去 - 斯卡拉 - 去!主要区别是什么?

    Scala:重写采用隐式参数的方法的首选方法?

    git - 如何依赖GitHub上Maven管理的项目?