If using Maven, one simply use whatever version they prefer and at build time 
and the artifact using something like:
  <build>    <plugins>      <plugin>        
<groupId>org.apache.maven.plugins</groupId>        
<artifactId>maven-shade-plugin</artifactId>        <executions>          
<execution>            <phase>package</phase>            <goals>              
<goal>shade</goal>            </goals>            <configuration>
              <relocations>                <relocation>                  
<pattern>com.google.common</pattern>                  
<shadedPattern>org.shaded.google.common</shadedPattern>                
</relocation>              </relocations>

            </configuration>          </execution>        </executions>      
</plugin>    </plugins>  </build>




Of course this won't help during development if there are conflicts.

From: ilike...@gmail.com
Date: Tue, 20 Jan 2015 18:26:32 -0800
Subject: Re: Spark 1.2 - com/google/common/base/Preconditions 
java.lang.NoClassDefFoundErro
To: sbirar...@gmail.com
CC: fnoth...@berkeley.edu; so...@cloudera.com; user@spark.apache.org

Spark's network-common package depends on guava as a "provided" dependency in 
order to avoid conflicting with other libraries (e.g., Hadoop) that depend on 
specific versions. com/google/common/base/Preconditions has been present in 
Guava since version 2, so this is likely a "dependency not found" rather than 
"wrong version of dependency" issue.
To resolve this, please depend on some version of Guava (14.0.1 is guaranteed 
to work, as should any other version from the past few years).
On Tue, Jan 20, 2015 at 6:16 PM, Shailesh Birari <sbirar...@gmail.com> wrote:
Hi Frank,
Its a normal eclipse project where I added Scala and Spark libraries as user 
libraries.Though, I am not attaching any hadoop libraries, in my application 
code I have following line.
  System.setProperty("hadoop.home.dir", "C:\\SB\\HadoopWin")

This Hadoop home dir contains "winutils.exe" only.
Don't think that its an issue.
Please suggest.
Thanks,  Shailesh

On Wed, Jan 21, 2015 at 2:19 PM, Frank Austin Nothaft <fnoth...@berkeley.edu> 
wrote:
Shailesh,
To add, are you packaging Hadoop in your app? Hadoop will pull in Guava. Not 
sure if you are using Maven (or what) to build, but if you can pull up your 
builds dependency tree, you will likely find com.google.guava being brought in 
by one of your dependencies.
Regards,

Frank Austin Nothaftfnothaft@berkeley.edufnothaft@eecs.berkeley.edu202-340-0466



On Jan 20, 2015, at 5:13 PM, Shailesh Birari <sbirar...@gmail.com> wrote:
Hello,
I double checked the libraries. I am linking only with Spark 1.2.Along with 
Spark 1.2 jars I have Scala 2.10 jars and JRE 7 jars linked and nothing else.
Thanks,   Shailesh
On Wed, Jan 21, 2015 at 12:58 PM, Sean Owen <so...@cloudera.com> wrote:
Guava is shaded in Spark 1.2+. It looks like you are mixing versions

of Spark then, with some that still refer to unshaded Guava. Make sure

you are not packaging Spark with your app and that you don't have

other versions lying around.



On Tue, Jan 20, 2015 at 11:55 PM, Shailesh Birari <sbirar...@gmail.com> wrote:

> Hello,

>

> I recently upgraded my setup from Spark 1.1 to Spark 1.2.

> My existing applications are working fine on ubuntu cluster.

> But, when I try to execute Spark MLlib application from Eclipse (Windows

> node) it gives java.lang.NoClassDefFoundError:

> com/google/common/base/Preconditions exception.

>

> Note,

>    1. With Spark 1.1 this was working fine.

>    2. The Spark 1.2 jar files are linked in Eclipse project.

>    3. Checked the jar -tf output and found the above com.google.common.base

> is not present.

>

> -----------------------------------------------------------------------------------------------------------------Exception

> log:

>

> Exception in thread "main" java.lang.NoClassDefFoundError:

> com/google/common/base/Preconditions

>         at

> org.apache.spark.network.client.TransportClientFactory.<init>(TransportClientFactory.java:94)

>         at

> org.apache.spark.network.TransportContext.createClientFactory(TransportContext.java:77)

>         at

> org.apache.spark.network.netty.NettyBlockTransferService.init(NettyBlockTransferService.scala:62)

>         at 
> org.apache.spark.storage.BlockManager.initialize(BlockManager.scala:194)

>         at org.apache.spark.SparkContext.<init>(SparkContext.scala:340)

>         at

> org.apache.spark.examples.mllib.TallSkinnySVD$.main(TallSkinnySVD.scala:74)

>         at 
> org.apache.spark.examples.mllib.TallSkinnySVD.main(TallSkinnySVD.scala)

> Caused by: java.lang.ClassNotFoundException:

> com.google.common.base.Preconditions

>         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)

>         ... 7 more

>

> -----------------------------------------------------------------------------------------------------------------

>

> jar -tf output:

>

>

> consb2@CONSB2A

> /cygdrive/c/SB/spark-1.2.0-bin-hadoop2.4/spark-1.2.0-bin-hadoop2.4/lib

> $ jar -tf spark-assembly-1.2.0-hadoop2.4.0.jar | grep Preconditions

> org/spark-project/guava/common/base/Preconditions.class

> org/spark-project/guava/common/math/MathPreconditions.class

> com/clearspring/analytics/util/Preconditions.class

> parquet/Preconditions.class

> com/google/inject/internal/util/$Preconditions.class

>

> ---------------------------------------------------------------------------------------------------------------

>

> Please help me in resolving this.

>

> Thanks,

>   Shailesh

>

>

>

>

> --

> View this message in context: 
> http://apache-spark-user-list.1001560.n3.nabble.com/Spark-1-2-com-google-common-base-Preconditions-java-lang-NoClassDefFoundErro-tp21271.html

> Sent from the Apache Spark User List mailing list archive at Nabble.com.

>

> ---------------------------------------------------------------------

> To unsubscribe, e-mail: user-unsubscr...@spark.apache.org

> For additional commands, e-mail: user-h...@spark.apache.org

>







                                          

Reply via email to