作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在我的计算机上本地测试 Apache Spark 上的网络爬行/抓取程序。
该程序使用了一些 RDD 转换,这些转换采用了偶尔会失败的 volatile 函数。 (该函数的目的是将 URL 链接转换为网页,有时它调用的 headless 浏览器只是停电或过载 - 我无法避免)
我听说 Apache Spark 具有强大的故障转移和重试功能,任何不成功的转换或丢失的数据都可以从它可以找到的任何资源从头开始重新计算(听起来很神奇吧?)所以我没有在我的代码。
这是我的 Spark 配置:
val conf = new SparkConf().setAppName("MoreLinkedIn")
conf.setMaster("local[*]")
conf.setSparkHome(System.getenv("SPARK_HOME"))
conf.setJars(SparkContext.jarOfClass(this.getClass).toList)
conf.set("spark.task.maxFailures","40") //definitely enough
Exception in thread "main" org.apache.spark.SparkException: Job aborted due to stage failure: Task 1.0:7 failed 1 times, most recent failure: Exception failure in TID 23 on host localhost: org.openqa.selenium.TimeoutException: Timed out after 50 seconds waiting for...
def main(args: Array[String]) {
val conf = new SparkConf().setAppName("Spark Pi")
conf.setMaster("local[*]")
conf.setSparkHome(System.getenv("SPARK_HOME"))
conf.setJars(SparkContext.jarOfClass(this.getClass).toList)
conf.set("spark.task.maxFailures","400000")
val sc = new SparkContext(conf)
val slices = if (args.length > 0) args(0).toInt else 8
val n = 100000 * slices
val count = sc.parallelize(1 to n, slices).map { i =>
val x = java.lang.Math.random()
if (x > 0.9) throw new IllegalStateException("the map has a chance of 10% to fail")
x
}.reduce(_ + _)
sc.stop()
println("finished")
}
最佳答案
我知道这是一个非常古老的问题,但我遇到了完全相同的问题,并在寻找解决方案时遇到了这个问题。
有 3 种主 URL 格式可以在本地模式下提交 Spark 应用程序:
local
- 一个线程(无并行性),无重试 local[K]
(或 local[*]
) - 使用 K
(或内核数)工作线程和集 task.maxFailures
至 1
( see here ) local[K, F]
(或 local[*, F])
- 设置 task.maxFailures=F
,这就是我们所追求的。关于apache-spark - Apache Spark 作业立即失败而无需重试,设置 maxFailures 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24113460/
我正在我的计算机上本地测试 Apache Spark 上的网络爬行/抓取程序。 该程序使用了一些 RDD 转换,这些转换采用了偶尔会失败的 volatile 函数。 (该函数的目的是将 URL 链接转
我是一名优秀的程序员,十分优秀!