在Spark Streaming 2.0.0作业中使用->
或使用spark-streaming-kafka-0-8_2.11
v2.0.0并使用spark-submit
提交时,我收到以下错误:
线程中的异常" main" org.apache.spark.SparkException:作业因阶段失败而中止:阶段72.0中的任务0失败1次,最近失败:阶段72.0中丢失的任务0.0(TID 37,localhost):java.lang.NoSuchMethodError:scala.Predef $ .ArrowAssoc(Ljava /郎/对象;)Ljava /郎/对象;
我在GitHub回购中简要介绍了这种现象:spark-2-streaming-nosuchmethod-arrowassoc
仅将提供的依赖项添加到build.sbt
"org.apache.spark" %% "spark-core" % "2.0.0" % "provided",
"org.apache.spark" %% "spark-streaming" % "2.0.0" % "provided"
在驱动程序代码中的任意位置使用->
,将其与sbt-assembly
打包并提交作业会导致错误。这本身并不是一个大问题,可以避免使用ArrayAssoc
,但是spark-streaming-kafka-0-8_2.11
v2.0.0将它放在某处,并产生相同的错误。
这样做:
wordCounts.map{
case (w, c) => Map(w -> c)
}.print()
然后
sbt assembly
然后
spark-2.0.0-bin-hadoop2.7/bin/spark-submit \
--class org.apache.spark.examples.streaming.NetworkWordCount \
--master local[2] \
--deploy-mode client \
./target/scala-2.11/spark-2-streaming-nosuchmethod-arrowassoc-assembly-1.0.jar \
localhost 5555
答案 0 :(得分:0)
assemblyOption in assembly := (assemblyOption in assembly).value.copy(includeScala = false)
SPARK_HOME
环境变量指向Spark 1.6.2,从spark-submit
开始运行SPARK_HOME
并不重要, while($row = mysql_fetch_array($req)){
$acdata[] = array(
'name' => $name,
'firstname' => $firstname,
'mail' => $mail,
'nationality' => $nationality,
'city' => $city
);
}
header('Content-type: application/json');
echo json_encode(array('acdata'=>$acdata));
应该正确设置。