【发布时间】:2017-09-08 13:58:03
【问题描述】:
我有一个有 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"
另外,我尝试将此 jar 添加到所有节点的 spark\jars 目录中 - 这对我不起作用
如何将此 jar 分发到我的集群?
完全错误(同一条消息多次):
java.lang.NoClassDefFoundError: com/twitter/jsr166e/LongAdder 在 org.apache.spark.metrics.OutputMetricsUpdater$TaskMetricsSupport$class.$init$(OutputMetricsUpdater.scala:107) 在 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.insert(TableWriter.scala:162) 在 com.datastax.spark.connector.writer.TableWriter.write(TableWriter.scala:149) 在 com.datastax.spark.connector.RDDFunctions$$anonfun$saveToCassandra$1.apply(RDDFunctions.scala:36) 在 com.datastax.spark.connector.RDDFunctions$$anonfun$saveToCassandra$1.apply(RDDFunctions.scala:36) 在 org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:87) 在 org.apache.spark.scheduler.Task.run(Task.scala:108) 在 org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:335) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 在 java.lang.Thread.run(Thread.java:748)
更新
如果我使用本地模式并通过以下方式启动它:
spark-shell --jars /data/tmp/spark-cassandra-connector-2.0.5-s_2.11.jar,/data/tmp/jsr166e-1.1.0.jar
可以,但是集群模式下不行
【问题讨论】:
标签: scala apache-spark jar