我正在使用 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.3
和 sbt
构建和运行应用程序
最佳答案
我正在使用 spark 1.0.0 并遇到了同样的问题:如果一个函数无限期地传递给一个转换或 Action 等待/循环,那么 spark 默认不会唤醒它或终止/重试它,在这种情况下你可以杀死任务。
但是,最近的一项功能(推测性任务)允许 Spark 启动复制任务,如果一些任务花费的时间比其对等项的平均运行时间长得多。这可以在以下配置属性中启用和配置:
(来源: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/