Hi, Thanks for inputs. I will try out version change as well as check if I can do anything about dependencies.
Thomas, Even I am not sure where conflict is, but looking at error looks like there is conflict somewhere. I will take Gaurav and Tim's suggestion and try to figure out what exactly is causing conflict. Thanks, Priyanka On Sat, Dec 19, 2015 at 12:54 AM, Gaurav Gupta <[email protected]> wrote: > Priyanka, > > Guava is coming from Hadoop. Execute "mvn dependency:tree" under apex/api > and you should see something like. > > org.apache.apex:apex-api:jar:3.3.0-incubating-SNAPSHOT > [INFO] +- org.apache.hadoop:hadoop-common:jar:2.2.0:compile > [INFO] | +- org.apache.hadoop:hadoop-annotations:jar:2.2.0:compile > [INFO] | +- com.google.guava:guava:jar:11.0.2:compile > [INFO] | | \- com.google.code.findbugs:jsr305:jar:1.3.9:compile > > Thanks > - Gaurav > > > On Dec 18, 2015, at 7:20 AM, Thomas Weise <[email protected]> > wrote: > > > > It wasn't clear where the conflict is, so shading may or may not be a > > solution. > > > > If your app with the Cassandra operator needs a newer version of Guava, > > include that newer version into the app package. The container's class > path > > will have the dependencies packaged with the app before anything from > Hadoop > > . > > > > If the newer version of Guava isn't backward compatible, then things > could > > get complicated. If the conflict is between the Hadoop stuff and your app > > (including Cassandra), shading won't help because those are dependencies > > that we use as is. In this case, it may be necessary to run the Cassandra > > code in a fully isolated class loader. If the conflict is between Apex > code > > and the app, then shading may help. > > > > Thomas > > > > > > > > > > > > > > On Fri, Dec 18, 2015 at 5:43 AM, Timothy Farkas <[email protected]> > wrote: > > > >> Hi Priyanka, > >> > >> I haven't seen this issue yet, but I am not using the newest version of > >> cassandra driver. This is the version I am using: > >> > >> > >> <dependency> > >> <groupId>com.datastax.cassandra</groupId> > >> <artifactId>cassandra-driver-core</artifactId> > >> <version>2.1.8</version> > >> </dependency> > >> > >> I did run into an issue where I was getting strange cassandra > exceptions, > >> so I set the protocol to version 2.0 in the CassandraStore class like > this > >> and the issue was resolved: > >> > >> > >> cluster = Cluster.builder() > >> > >> > >> > .addContactPoint(node).withProtocolVersion(ProtocolVersion.V2).withCredentials(userName, > >> password).build(); > >> > >> If you are still experiencing missing method issues due to different > guava > >> versions it may be necessary to shade the version of guava used by apex. > >> Shading changes the package names of all the packages in a library by > >> appending a prefix, so that > >> all the classes in the guava version used by apex would look like this: > >> org.apache.apex.com.google.guavapackage.GuavaClass. This prevents > version > >> clashes, and this technique is used by Flink for that reason. Perhaps we > >> can start that discussion again in a separate thread. > >> > >> A temporary workaround could be to exclude guava from the apex > dependencies > >> in your pom, that way the newest version of guava will be used. > >> > >> Thanks, > >> Tim > >> > >> On Fri, Dec 18, 2015 at 4:33 AM, Priyanka Gugale <[email protected]> > >> wrote: > >> > >>> Hi, > >>> > >>> I am facing classpath issues when I try to use newer version (e.g. > 2.1.x > >> or > >>> 3.0.x) of cassandra library for CassandraOutputOperator. > >>> > >>> From datastax documents looks like we need to include few more > libraries > >> to > >>> setup java environment. (reference: > >>> > >>> > >> > http://docs.datastax.com/en/developer/java-driver/2.1/java-driver/reference/settingUpJavaProgEnv_r.html > >>> ). > >>> When I included the required libraries my ClassNotFound issue was > >> resolved > >>> but then I was getting some methods missing error. > >>> Looks like, apex platform also uses guava library and it's version is > >> lower > >>> than 14.0.1, I couldn't find the source though (Note: I was just trying > >> to > >>> run unit tests here, not an application). > >>> > >>> Has anyone faced such issue earlier? > >>> > >>> -Priyanka > >>> > >> > >
