I figured out that Logging is a DeveloperApi and it should not be used outside 
Spark code, so everything is fine now. Thanks again, Marcelo.

> On 24 Mar 2015, at 20:06, Marcelo Vanzin <van...@cloudera.com> wrote:
> 
> From the exception it seems like your app is also repackaging Scala
> classes somehow. Can you double check that and remove the Scala
> classes from your app if they're there?
> 
> On Mon, Mar 23, 2015 at 10:07 PM, Alexey Zinoviev
> <alexey.zinov...@gmail.com> wrote:
>> Thanks Marcelo, this options solved the problem (I'm using 1.3.0), but it
>> works only if I remove "extends Logging" from the object, with "extends
>> Logging" it return:
>> 
>> Exception in thread "main" java.lang.LinkageError: loader constraint
>> violation in interface itable initialization: when resolving method
>> "App1$.logInfo(Lscala/Function0;Ljava/lang/Throwable;)V" the class loader
>> (instance of org/apache/spark/util/ChildFirstURLClassLoader) of the current
>> class, App1$, and the class loader (instance of
>> sun/misc/Launcher$AppClassLoader) for interface org/apache/spark/Logging
>> have different Class objects for the type scala/Function0 used in the
>> signature
>>        at App1.main(App1.scala)
>>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>        at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>>        at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>        at java.lang.reflect.Method.invoke(Method.java:497)
>>        at
>> org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:569)
>>        at
>> org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:166)
>>        at
>> org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:189)
>>        at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:110)
>>        at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
>> 
>> Do you have any idea what's wrong with Logging?
>> 
>> PS: I'm running it with spark-1.3.0/bin/spark-submit --class App1 --conf
>> spark.driver.userClassPathFirst=true --conf
>> spark.executor.userClassPathFirst=true
>> $HOME/projects/sparkapp/target/scala-2.10/sparkapp-assembly-1.0.jar
>> 
>> Thanks,
>> Alexey
>> 
>> 
>> On Tue, Mar 24, 2015 at 5:03 AM, Marcelo Vanzin <van...@cloudera.com> wrote:
>>> 
>>> You could build a far jar for your application containing both your
>>> code and the json4s library, and then run Spark with these two
>>> options:
>>> 
>>>  spark.driver.userClassPathFirst=true
>>>  spark.executor.userClassPathFirst=true
>>> 
>>> Both only work in 1.3. (1.2 has spark.files.userClassPathFirst, but
>>> that only works for executors.)
>>> 
>>> 
>>> On Mon, Mar 23, 2015 at 2:12 PM, Alexey Zinoviev
>>> <alexey.zinov...@gmail.com> wrote:
>>>> Spark has a dependency on json4s 3.2.10, but this version has several
>>>> bugs
>>>> and I need to use 3.2.11. I added json4s-native 3.2.11 dependency to
>>>> build.sbt and everything compiled fine. But when I spark-submit my JAR
>>>> it
>>>> provides me with 3.2.10.
>>>> 
>>>> 
>>>> build.sbt
>>>> 
>>>> import sbt.Keys._
>>>> 
>>>> name := "sparkapp"
>>>> 
>>>> version := "1.0"
>>>> 
>>>> scalaVersion := "2.10.4"
>>>> 
>>>> libraryDependencies += "org.apache.spark" %% "spark-core"  % "1.3.0" %
>>>> "provided"
>>>> 
>>>> libraryDependencies += "org.json4s" %% "json4s-native" % "3.2.11"`
>>>> 
>>>> 
>>>> plugins.sbt
>>>> 
>>>> logLevel := Level.Warn
>>>> 
>>>> resolvers += Resolver.url("artifactory",
>>>> 
>>>> url("http://scalasbt.artifactoryonline.com/scalasbt/sbt-plugin-releases";))(Resolver.ivyStylePatterns)
>>>> 
>>>> addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.13.0")
>>>> 
>>>> 
>>>> App1.scala
>>>> 
>>>> import org.apache.spark.SparkConf
>>>> import org.apache.spark.rdd.RDD
>>>> import org.apache.spark.{Logging, SparkConf, SparkContext}
>>>> import org.apache.spark.SparkContext._
>>>> 
>>>> object App1 extends Logging {
>>>>  def main(args: Array[String]) = {
>>>>    val conf = new SparkConf().setAppName("App1")
>>>>    val sc = new SparkContext(conf)
>>>>    println(s"json4s version: ${org.json4s.BuildInfo.version.toString}")
>>>>  }
>>>> }
>>>> 
>>>> 
>>>> 
>>>> sbt 0.13.7, sbt-assembly 0.13.0, Scala 2.10.4
>>>> 
>>>> Is it possible to force 3.2.11 version usage?
>>>> 
>>>> Thanks,
>>>> Alexey
>>> 
>>> 
>>> 
>>> --
>>> Marcelo
>> 
>> 
> 
> 
> 
> -- 
> Marcelo


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

Reply via email to