使用scala運行spark工作,正如所料,所有工作都按時完成,但某些INFO日誌在工作停止前打印20-25分鐘。Spark工作完成,但應用程序需要時間關閉
發佈幾個UI截圖,可以幫助解決問題。
- 以下是採取4個階段時間:
- 以下是連續的作業ID
我之間的時間不明白爲什麼在這兩個工作ID之間花費了很多時間。
以下是我的代碼片段:
val sc = new SparkContext(conf)
for (x <- 0 to 10) {
val zz = getFilesList(lin);
val links = zz._1
val path = zz._2
lin = zz._3
val z = sc.textFile(links.mkString(",")).map(t => t.split('\t')).filter(t => t(4) == "xx" && t(6) == "x").map(t => titan2(t)).filter(t => t.length > 35).map(t => ((t(34)), (t(35), t(5), t(32), t(33))))
val way_nodes = sc.textFile(way_source).map(t => t.split(";")).map(t => (t(0), t(1)));
val t = z.join(way_nodes).map(t => (t._2._1._2, Array(Array(t._2._1._2, t._2._1._3, t._2._1._4, t._2._1._1, t._2._2)))).reduceByKey((t, y) => t ++ y).map(t => process(t)).flatMap(t => t).combineByKey(createTimeCombiner, timeCombiner, timeMerger).map(averagingFunction).map(t => t._1 + "," + t._2)
t.saveAsTextFile(path)
}
sc.stop()
一些更隨訪:spark-1.4.1 saveAsTextFile to S3 is very slow on emr-4.0.0
我想一般一個更新的代碼建議使用Databricks中的spark-csv包而不是saveAsTextFile,但除此之外,您運行的是哪個Spark版本? –
saveAsTextFile的優點是我可以直接在s3上保存所有內容,不知道spark-csv包數據框如何工作。感謝一些方向,無論如何將調查它。 spark - 1.4.1 scala - 2.10.6 – Harshit