Search code examples
hadoopignite

Hive jdbc driver not working with ignite - java.lang.IncompatibleClassChangeError: Implementing class


I am trying to use ignite with hive (hadoop as secondry file system). I have a java api. I need to insert data in hive so I needed following dependency.

<dependency>
    <groupId>org.apache.hive</groupId>
    <artifactId>hive-jdbc</artifactId>
    <version>2.1.1</version>
    <exclusions>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-log4j12</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>log4j</groupId>
                    <artifactId>log4j</artifactId>
                </exclusion>
            </exclusions>
</dependency>

As soon as I insert this dependency in my pom file, Ignite stopped working and gives following error. java.lang.IncompatibleClassChangeError: Implementing class

1077 [main] INFO  o.s.b.f.x.XmlBeanDefinitionReader - Loading XML bean definitions from URL [file:/C:/apache-ignite-fabric-1.9.0-bin/config/default-config.xml]
1158 [main] INFO  o.s.c.s.GenericApplicationContext - Refreshing org.springframework.context.support.GenericApplicationContext@7ea37dbf: startup date [Fri Apr 07 11:40:26 IST 2017]; root of context hierarchy
[11:40:27]    __________  ________________ 
[11:40:27]   /  _/ ___/ |/ /  _/_  __/ __/ 
[11:40:27]  _/ // (7 7    // /  / / / _/   
[11:40:27] /___/\___/_/|_/___/ /_/ /___/  
[11:40:27] 
[11:40:27] ver. 1.9.0#20170302-sha1:a8169d0a
[11:40:27] 2017 Copyright(C) Apache Software Foundation
[11:40:27] 
[11:40:27] Ignite documentation: http://ignite.apache.org
[11:40:27] 
[11:40:27] Quiet mode.
[11:40:27]   ^-- Logging to file 'C:\apache-ignite-fabric-1.9.0-bin\work\log\ignite-5347ab7b.0.log'
[11:40:27]   ^-- To see **FULL** console log here add -DIGNITE_QUIET=false or "-v" to ignite.{sh|bat}
[11:40:27] 
[11:40:27] OS: Windows 7 6.1 amd64
[11:40:27] VM information: Java(TM) SE Runtime Environment 1.8.0_121-b13 Oracle Corporation Java HotSpot(TM) 64-Bit Server VM 25.121-b13
[11:40:27] Initial heap size is 126MB (should be no less than 512MB, use -Xms512m -Xmx512m).
[11:40:27,120][SEVERE][main][IgniteKernal] Got exception while starting (will rollback startup routine).
java.lang.IncompatibleClassChangeError: Implementing class
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(Unknown Source)
    at java.security.SecureClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.access$100(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(Unknown Source)
    at java.security.SecureClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.access$100(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Unknown Source)
    at org.apache.ignite.internal.IgniteComponentType.createIfInClassPath(IgniteComponentType.java:187)
    at org.apache.ignite.internal.IgniteKernal.start(IgniteKernal.java:841)
    at org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start0(IgnitionEx.java:1799)
    at org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start(IgnitionEx.java:1602)
    at org.apache.ignite.internal.IgnitionEx.start0(IgnitionEx.java:1042)
    at org.apache.ignite.internal.IgnitionEx.startConfigurations(IgnitionEx.java:964)
    at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:850)
    at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:749)
    at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:499)
    at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:479)
    at org.apache.ignite.Ignition.start(Ignition.java:304)
    at com.sapient.igniteHdfs.DemoIgnite.startIgnite(DemoIgnite.java:37)
    at com.sapient.aims.storm.topology.MessagePushTopology.main(MessagePushTopology.java:54)
[11:40:27] Ignite node stopped OK [uptime=00:00:01:001]
Exception in thread "main" java.lang.IncompatibleClassChangeError: Implementing class
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(Unknown Source)
    at java.security.SecureClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.access$100(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(Unknown Source)
    at java.security.SecureClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.access$100(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Unknown Source)
    at org.apache.ignite.internal.IgniteComponentType.createIfInClassPath(IgniteComponentType.java:187)
    at org.apache.ignite.internal.IgniteKernal.start(IgniteKernal.java:841)
    at org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start0(IgnitionEx.java:1799)
    at org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start(IgnitionEx.java:1602)
    at org.apache.ignite.internal.IgnitionEx.start0(IgnitionEx.java:1042)
    at org.apache.ignite.internal.IgnitionEx.startConfigurations(IgnitionEx.java:964)
    at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:850)
    at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:749)
    at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:499)
    at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:479)
    at org.apache.ignite.Ignition.start(Ignition.java:304)
    at com.sapient.igniteHdfs.DemoIgnite.startIgnite(DemoIgnite.java:37)
    at com.sapient.aims.storm.topology.MessagePushTopology.main(MessagePushTopology.java:54)

Please tell me how to correctly use jdbc-hive driver with ignite. Here is my pom.xml Thank you.


Solution

  • This is discussed on Apache Ignite users list: http://apache-ignite-users.70518.x6.nabble.com/Hive-jdbc-driver-not-working-with-ignite-td11795.html