当前位置: 首页 > 知识库问答 >
问题:

Spark KryoException:找不到类:CassandraSQLRow

周阳波
2023-03-14

我使用卡珊德拉2.1.5(dsc),火花1.2.1与火花卡珊德拉连接器1.2.1。

运行Spark作业(scala脚本)时,出现以下错误:

16/03/08 10:22:03INFO DAGScheduler:作业0失败:减少在JsonRDD. scala: 57,采取了15.051150的异常线程"main"org.apache.spark.SparkExc0019:作业中止由于阶段故障:阶段1.0中的任务1失败1次,最近的失败:丢失的任务阶段1.0中的1.0(TID 4,localhost):com.esotericsoftware.kryo.Kryo异常:无法找到类:org.apache.spark.sql.cassandra.CassandraS QLRow

我尝试使用以下方法执行此处描述的操作:

/home/ubuntu/spark-1.2.1/bin/spark-submit --driver-class-path /home/ubuntu/.ivy2/cache/com.datastax.spark/spark-cassandra-connector_2.10/jars/spark-cassandra-connector_2.10-1.2.1.jar --conf spark.executor.extraClassPath=/home/ubuntu/.ivy2/cache/com.datastax.spark/spark-cassandra-connector_2.10/jars/spark-cassandra-connector_2.10-1.2.1.jar --class "$class" "$jar"

但只会得到以下错误:

线程“main”java中出现异常。lang.NoClassDefFoundError:com/datastax/driver/core/consistentylevel位于com。数据税。火花连接器。作家WriteConf$。(WriteConf.scala:76)在com。数据税。火花连接器。作家WriteConf$。(WriteConf.scala)在com。数据税。火花连接器。util。ConfigCheck$。(ConfigCheck.scala:23)在com上。数据税。火花连接器。util。ConfigCheck$。(ConfigCheck.scala)在com上。数据税。火花连接器。cql。CassandraConnectorConf$。在com上应用(CassandraConnectorConf.scala:81)。数据税。火花连接器。cql。CassandraConnector$。在com上应用(CassandraConnector.scala:204)。数据税。火花连接器。RDD函数。在co.crowdx上加入cassandratable$default$5(RDDFunctions.scala:127)。聚合。SignalIO$。位于co.crowdx的main(SignalIO.scala:92)。聚合。信号。太阳上的主(信号量)。反映NativeMethodAccessorImpl。在sun上调用0(本机方法)。反映NativeMethodAccessorImpl。在sun上调用(NativeMethodAccessorImpl.java:57)。反映DelegatingMethodAccessorImpl。在java上调用(DelegatingMethodAccessorImpl.java:43)。朗。反思。方法在org调用(Method.java:606)。阿帕奇。火花部署SparkSubmit$。在org上发布(SparkSubmit.scala:358)。阿帕奇。火花部署SparkSubmit$。main(SparkSubmit.scala:75)位于org。阿帕奇。火花部署SparkSubmit。main(SparkSubmit.scala)

引起原因:java.lang.ClassNotFound异常:com.datastax.driver.core.一致性级别

可能是什么问题?(我现在不想升级spark或cassandra)

编辑:

我试图运行火花外壳,以更简单的方式看到问题:

spark-1.2.1/bin/spark-shell --jars /home/ubuntu/.ivy2/cache/com.datastax.spark/spark-cassandra connector_2.10/jars/spark-cassandra-connector_2.10-1.2.1.jar --conf spark.cassandra.connection.host=11.11.11.11

并尝试运行简单的命令:

> scala> import org.apache.spark.sql.cassandra.CassandraSQLContext
> import org.apache.spark.sql.cassandra.CassandraSQLContext
> 
> scala> import org.apache.spark.sql.SchemaRDD import
> org.apache.spark.sql.SchemaRDD
> 
> scala> val cc = new CassandraSQLContext(sc) cc:
> org.apache.spark.sql.cassandra.CassandraSQLContext =
> org.apache.spark.sql.cassandra.CassandraSQLContext@1c41c05e
> 
> scala> val rdd = cc.sql("select * from listener.scans_daily_imei_partitioned as a, listener.scans_daily_imei_partitioned as b where a.id=b.id")

我得到了以下错误:

rdd:org。阿帕奇。火花sql。SchemaRDD=SchemaRDD[0]在SchemaRDD的RDD处。scala:108==查询计划===物理计划==com.google.常见的util。同时发生的ExecutionError:java。lang.NoClassDefFoundError:com/datastax/driver/core/consistentylevel

共有1个答案

劳通
2023-03-14

我解决了自编译的火花-卡桑德拉连接器的问题:

wget https://github.com/datastax/spark-cassandra-connector/archive/v1.2.1.zip
unzip v1.2.1.zip
cd spark-cassandra-connector-1.2.1
sbt assembly
cp /home/ubuntu/spark-cassandra-connector-1.2.1/spark-cassandra-connector-java/target/scala-2.10/spark-cassandra-connector-java-assembly-1.2.1.jar spark-cassandra-connector-java-assembly-1.2.1-FAT.jar

并将火花用作:

/home/ubuntu/spark-1.2.1/bin/spark-submit --driver-class-path /home/ubuntu/spark-cassandra-connector-java-assembly-1.2.1-FAT.jar --conf spark.executor.extraClassPath=/home/ubuntu/spark-cassandra-connector-java-assembly-1.2.1-FAT.jar --class "$class" "$jar"

它工作得很好。

 类似资料:
  • 问题内容: 我已经安装了两个jdk-jdk 1.5和jdk 1.8。我有以下Ant build.xml配置文件: 在安装jdk1.8之前,从Eclipse调用的Ant成功编译了所有源代码。但是现在,我有以下错误消息: 我的JAVA_HOME和JRE_HOME: 并在Eclipse JRE中将其设置为1.5。Java 1.8在安装过程中会设置一些配置吗? 问题答案: 已知低于1.9.0的Apache

  • 我已经安装了两个JDK--JDK1.5和JDK1.8。我有以下Ant build.xml配置文件: 在安装JDK1.8之前,从Eclipse调用的Ant成功地编译了所有源代码。但现在,我有以下错误消息: 我的JAVA_HOME和JRE_HOME: 并在Eclipse JRE中设置为1.5。Java 1.8在安装过程中是否设置了一些配置?

  • 问题内容: 我试图使用SpringJUnit4ClassRunner创建一个单元测试,但是每次执行测试时,它都说它无法使用mvn install找到SpringJUnit4ClassRunner。 这是我的代码 这是我的POM文件: 我正在使用适合IDE的springSource工具开发此spring mvc应用程序,并且在IDE上将SpringJUnit4ClassRunner突出显示为错误,尽

  • 问题内容: 我正在尝试使用Jersey框架构建RESTFul客户端,因此添加了以下类: 但是,即使我在WEB-INF / lib和应用程序类路径下有以下jar,我也找不到未找到的错误类ClientBuilder: 所以有人可以告诉我我在这里想念的那个罐子吗?在哪里可以找到它?我搜索了Web,发现唯一具有ClientBuilder的jar与RESTEasy框架有关,所以我认为这没有关系。 谢谢你的时

  • 问题内容: 我一直在尝试在脚本中打开Word文档,但收到相同的错误。 我的代码: 我试图更改和删除部分中的分号。 仍然出现相同的错误。 我在Mac和基于Linux的虚拟主机上使用的。 问题答案: 从PHP 5.4.5开始,COM和DOTNET不再内置在php内核中。您必须在php.ini中添加COM支持: 否则,您将在错误日志中看到此消息:致命错误:未找到类“ COM” 该扩展包含在Windows

  • 问题内容: 我在Magento应用程序的页面上发现错误;当我访问它时,它总是显示此消息错误: 致命错误:在第95行的/home/…/lib/Zend/Feed/Abstract.php中找不到类’DOMDocument’ 你能给我解决办法吗?我正在使用magento 1.4.1.1。 问题答案: 您需要安装DOM扩展。您可以使用以下命令在Debian / Ubuntu上执行此操作: 在Centos

  • 问题内容: JPype是一个了不起的项目,因为我允许直接从实例化一个。 不幸的是,我陷入了第一步。 我有源代码( ): 使用以下命令将其编译为类: 因此,A.class位于 文件夹中。 我有以下源代码: 运行它时,出现以下错误: 由于找不到A类,可能是与CLASSPATH相关的问题,但是我无法意识到我做错了什么。 有什么线索吗? 编辑1: 问题仍然存在。但是,只是增加了我的问题,如果我使用本机Ja

  • 问题内容: 我正在尝试将Spring与Hibernate结合使用。View使用JSTL。当我在浏览器中打开页面时,我看到错误: 这是我与pom.xml的依赖关系的一部分,与此相关: 哪里有问题?我正在使用tomcat版本6。 问题答案: 问题出在web.xml中的servlet版本错误。我已经做到2.5了,所有的作品。