Thanks for the response. I lost access to my cluster over the weekend, so I had to wait until today to check.

All of the correct Hive jars are in classpath.txt. Also, this error seems to be happening in the driver rather than the executors. It's running in yarn-client mode, so it should use the classpath of my local JVM, which also contains the Hive jars. I also checked for that class specifically and it is there. Does Spark do anything funny on the driver side that would make the Hive classes on the classpath unavailable?


On 12/11/2015 11:08 PM, Harsh J wrote:
Do you have all your hive jars listed in the classpath.txt / SPARK_DIST_CLASSPATH env., specifically the hive-exec jar? Is the location of that jar also the same on all the distributed hosts?

Passing an explicit executor classpath string may also help overcome this (replace HIVE_BASE_DIR to the root of your hive installation):

--conf "spark.executor.extraClassPath=$HIVE_BASE_DIR/hive/lib/*"

On Sat, Dec 12, 2015 at 6:32 AM Christopher Brady <christopher.br...@oracle.com <mailto:christopher.br...@oracle.com>> wrote:

    I'm trying to run a basic "Hello world" type example using DataFrames
    with Hive in yarn-client mode. My code is:

    JavaSparkContext sc = new JavaSparkContext("yarn-client", "Test app"))
    HiveContext sqlContext = new HiveContext(sc.sc <http://sc.sc>());
    sqlContext.sql("SELECT * FROM my_table").count();

    The exception I get on the driver is:
    java.lang.ClassNotFoundException:
    org.apache.hadoop.hive.ql.plan.TableDesc

    There are no exceptions on the executors.

    That class is definitely on the classpath of the driver, and it runs
    without errors in local mode. I haven't been able to find any similar
    errors on google. Does anyone know what I'm doing wrong?

    The full stack trace is included below:

    java.lang.NoClassDefFoundError:
    Lorg/apache/hadoop/hive/ql/plan/TableDesc;
         at java.lang.Class.getDeclaredFields0(Native Method)
         at java.lang.Class.privateGetDeclaredFields(Class.java:2436)
         at java.lang.Class.getDeclaredField(Class.java:1946)
         at
    java.io.ObjectStreamClass.getDeclaredSUID(ObjectStreamClass.java:1659)
         at
    java.io.ObjectStreamClass.access$700(ObjectStreamClass.java:72)
         at java.io.ObjectStreamClass$2.run(ObjectStreamClass.java:480)
         at java.io.ObjectStreamClass$2.run(ObjectStreamClass.java:468)
         at java.security.AccessController.doPrivileged(Native Method)
         at java.io.ObjectStreamClass.<init>(ObjectStreamClass.java:468)
         at java.io.ObjectStreamClass.lookup(ObjectStreamClass.java:365)
         at
    java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:602)
         at
    java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1622)
         at
    java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1517)
         at
    java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)
         at
    java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
         at
    java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1990)
         at
    java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1915)
         at
    java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1798)
         at
    java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
         at
    java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1990)
         at
    java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1915)
         at
    java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1798)
         at
    java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
         at
    java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1990)
         at
    java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1915)
         at
    java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1798)
         at
    java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
         at
    java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)
         at
    scala.collection.immutable.$colon$colon.readObject(List.scala:362)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at
    
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
         at
    
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
         at java.lang.reflect.Method.invoke(Method.java:606)
         at
    java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1017)
         at
    java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1893)
         at
    java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1798)
         at
    java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
         at
    java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1990)
         at
    java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1915)
         at
    java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1798)
         at
    java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
         at
    java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1990)
         at
    java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1915)
         at
    java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1798)
         at
    java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
         at
    java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)
         at
    scala.collection.immutable.$colon$colon.readObject(List.scala:362)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at
    
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
         at
    
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
         at java.lang.reflect.Method.invoke(Method.java:606)
         at
    java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1017)
         at
    java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1893)
         at
    java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1798)
         at
    java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
         at
    java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1990)
         at
    java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1915)
         at
    java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1798)
         at
    java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
         at
    java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1990)
         at
    java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1915)
         at
    java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1798)
         at
    java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
         at
    java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)
         at
    scala.collection.immutable.$colon$colon.readObject(List.scala:362)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at
    
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
         at
    
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
         at java.lang.reflect.Method.invoke(Method.java:606)
         at
    java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1017)
         at
    java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1893)
         at
    java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1798)
         at
    java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
         at
    java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1990)
         at
    java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1915)
         at
    java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1798)
         at
    java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
         at
    java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1990)
         at
    java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1915)
         at
    java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1798)
         at
    java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
         at
    java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)
         at
    scala.collection.immutable.$colon$colon.readObject(List.scala:362)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at
    
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
         at
    
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
         at java.lang.reflect.Method.invoke(Method.java:606)
         at
    java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1017)
         at
    java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1893)
         at
    java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1798)
         at
    java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
         at
    java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1990)
         at
    java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1915)
         at
    java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1798)
         at
    java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
         at
    java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1990)
         at
    java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1915)
         at
    java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1798)
         at
    java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
         at
    java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)
         at
    
org.apache.spark.serializer.JavaDeserializationStream.readObject(JavaSerializer.scala:72)
         at
    
org.apache.spark.serializer.JavaSerializerInstance.deserialize(JavaSerializer.scala:98)
         at
    org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:64)
         at
    org.apache.spark.scheduler.ShuffleMapTask.runTask(ShuffleMapTask.scala:41)
         at org.apache.spark.scheduler.Task.run(Task.scala:88)
         at
    org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:214)
         at
    
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
         at
    
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
         at java.lang.Thread.run(Thread.java:745)
    Caused by: java.lang.ClassNotFoundException:
    org.apache.hadoop.hive.ql.plan.TableDesc
         at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
         at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
         at java.security.AccessController.doPrivileged(Native Method)
         at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
         at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
         ... 109 more

    ---------------------------------------------------------------------
    To unsubscribe, e-mail: user-unsubscr...@spark.apache.org
    <mailto:user-unsubscr...@spark.apache.org>
    For additional commands, e-mail: user-h...@spark.apache.org
    <mailto:user-h...@spark.apache.org>


Reply via email to