Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法使用java中的Spark在ElasticSearch中写入(抛出java.lang.CompatibleClassChangeError:实现类异常)_Java_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Apache Spark - Fatal编程技术网 elasticsearch,apache-spark,Java,elasticsearch,Apache Spark" /> elasticsearch,apache-spark,Java,elasticsearch,Apache Spark" />

无法使用java中的Spark在ElasticSearch中写入(抛出java.lang.CompatibleClassChangeError:实现类异常)

无法使用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

我正在使用一个简单的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());
    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