java.lang.NoClassDefFoundError:com / twitter / jsr166e / LongAdder

Nic*_*yan 2 scala jar apache-spark

我有一个包含4个节点的Spark集群,并且尝试启动应用程序: spark-submit --deploy-mode cluster --class "Init" --master spark://host /home/cassandra/spark2Cassandra-assembly-0.1.jar-即使添加此功能,这也无法正常工作:--jars /home/cassandra/jsr166e-1.1.0.jar

此外,我尝试将所有依赖项都组装到我的应用程序中 com/twitter/jsr166e/LongAdder

libraryDependencies += "com.twitter" % "jsr166e" % "1.1.0"
Run Code Online (Sandbox Code Playgroud)

另外,我试图将此jar添加到所有节点的spark \ jars目录中-这对我不起作用

如何将这个jar分发到群集中?

完全错误(多次出现同一条消息):

java.lang.NoClassDefFoundError:org.apache.spark.metrics.OutputMetricsUpdater $ TaskMetricsSupport $ class。$ init $(OutputMetricsUpdater.scala:107)上的com / twitter / jsr166e / LongAdder在org.apache.spark.metrics.OutputMetricsUpdater $ TaskMetricsUpdater 。(OutputMetricsUpdater.scala:153)位于org.apache.spark.metrics.OutputMetricsUpdater $ .apply(OutputMetricsUpdater.scala:75)位于com.datastax.spark.connector.writer.TableWriter.writeInternal(TableWriter.scala:174) com.datastax.spark.connector.writer.TableWriter.write(TableWriter.scala:149)处的com.datastax.spark.connector.writer.TableWriter.insert(TableWriter.scala:162) RDDFunctions $$ anonfun $ saveToCassandra $ 1.apply(RDDFunctions.scala:36)位于com.datastax.spark.connector.RDDFunctions $$ anonfun $ saveToCassandra $ 1.apply(RDDFunctions.scala:36)位于org.apache.spark.executor.Executor的org.apache.spark.scheduler.Task.run(Task.scala:108)的org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:87) Java上的java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)的$ TaskRunner.run(Executor.scala:335)在Java的java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:617) lang.Thread.run(Thread.java:748)java:748)java:748)

更新

如果我使用本地模式并通过以下方式启动它:

spark-shell --jars /data/tmp/spark-cassandra-connector-2.0.5-s_2.11.jar,/data/tmp/jsr166e-1.1.0.jar 
Run Code Online (Sandbox Code Playgroud)

它可以工作,但是对于集群模式却不起作用

小智 6

jsr166e.jar如果没有,请从maven repo 下载,然后将jsr166e.jar文件复制到SPARK_HOME/jars/(在所有spark节点上),然后重试。对我来说这是工作。