我试图在依赖于spark cassandra连接器库的mesos集群上执行spark作业,但它一直失败
Exception in thread "main" java.lang.NoClassDefFoundError: com/datastax/spark/connector/package$
我从spark文档中了解到
jar和文件被复制到executor节点上每个sparkcontext的工作目录中。。。用户还可以通过提供带有--包的以逗号分隔的maven坐标列表来包含任何其他依赖项。
但似乎只有 pucker-assembly-1.0.jar
任务jar是分布式的。
我正在用scala 2.10.6运行spark 1.6.1。这里是 spark-submit
我正在执行的命令:
spark-submit --deploy-mode cluster
--master mesos://localhost:57811
--conf spark.ssl.noCertVerification=true
--packages datastax:spark-cassandra-connector:1.5.1-s_2.10
--conf spark.cassandra.connection.host=10.0.1.83,10.0.1.86,10.0.1.85
--driver-cores 3
--driver-memory 4000M
--class SimpleApp
https://dripit-spark.s3.amazonaws.com/pucker-assembly-1.0.jar
s3n://logs/E1SR85P3DEM3LU.2016-05-05-11.ceaeb015.gz
为什么不呢 spark-cassandra-connector
分发给我所有的spark执行者?
1条答案
按热度按时间5ssjco0h1#
您应该使用正确的maven坐标语法:
看见
https://mvnrepository.com/artifact/com.datastax.spark/spark-cassandra-connector_2.10
http://spark.apache.org/docs/latest/submitting-applications.html
http://spark.apache.org/docs/latest/programming-guide.html#using-贝壳