Vij*_*jay 6 scala sbt apache-spark
我使用的Apache 0.8.0火花处理大量数据文件,并执行一些基本的.map和.reduceByKey操作上RDD.
由于我使用的是具有多个处理器的单台机器,因此我local[8]在创建时在主URL字段中提及SparkContext
val sc = new SparkContext("local[8]", "Tower-Aggs", SPARK_HOME )
Run Code Online (Sandbox Code Playgroud)
但每当我提到多个处理器时,作业就会随机卡住(暂停/暂停).它没有确定的地方被卡住,它只是随机的.有时它根本不会发生.我不确定它是否会在此之后继续但是它会在很长一段时间内停滞不前,之后我就放弃了这份工作.
但是,当我只是用local它代替时local[8],工作无缝地运行而不会卡住.
val sc = new SparkContext("local", "Tower-Aggs", SPARK_HOME )
Run Code Online (Sandbox Code Playgroud)
我无法理解问题出在哪里.
我正在使用Scala 2.9.3并sbt构建和运行应用程序
我正在使用 Spark 1.0.0 并遇到了同样的问题:如果一个函数无限期地传递给转换或操作等待/循环,那么 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)