gpt4 book ai didi

apache-spark - Spark : fail to run the terasort when the amount of data gets bigger

转载 作者:行者123 更新时间:2023-12-01 00:57:36 27 4
gpt4 key购买 nike

我有一个包含 terasort 的 spark bench,当数据只有几百 GB 时它可以正常运行,但是当我生成更多数据(例如 1 TB)时,它在某些步骤中出错了。以下是我的代码:

import org.apache.spark.rdd._
import org.apache.spark._
import org.apache.spark.SparkContext._


object ScalaTeraSort{

def main(args: Array[String]){
if (args.length < 2){
System.err.println(
s"Usage: $ScalaTeraSort <INPUT_HDFS> <OUTPUT_HDFS>"
)
System.exit(1)
}
val sparkConf = new SparkConf().setAppName("ScalaTeraSort")
val sc = new SparkContext(sparkConf)

val file = sc.textFile(args(0))
val data = file.map(line => (line.substring(0, 10), line.substring(10)))
.sortByKey().map{case(k, v) => k + v}
data.saveAsTextFile(args(1))

sc.stop()
}

}

这段代码主要包括3个步骤:sortByKey、map和saveAsTextFile。前两步似乎没有错,但是到了第三步时,总是出错,然后重试了第二步。因为 ,第三步出错了"FetchFailed(BlockManagerId(40, sr232, 44815, 0), shuffleId=0, mapId=11825, reduceId=0)"

最佳答案

我找到了原因,本质问题是: java.io.IOException:sendMessageReliably 失败,因为 60 秒内未收到 ack

也就是说,您必须将属性“spark.core.connection.ack.wait.timeout”设置为更大的值,默认为 60 秒。否则,阶段将因长时间不响应而失败。

关于apache-spark - Spark : fail to run the terasort when the amount of data gets bigger,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26247654/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com