Our app needs to use guava-16.0.1.jar, so I add guava-16.0.1.jar into /opt/cloudera/parcels/CDH-5.5.0-1.cdh5.5.0.p0.8/jars/, and add "/opt/cloudera/parcels/CDH-5.5.0-1.cdh5.5.0.p0.8/jars/guava-16.0.1.jar" into /etc/spark/conf/classpath.txt.

However, it doesn't work, spark action in oozie still can not find guava-16.0.1.jar, saying "java.lang.NoSuchMethodError: com.google.common.reflect.TypeToken.isPrimitive()Z". How does classpath.txt work? Do you know how to manage or modify the classpath.txt manually? Thanks!

Re: how to add external guava-16.0.1.jar in CDH oozie classpath

As I said, you should look at the stdout of the Launcher Job. Can you post the stdout, stderr, and syslogs from the Launcher Job somewhere and link to them here? It contains a log of useful information and might help narrow down your classpath problem.

Re: how to add external guava-16.0.1.jar in CDH oozie classpath

I'm not sure why that's not working. I can see that guava 16 is being passed to Spark and guava 14 isn't there (FYI: you also replaced guava 11 from Hadoop with 16, which may cause problems for Hadoop).

Can you try yarn-client or yarn-cluster mode instead of local? My understanding is that local mode doesn't always work right.