<scala.version>2.13.8</scala.version> <https://github.com/apache/spark/blob/87a5442f7ed96b11051d8a9333476d080054e5a0/pom.xml#LL3606C46-L3606C46>
you must change 2.13.6 to 2.13.8 man. 29. mai 2023 kl. 18:02 skrev Mich Talebzadeh <mich.talebza...@gmail.com >: > Thanks everyone. Still not much progress :(. It is becoming a bit > confusing as I am getting this error > > Compiling ReduceByKey > [INFO] Scanning for projects... > [INFO] > [INFO] -------------------------< spark:ReduceByKey > >-------------------------- > [INFO] Building ReduceByKey 3.0 > [INFO] from pom.xml > [INFO] --------------------------------[ jar > ]--------------------------------- > [INFO] > [INFO] --- resources:3.3.0:resources (default-resources) @ ReduceByKey --- > [WARNING] Using platform encoding (ANSI_X3.4-1968 actually) to copy > filtered resources, i.e. build is platform dependent! > [INFO] skip non existing resourceDirectory > /data6/hduser/scala/ReduceByKey/src/main/resources > [INFO] > [INFO] --- compiler:3.10.1:compile (default-compile) @ ReduceByKey --- > [INFO] Nothing to compile - all classes are up to date > [INFO] > [INFO] --- scala:2.15.2:compile (default) @ ReduceByKey --- > [INFO] Checking for multiple versions of scala > [WARNING] Expected all dependencies to require Scala version: 2.13.8 > [WARNING] spark:ReduceByKey:3.0 requires scala version: 2.13.8 > [WARNING] org.scala-lang.modules:scala-parallel-collections_2.13:1.0.4 > requires scala version: 2.13.6 > [WARNING] Multiple versions of scala libraries detected! > [INFO] includes = [**/*.java,**/*.scala,] > [INFO] excludes = [] > [INFO] Nothing to compile - all classes are up to date > [INFO] > [INFO] --- resources:3.3.0:testResources (default-testResources) @ > ReduceByKey --- > [WARNING] Using platform encoding (ANSI_X3.4-1968 actually) to copy > filtered resources, i.e. build is platform dependent! > [INFO] skip non existing resourceDirectory > /data6/hduser/scala/ReduceByKey/src/test/resources > [INFO] > [INFO] --- compiler:3.10.1:testCompile (default-testCompile) @ ReduceByKey > --- > [INFO] No sources to compile > [INFO] > [INFO] --- surefire:3.0.0:test (default-test) @ ReduceByKey --- > [INFO] No tests to run. > [INFO] > [INFO] --- jar:3.3.0:jar (default-jar) @ ReduceByKey --- > [INFO] Building jar: /data6/hduser/scala/ReduceByKey/target/ReduceByKey.jar > [INFO] > [INFO] --- shade:1.6:shade (default) @ ReduceByKey --- > [INFO] Including org.scala-lang:scala-library:jar:2.13.8 in the shaded jar. > [INFO] Replacing original artifact with shaded artifact. > [INFO] Replacing /data6/hduser/scala/ReduceByKey/target/ReduceByKey.jar > with /data6/hduser/scala/ReduceByKey/target/ReduceByKey-3.0-shaded.jar > [INFO] > ------------------------------------------------------------------------ > [INFO] BUILD SUCCESS > [INFO] > ------------------------------------------------------------------------ > [INFO] Total time: 3.321 s > [INFO] Finished at: 2023-05-29T16:54:47+01:00 > [INFO] > ------------------------------------------------------------------------ > [WARNING] > [WARNING] Plugin validation issues were detected in 4 plugin(s) > [WARNING] > [WARNING] * org.scala-tools:maven-scala-plugin:2.15.2 > [WARNING] * org.apache.maven.plugins:maven-compiler-plugin:3.10.1 > [WARNING] * org.apache.maven.plugins:maven-shade-plugin:1.6 > [WARNING] * org.apache.maven.plugins:maven-resources-plugin:3.3.0 > [WARNING] > [WARNING] For more or less details, use 'maven.plugin.validation' property > with one of the values (case insensitive): [BRIEF, DEFAULT, VERBOSE] > [WARNING] > Completed compiling > Mon May 29 16:54:47 BST 2023 , Running in **local mode** > SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". > SLF4J: Defaulting to no-operation (NOP) logger implementation > SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further > details. > > Application is ReduceByKey > > Exception in thread "main" java.lang.NoSuchMethodError: > scala.package$.Seq()Lscala/collection/immutable/Seq$; > at ReduceByKey$.main(ReduceByKey.scala:23) > at ReduceByKey.main(ReduceByKey.scala) > at > java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native > Method) > at > java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at > java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.base/java.lang.reflect.Method.invoke(Method.java:566) > at > org.apache.spark.deploy.JavaMainApplication.start(SparkApplication.scala:52) > at org.apache.spark.deploy.SparkSubmit.org > $apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:1020) > at > org.apache.spark.deploy.SparkSubmit.doRunMain$1(SparkSubmit.scala:192) > at > org.apache.spark.deploy.SparkSubmit.submit(SparkSubmit.scala:215) > at > org.apache.spark.deploy.SparkSubmit.doSubmit(SparkSubmit.scala:91) > at > org.apache.spark.deploy.SparkSubmit$$anon$2.doSubmit(SparkSubmit.scala:1111) > at > org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:1120) > at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala) > > > > Part of pom.xml is here > > > <project xmlns="https://maven.apache.org/POM/4.0.0" xmlns:xsi=" > https://www.w3.org/2001/XMLSchema-instance" > xsi:schemaLocation="https://maven.apache.org/POM/4.0.0 > https://maven.apache.org/maven-v4_0_0.xsd"> > <modelVersion>4.0.0</modelVersion> > <groupId>spark</groupId> > <version>3.0</version> > <artifactId>ReduceByKey</artifactId> > <name>${project.artifactId}</name> > > <properties> > <maven.compiler.source>11.0.1</maven.compiler.source> > <maven.compiler.target>11.0.1</maven.compiler.target> > <encoding>UTF-8</encoding> > <scala.version>2.13.8</scala.version> <!-- Is this correct for spark 3.4? > --> > <maven-scala-plugin.version>2.15.2</maven-scala-plugin.version> > </properties> > > <dependencies> > <dependency> > <groupId>org.scala-lang</groupId> > <artifactId>scala-library</artifactId> > <version>2.13.8</version> <!-- Is this correct for spark 3.4? --> > </dependency> > <dependency> > <groupId>org.apache.spark</groupId> > <artifactId>spark-core_2.13</artifactId> <!-- Is this correct for > spark 3.4? --> > <version>3.4.0</version> > <scope>provided</scope> > </dependency> > <dependency> > <groupId>org.apache.spark</groupId> > <artifactId>spark-sql_2.13</artifactId> > <version>3.4.0</version> > <scope>provided</scope> > </dependency> > > > Thanks > > > *Disclaimer:* Use it at your own risk. Any and all responsibility for any > loss, damage or destruction of data or any other property which may arise > from relying on this email's technical content is explicitly disclaimed. > The author will in no case be liable for any monetary damages arising from > such loss, damage or destruction. > > > > > On Mon, 29 May 2023 at 13:44, Bjørn Jørgensen <bjornjorgen...@gmail.com> > wrote: > >> Change >> >> <dependencies> >> <dependency> >> <groupId>org.scala-lang</groupId> >> <artifactId>scala-library</artifactId> >> <version>2.13.11-M2</version> >> </dependency> >> <dependency> >> >> to >> >> <dependencies> >> <dependency> >> <groupId>org.scala-lang</groupId> >> <artifactId>scala-library</artifactId> >> <version>${scala.version}</version> >> </dependency> >> >> man. 29. mai 2023 kl. 13:20 skrev Lingzhe Sun <lingzhe....@hirain.com>: >> >>> Hi Mich, >>> >>> Spark 3.4.0 prebuilt with scala 2.13 is built with version 2.13.8 >>> <https://github.com/apache/spark/blob/88f69d6f92860823b1a90bc162ebca2b7c8132fc/pom.xml#L170>. >>> Since you are using spark-core_2.13 and spark-sql_2.13, you should stick to >>> the major(13) and the minor version(8). Not using any of these may cause >>> unexpected behaviour(though scala claims compatibility among minor version >>> changes, I've encountered problem using the scala package with the same >>> major version and different minor version. That may due to bug fixes and >>> upgrade of scala itself.). >>> And although I did not encountered such problem, this >>> <https://stackoverflow.com/a/26411339/19476830>can be a a pitfall for >>> you. >>> >>> ------------------------------ >>> Best Regards! >>> >>> ........................................................................... >>> Lingzhe Sun >>> Hirain Technology >>> >>> >>> *From:* Mich Talebzadeh <mich.talebza...@gmail.com> >>> *Date:* 2023-05-29 17:55 >>> *To:* Bjørn Jørgensen <bjornjorgen...@gmail.com> >>> *CC:* user @spark <user@spark.apache.org> >>> *Subject:* Re: maven with Spark 3.4.0 fails compilation >>> Thanks for your helpful comments Bjorn. >>> >>> I managed to compile the code with maven but when it run it fails with >>> >>> Application is ReduceByKey >>> >>> Exception in thread "main" java.lang.NoSuchMethodError: >>> scala.package$.Seq()Lscala/collection/immutable/Seq$; >>> at ReduceByKey$.main(ReduceByKey.scala:23) >>> at ReduceByKey.main(ReduceByKey.scala) >>> at >>> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native >>> Method) >>> at >>> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) >>> at >>> java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >>> at java.base/java.lang.reflect.Method.invoke(Method.java:566) >>> at >>> org.apache.spark.deploy.JavaMainApplication.start(SparkApplication.scala:52) >>> at org.apache.spark.deploy.SparkSubmit.org >>> $apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:1020) >>> at >>> org.apache.spark.deploy.SparkSubmit.doRunMain$1(SparkSubmit.scala:192) >>> at >>> org.apache.spark.deploy.SparkSubmit.submit(SparkSubmit.scala:215) >>> at >>> org.apache.spark.deploy.SparkSubmit.doSubmit(SparkSubmit.scala:91) >>> at >>> org.apache.spark.deploy.SparkSubmit$$anon$2.doSubmit(SparkSubmit.scala:1111) >>> at >>> org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:1120) >>> at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala) >>> >>> I attach the pom.xml and the sample scala code is self contained and >>> basic. Again it runs with SBT with no issues. >>> >>> FYI, my scala version on host is >>> >>> scala -version >>> Scala code runner version 2.13.6 -- Copyright 2002-2021, LAMP/EPFL and >>> Lightbend, Inc. >>> >>> I think I have a scala incompatible somewhere again >>> >>> Cheers >>> >>> >>> Mich Talebzadeh, >>> Lead Solutions Architect/Engineering Lead >>> Palantir Technologies Limited >>> London >>> United Kingdom >>> >>> >>> view my Linkedin profile >>> <https://www.linkedin.com/in/mich-talebzadeh-ph-d-5205b2/> >>> >>> >>> https://en.everybodywiki.com/Mich_Talebzadeh >>> >>> >>> >>> *Disclaimer:* Use it at your own risk. Any and all responsibility for >>> any loss, damage or destruction of data or any other property which may >>> arise from relying on this email's technical content is explicitly >>> disclaimed. The author will in no case be liable for any monetary damages >>> arising from such loss, damage or destruction. >>> >>> >>> >>> >>> On Sun, 28 May 2023 at 20:29, Bjørn Jørgensen <bjornjorgen...@gmail.com> >>> wrote: >>> >>>> From chatgpt4 >>>> >>>> >>>> The problem appears to be that there is a mismatch between the version >>>> of Scala used by the Scala Maven plugin and the version of the Scala >>>> library defined as a dependency in your POM. You've defined your Scala >>>> version in your properties as `2.12.17` but you're pulling in >>>> `scala-library` version `2.13.6` as a dependency. >>>> >>>> The Scala Maven plugin will be using the Scala version defined in the >>>> `scala.version` property for compilation, but then it tries to load classes >>>> from a different Scala version, hence the error. >>>> >>>> To resolve this issue, make sure the `scala.version` property matches >>>> the version of `scala-library` defined in your dependencies. In your case, >>>> you may want to change `scala.version` to `2.13.6`. >>>> >>>> Here's the corrected part of your POM: >>>> >>>> ```xml >>>> <properties> >>>> <maven.compiler.source>1.7</maven.compiler.source> >>>> <maven.compiler.target>1.7</maven.compiler.target> >>>> <encoding>UTF-8</encoding> >>>> <scala.version>2.13.6</scala.version> <!-- Here's the change --> >>>> <maven-scala-plugin.version>2.15.2</maven-scala-plugin.version> >>>> </properties> >>>> ``` >>>> >>>> Additionally, ensure that the Scala versions in the Spark dependencies >>>> match the `scala.version` property as well. If you've updated the Scala >>>> version to `2.13.6`, the artifactIds for Spark dependencies should be >>>> `spark-core_2.13` and `spark-sql_2.13`. >>>> >>>> Another thing to consider: your Java version defined in >>>> `maven.compiler.source` and `maven.compiler.target` is `1.7`, which is >>>> quite outdated and might not be compatible with the latest versions of >>>> these libraries. Consider updating to a more recent version of Java, such >>>> as Java 8 or above, depending on the requirements of the libraries you're >>>> using. >>>> >>>> >>>> >>>> The same problem persists in this updated POM file - there's a mismatch >>>> in the Scala version declared in the properties and the version used in >>>> your dependencies. Here's what you need to update: >>>> >>>> 1. Update the Scala version in your properties to match the Scala >>>> library and your Spark dependencies: >>>> >>>> ```xml >>>> <properties> >>>> <maven.compiler.source>1.7</maven.compiler.source> >>>> <maven.compiler.target>1.7</maven.compiler.target> >>>> <encoding>UTF-8</encoding> >>>> <scala.version>2.13.6</scala.version> <!-- updated Scala version --> >>>> <maven-scala-plugin.version>2.15.2</maven-scala-plugin.version> >>>> </properties> >>>> ``` >>>> >>>> 2. Make sure all your Spark dependencies use the same Scala version. In >>>> this case, I see `spark-streaming-kafka_2.11` which should be >>>> `spark-streaming-kafka_2.13` if you're using Scala `2.13.6`. >>>> >>>> ```xml >>>> <dependency> >>>> <groupId>org.apache.spark</groupId> >>>> <artifactId>spark-streaming-kafka_2.13</artifactId> <!-- updated to >>>> 2.13 --> >>>> <version>1.6.3</version> <!-- this might also need to be updated as >>>> this is a very old version --> >>>> <scope>provided</scope> >>>> </dependency> >>>> ``` >>>> >>>> 3. As mentioned in the previous message, your Java version >>>> (`maven.compiler.source` and `maven.compiler.target`) is also quite >>>> outdated. Depending on the requirements of the libraries you're using, you >>>> might want to update this to a newer version, such as Java 8 or above. >>>> >>>> Finally, ensure that the correct versions of these libraries exist in >>>> your Maven repository or are available in the central Maven repository. If >>>> the versions don't match, Maven will not be able to find and download the >>>> correct dependencies, which can lead to problems. >>>> >>>> Please note that it's crucial to maintain consistency in your Scala and >>>> Java versions across your project and its dependencies to avoid these kinds >>>> of issues. Mixing versions can lead to binary incompatibility errors, such >>>> as the one you're seeing. >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> The differences in behavior between SBT and Maven when resolving Scala >>>> dependencies can be attributed to how they each handle Scala binary >>>> versions. >>>> >>>> SBT is specifically designed for Scala projects and has built-in >>>> support for handling Scala's binary compatibility issues. When you define a >>>> Scala library dependency in SBT, you can specify the Scala binary version >>>> as "_2.12", "_2.13", etc. in the library artifact name. SBT will then >>>> automatically replace this with the actual Scala binary version defined in >>>> your SBT configuration. So, if you've defined different Scala versions for >>>> your project and for a specific dependency, SBT will handle this >>>> gracefully. >>>> >>>> Maven, on the other hand, is more generic and does not have the same >>>> level of built-in support for Scala's binary versions. In Maven, the Scala >>>> version is typically hardcoded in the artifact name, and if this doesn't >>>> match the actual Scala version used in your project, it can lead to binary >>>> compatibility issues. >>>> >>>> This difference between SBT and Maven means that a project can work >>>> fine when built with SBT but fail when built with Maven, due to these Scala >>>> version discrepancies. To avoid these issues in Maven, you need to ensure >>>> that the Scala version is consistent across your project configuration and >>>> all your dependencies. >>>> >>>> Also, another reason for this can be because SBT often fetches >>>> dependencies on the fly, while Maven requires them to be explicitly >>>> declared. SBT can download and link the correct Scala library version even >>>> if it's not explicitly declared, while Maven will only use the versions >>>> that have been specified in the POM file. >>>> >>>> To summarize, SBT is more flexible and Scala-oriented than Maven, which >>>> can lead to different behavior when handling Scala dependencies. When using >>>> Maven for Scala projects, it's essential to ensure that all Scala versions >>>> match across the project. >>>> >>>> søn. 28. mai 2023 kl. 21:03 skrev Mich Talebzadeh < >>>> mich.talebza...@gmail.com>: >>>> >>>>> This compilation works fine with SBT but fails with maven! >>>>> >>>>> Spark version 3.4.0 >>>>> Apache Maven 3.9.2 (c9616018c7a021c1c39be70fb2843d6f5f9b8a1c) >>>>> Java version: 11.0.1, vendor: Oracle Corporation, runtime: >>>>> /opt/jdk-11.0.1 >>>>> >>>>> This from the pom.xml file >>>>> >>>>> <project xmlns="https://maven.apache.org/POM/4.0.0" xmlns:xsi=" >>>>> https://www.w3.org/2001/XMLSchema-instance" >>>>> xsi:schemaLocation="https://maven.apache.org/POM/4.0.0 >>>>> https://maven.apache.org/maven-v4_0_0.xsd"> >>>>> <modelVersion>4.0.0</modelVersion> >>>>> <groupId>spark</groupId> >>>>> <version>3.0</version> >>>>> <name>${project.artifactId}</name> >>>>> >>>>> <properties> >>>>> <maven.compiler.source>1.7</maven.compiler.source> >>>>> <maven.compiler.target>1.7</maven.compiler.target> >>>>> <encoding>UTF-8</encoding> >>>>> <scala.version>2.12.17</scala.version> >>>>> <maven-scala-plugin.version>2.15.2</maven-scala-plugin.version> >>>>> </properties> >>>>> <dependencies> >>>>> <dependency> >>>>> <groupId>org.scala-lang</groupId> >>>>> <artifactId>scala-library</artifactId> >>>>> <version>2.13.6</version> >>>>> </dependency> >>>>> <dependency> >>>>> <groupId>org.apache.spark</groupId> >>>>> <artifactId>spark-core_2.13</artifactId> >>>>> <version>3.4.0</version> >>>>> <scope>provided</scope> >>>>> </dependency> >>>>> <dependency> >>>>> <groupId>org.apache.spark</groupId> >>>>> <artifactId>spark-sql_2.13</artifactId> >>>>> <version>3.4.0</version> >>>>> <scope>provided</scope> >>>>> >>>>> The pom file is attached. These are the errors I am getting >>>>> >>>>> [ERROR] error: error while loading package, class file >>>>> '/home/hduser/.m2/repository/org/scala-lang/scala-library/2.13.6/scala-library-2.13.6.jar(scala/reflect/package.class)' >>>>> is broken >>>>> [ERROR] (class java.lang.RuntimeException/error reading Scala >>>>> signature of package.class: Scala signature package has wrong version >>>>> [ERROR] error: error while loading package, class file >>>>> '/home/hduser/.m2/repository/org/scala-lang/scala-library/2.13.6/scala-library-2.13.6.jar(scala/package.class)' >>>>> is broken >>>>> [ERROR] (class java.lang.RuntimeException/error reading Scala >>>>> signature of package.class: Scala signature package has wrong version >>>>> [ERROR] error: error while loading package, class file >>>>> '/home/hduser/.m2/repository/org/scala-lang/scala-library/2.13.6/scala-library-2.13.6.jar(scala/collection/package.class)' >>>>> is broken >>>>> [ERROR] (class java.lang.RuntimeException/error reading Scala >>>>> signature of package.class: Scala signature package has wrong version >>>>> [ERROR] three errors found >>>>> [ERROR] Failed to execute goal >>>>> org.scala-tools:maven-scala-plugin:2.15.2:compile (default) on project >>>>> scala: wrap: org.apache.commons.exec.ExecuteException: Process exited with >>>>> an error: 1(Exit value: 1) -> [Help 1] >>>>> >>>>> Any ideas will be appreciated. >>>>> >>>>> Mich Talebzadeh, >>>>> Lead Solutions Architect/Engineering Lead >>>>> Palantir Technologies Limited >>>>> London >>>>> United Kingdom >>>>> >>>>> >>>>> view my Linkedin profile >>>>> <https://www.linkedin.com/in/mich-talebzadeh-ph-d-5205b2/> >>>>> >>>>> >>>>> https://en.everybodywiki.com/Mich_Talebzadeh >>>>> >>>>> >>>>> >>>>> *Disclaimer:* Use it at your own risk. Any and all responsibility for >>>>> any loss, damage or destruction of data or any other property which may >>>>> arise from relying on this email's technical content is explicitly >>>>> disclaimed. The author will in no case be liable for any monetary damages >>>>> arising from such loss, damage or destruction. >>>>> >>>>> >>>>> >>>>> --------------------------------------------------------------------- >>>>> To unsubscribe e-mail: user-unsubscr...@spark.apache.org >>>> >>>> >>>> >>>> -- >>>> Bjørn Jørgensen >>>> Vestre Aspehaug 4, 6010 Ålesund >>>> Norge >>>> >>>> +47 480 94 297 >>>> >>> >> >> -- >> Bjørn Jørgensen >> Vestre Aspehaug 4, 6010 Ålesund >> Norge >> >> +47 480 94 297 >> > -- Bjørn Jørgensen Vestre Aspehaug 4, 6010 Ålesund Norge +47 480 94 297