无法使用java中的Spark在ElasticSearch中写入(抛出java.lang.CompatibleClassChangeError:实现类异常)
我正在使用一个简单的Java程序将spark JavaRDD索引到Elasticsearch中。我的代码如下所示-无法使用java中的Spark在ElasticSearch中写入(抛出java.lang.CompatibleClassChangeError:实现类异常),java,elasticsearch,apache-spark,Java,elasticsearch,Apache Spark,我正在使用一个简单的Java程序将spark JavaRDD索引到Elasticsearch中。我的代码如下所示- SparkConf conf = new SparkConf().setAppName("IndexDemo").setMaster("spark://ct-0094:7077"); conf.set("spark.serializer", org.apache.spark.serializer.KryoSerializer.class.getName()); c
SparkConf conf = new SparkConf().setAppName("IndexDemo").setMaster("spark://ct-0094:7077");
conf.set("spark.serializer", org.apache.spark.serializer.KryoSerializer.class.getName());
conf.set("es.index.auto.create", "true");
conf.set("es.nodes", "192.168.50.103");
conf.set("es.port", "9200");
JavaSparkContext sc = new JavaSparkContext(conf);
sc.addJar("./target/SparkPOC-0.0.1-SNAPSHOT-jar-with-dependencies.jar");
String arrayval = "string";
List<Data> data = Arrays.asList(
new Data(1l, 10l, arrayval+"1"),
new Data(2l, 20l, arrayval+"2"),
new Data(3l, 30l, arrayval+"3"),
new Data(4l, 40l, arrayval+"4"),
new Data(5l, 50l, arrayval+"5"),
new Data(6l, 60l, arrayval+"6"),
new Data(7l, 70l, arrayval+"7"),
new Data(8l, 80l, arrayval+"8"),
new Data(9l, 90l, arrayval+"9"),
new Data(10l, 100l, arrayval+"10")
);
JavaRDD<Data> javaRDD = sc.parallelize(data);
saveToEs(javaRDD, "index/type");
SparkConf conf=new SparkConf().setAppName(“IndexDemo”).setMaster(“spark://ct-0094:7077");
conf.set(“spark.serializer”,org.apache.spark.serializer.KryoSerializer.class.getName());
conf.set(“es.index.auto.create”、“true”);
conf.set(“es.nodes”,“192.168.50.103”);
conf.set(“es.port”、“9200”);
JavaSparkContext sc=新的JavaSparkContext(conf);
sc.addJar(“./target/SparkPOC-0.0.1-SNAPSHOT-jar-with-dependencies.jar”);
String arrayval=“String”;
List data=Arrays.asList(
新数据(1l、10l、arrayval+1“),
新数据(2l、20l、arrayval+“2”),
新数据(3l、30l、arrayval+“3”),
新数据(4l、40l、arrayval+“4”),
新数据(5l、50l、arrayval+“5”),
新数据(6l,60l,arrayval+“6”),
新数据(7l、70l、arrayval+“7”),
新数据(8l、80l、arrayval+“8”),
新数据(9l、90l、arrayval+“9”),
新数据(10l、100l、arrayval+“10”)
);
javarddjavardd=sc.parallelize(数据);
saveToEs(javaRDD,“索引/类型”);
运行上述代码会出现异常(堆栈跟踪)——
15/01/16 13:20:41 INFO spark.SecurityManager:将视图ACL更改为:root
15/01/16 13:20:41 INFO spark.SecurityManager:将修改ACL更改为:root
15/01/16 13:20:41 INFO spark.SecurityManager:SecurityManager:身份验证已禁用;ui ACL被禁用;具有查看权限的用户:Set(root);具有修改权限的用户:Set(root)
15/01/16 13:20:41信息slf4j.Slf4jLogger:Slf4jLogger启动
15/01/16 13:20:41信息远程处理:开始远程处理
15/01/16 13:20:41信息远程处理:远程处理已开始;收听地址:[阿克卡。tcp://sparkDriver@ct-0015:55586]
15/01/16 13:20:41信息实用程序:已在端口55586上成功启动服务“sparkDriver”。
15/01/16 13:20:41信息spark.SparkEnv:注册MapOutputTracker
15/01/16 13:20:41信息spark.SparkEnv:注册BlockManagerMaster
15/01/16 13:20:41 INFO storage.DiskBlockManager:已在/tmp/spark-local-20150116132041-f924创建本地目录
15/01/16 13:20:41信息存储。MemoryStore:MemoryStore已启动,容量为2.3 GB
15/01/16 13:20:41警告util.NativeCodeLoader:无法为您的平台加载本机hadoop库。。。在适用的情况下使用内置java类
15/01/16 13:20:41 INFO spark.HttpFileServer:HTTP文件服务器目录为/tmp/spark-a65b108f-e131-480a-85b2-ed650cf991
15/01/16 13:20:42 INFO spark.HttpServer:正在启动HTTP服务器
15/01/16 13:20:42信息服务器。服务器:jetty-8.1.14.v20131031
15/01/16 13:20:42信息服务器。抽象连接器:已启动SocketConnector@0.0.0.0:34049
15/01/16 13:20:42 INFO util.Utils:已在端口34049上成功启动服务“HTTP文件服务器”。
15/01/16 13:20:42信息服务器。服务器:jetty-8.1.14.v20131031
15/01/16 13:20:42信息服务器。抽象连接器:已启动SelectChannelConnector@0.0.0.0:4040
15/01/16 13:20:42 INFO util.Utils:已在端口4040上成功启动服务“SparkUI”。
15/01/16 13:20:42信息ui.SparkUI:从
15/01/16 13:20:42信息客户端。AppClient$ClientActor:连接到主服务器spark://ct-0094:7077...
16年1月15日13:20:42信息群集。SparkDeploySchedulerBackend:已连接到应用程序ID为app-20150116131933-0078的Spark群集
15/01/16 13:20:42 INFO netty.NettyBlockTransferService:在34762上创建的服务器
15/01/16 13:20:42信息存储。BlockManager管理员:正在尝试注册BlockManager
16年1月15日13:20:42信息存储。BlockManagerMasterActor:使用2.3 GB RAM注册块管理器ct-0015:34762,BlockManagerId(,ct-0015,34762)
15/01/16 13:20:42信息存储。BlockManager管理员:已注册的BlockManager
15/01/16 13:20:42 INFO cluster.SparkDeploySchedulerBackend:SchedulerBackend在到达minRegisteredResourcesRatio:0.0后已准备好进行调度
15/01/16 13:20:43信息spark.SparkContext:添加了JAR./target/SparkPOC-0.0.1-SNAPSHOT-JAR-with-dependencies.JAR,时间戳为1421394643161
线程“main”java.lang.CompatibleClassChangeError中出现异常:实现类
位于java.lang.ClassLoader.defineClass1(本机方法)
位于java.lang.ClassLoader.defineClass(ClassLoader.java:760)
位于java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
位于java.net.URLClassLoader.defineClass(URLClassLoader.java:455)
在java.net.URLClassLoader.access$100(URLClassLoader.java:73)
在java.net.URLClassLoader$1.run(URLClassLoader.java:367)
在java.net.URLClassLoader$1.run(URLClassLoader.java:361)
位于java.security.AccessController.doPrivileged(本机方法)
位于java.net.URLClassLoader.findClass(URLClassLoader.java:360)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:424)
位于sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:357)
在org.elasticsearch.spark.rdd.EsSpark$.saveToEs上(EsSpark.scala:30)
在org.elasticsearch.spark.rdd.EsSpark$.saveToEs上(EsSpark.scala:24)
在org.elasticsearch.spark.rdd.api.java.JavaEsSpark$.saveToEs(JavaEsSpark.scala:28)
在org.elasticsearch.spark.rdd.api.java.JavaEsSpark.saveToEs(JavaEsSpark.scala)上
在com.cleartrail.spark.poc.elasticsearch.demo.ESPerformerClass.main(ESPerformerClass.java:39)
我在pom.xml中有以下依赖项-
<dependencies>
<dependency> <!-- Spark dependency -->
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.10</artifactId>
<version>1.2.0</version>
</dependency>
<dependency>
<groupId>org.spark-project</groupId>
<artifactId>spark-streaming_2.9.2</artifactId>
<version>0.7.0</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-streaming_2.10</artifactId>
<version>1.2.0</version>
</dependency>
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch-hadoop</artifactId>
<version>2.0.2</version>
</dependency>
</dependencies>
org.apache.spark
spark-core_2.10
1.2.0
org.spark-project
spark-U 2.9.2
0.7.0
org.apache.spark
spark-2.10
1.2.0
org.elasticsearch
弹性搜索hadoop
2.0.2
我使用的是ElastiSearch-0.90.3,Apache Spark-1.2.0
是否存在版本不匹配?或者不推荐使用saveToEs方法?Actu