![](/img/trans.png)
[英]What situation will throw exception "WARN TaskSetManager: Lost task 0.0 in stage 1.0 (TID 1, localhost): scala.util.control.BreakControl"
[英]Lost task in 1.0 in stage 0.0
我是Spark和Scala的新手。 我正在嘗試做的是使一個簡單的WordCount工作。
package demo
import org.apache.spark.{SparkConf, SparkContext}
import org.apache.spark.SparkContext._
object WordCount extends App {
// Create a Scala Spark Context.
val conf = new SparkConf().setAppName("wordCount").setMaster("spark://MyHost")
val sc = new SparkContext(conf)
// Load our input data.
val input = sc.textFile("words.txt")
// Split it up into words.
val words = input.flatMap(line => line.split(" "))
// Transform into word and count.
val counts = words.map(word => (word, 1)).reduceByKey{case (x, y) => x + y}
// Save the word count back out to a text file, causing evaluation.
counts.saveAsTextFile("wordsCount.txt")
}
我已經設置了一個Master,並啟動了一個與Master相連的Worker。
當我運行示例時,出現以下錯誤:
Lost task 1.0 in stage 0.0 (TID 1, MyHost): java.lang.ClassNotFoundException: demo.WordCount$$anonfun$2
我真的不知道這意味着什么。
我的build.sbt看起來像這樣:
name := "SimpleWordCount"
version := "0.0.1"
scalaVersion := "2.10.4"
libraryDependencies ++= Seq(
"org.apache.spark" %% "spark-core" % "1.2.0" % "provided"
)
代碼看起來不錯,該錯誤告訴您他找不到方法中定義的閉包之一(此閉包現在表示為匿名類,因此出現“ ClassNotFound”錯誤)。 似乎是版本和/或部署問題。 我的猜測是jar代碼沒有部署到spark節點。
首先,在build.sbt中使用版本“ 1.2.1”作為火花(就像您的主節點一樣),其次檢查http://spark.apache.org/docs/1.2.1/submitting-applications.html以了解如何將您的jar提交到服務器,第三,您可以在代碼中省略“ setMaster”,因為提交腳本現在將處理它。
您需要將必要的罐子設置為火花上下文
val conf = new SparkConf().setAppName("wordCount").setMaster("spark://MyHost").setJars(Seq("$HOME/WordCount.jar",...))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.