我有一个带有4个节点的星火集群,我尝试启动app: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添加到所有节点的\jars dir中--这对我来说不管用。
我如何将这个罐子分发到集群中?
完全错误(相同的消息多次):
com/twitter/jsr166e/LongAdder at org.apache.spark.metrics.OutputMetricsUpdater$TaskMetricsSupport$class.$init$(OutputMetricsUpdater.scala:107) at org.apache.spark.metrics.OutputMetricsUpdater$TaskMetricsUpdater.(OutputMetricsUpdater.scala:153) at org.apache.spark.metrics.OutputMetricsUpdater$.apply(OutputMetricsUpdater.scala:75) at com.datastax.spark.connector.writer.TableWriter.writeInternal(TableWriter.scala:174) at com.datastax.spark.connector.writer.TableWriter.insert(com.datastax.spark.connector.writer.TableWriter.write(TableWriter.scala:149) at com.datastax.spark.connector.RDDFunctions$$anonfun$saveToCassandra$1.apply(RDDFunctions.scala:36) at com.datastax.spark.connector.RDDFunctions$$anonfun$saveToCassandra$1.apply(RDDFunctions.scala:36) at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:87) at org.apache.spark.scheduler.Task.run(Task.scala:108) at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:335) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at 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 它可以工作,但对于集群模式却不起作用
发布于 2017-09-08 15:05:35
问题是SPARK_HOME环境变量中没有在节点上定义
发布于 2017-11-20 13:23:58
如果您没有jsr166e.jar,请从maven repo下载它,并将jsr166e.jar文件复制到SPARK_HOME/jars/(在所有星火节点上),然后再试一次,这是我的工作。
https://stackoverflow.com/questions/46118225
复制相似问题