Сбой Spark Submit с java.lang.NoSuchMethodError: scala.Predef$.$ Conforms()Lscala/Predef$$less$colon$less;

Я использую предсоборную версию spark 1.3.1 spark-1.3.1-bin-hadoop2.6.tgz

Исключение в потоке "main" java.lang.NoSuchMethodError: scala.Predef$.$ Conforms()Lscala/Predef$$less$colon$less; в org.apache.spark.util.Utils$.getSystemProperties(Utils.scala:1418) в org.apache.spark.SparkConf.(SparkConf.scala:58) в org.apache.spark.SparkConf.(SparkConf.scala:52) на com.zoho.zbi.Testing.test(Testing.java:43) на com.zoho.zbi.Testing.main(Testing.java:39) Использование стандартного профиля Spark log4j: org/apache/spark/log4j-defaults.properties

Я пытаюсь простое демонстрационное приложение, чтобы сохранить на Кассандре

SparkConf batchConf= new SparkConf()
            .setSparkHome(sparkHome)
            .setJars(jars)
            .setAppName(ZohoBIConstants.getAppName("cassandra"))//NO I18N
            .setMaster(master).set("spark.cassandra.connection.host", "localhost");

            JavaSparkContext sc = new JavaSparkContext(batchConf);
            // here we are going to save some data to Cassandra...
            List<Person> people = Arrays.asList(
                    Person.newInstance(1, "John", new Date()),
                    Person.newInstance(2, "Anna", new Date()),
                    Person.newInstance(3, "Andrew", new Date())
            );
//          Person test = Person.newInstance(1, "vini", new Date())''
            System.out.println("Inside Java API Demo : "+people);
            JavaRDD<Person> rdd = sc.parallelize(people);
            System.out.println("Inside Java API Demo rdd : "+rdd);
            javaFunctions(rdd).writerBuilder("test", "people", mapToRow(Person.class)).saveToCassandra();
            System.out.println("Stopping sc");
            sc.stop();

когда я отправляю, используя иску представить его работу

bin/spark-submit --class "abc.efg.Testing" --master spark://xyz:7077 /home/test/target/uber-Cassandra-0.0.1-SNAPSHOT.jar

Вот мой пом

зависимости

<dependencies>
  <!-- Scala -->
    <dependency>
        <groupId>org.scala-lang</groupId>
        <artifactId>scala-library</artifactId>
        <version>${scala.version}</version>
        <scope>compile</scope>
    </dependency>

    <dependency>
        <groupId>org.scala-lang</groupId>
        <artifactId>scala-compiler</artifactId>
        <version>${scala.version}</version>
    </dependency>
    <!-- END Scala -->
  <dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>18.0</version>
  </dependency>

  <dependency>
    <groupId>com.yammer.metrics</groupId>
    <artifactId>metrics-core</artifactId>
    <version>2.2.0</version>
  </dependency>

  <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>3.8.1</version>
    <scope>test</scope>
  </dependency>

  <dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.1.0</version>
    <scope>provided</scope>
  </dependency>

  <dependency>
    <groupId>com.datastax.cassandra</groupId>
    <artifactId>cassandra-driver-core</artifactId>
    <version>2.1.5</version>
  </dependency>

  <dependency>
    <groupId>org.json</groupId>
    <artifactId>json</artifactId>
    <version>20090211</version>
  </dependency>
<!-- Cassandra Spark Connector dependency -->
  <dependency>
    <groupId>com.datastax.spark</groupId>
    <artifactId>spark-cassandra-connector_2.10</artifactId>
    <version>1.2.0</version>
  </dependency>
<!-- Cassandra java Connector dependency -->
  <dependency>
    <groupId>com.datastax.spark</groupId>
    <artifactId>spark-cassandra-connector-java_2.10</artifactId>
    <version>1.2.0</version>
  </dependency> 

<!-- Spark Core dependency -->
        <dependency>
                <groupId>org.apache.spark</groupId>
                <artifactId>spark-core_2.11</artifactId>
                <version>1.3.1</version>
        </dependency>
    <!-- Spark dependency -->
        <dependency>
                 <groupId>org.apache.spark</groupId>
                 <artifactId>spark-streaming_2.11</artifactId>
                <version>1.3.1</version>
        </dependency>
    <!-- Spark dependency -->
        <dependency>
                <groupId>org.apache.spark</groupId>
                <artifactId>spark-streaming-kafka_2.10</artifactId>
                <version>1.3.1</version>
        </dependency>
  </dependencies>

и я строю, используя

<build>
      <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
            </configuration>
        </plugin>
           <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>2.3</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <filters>
                        <filter>
                            <artifact>*:*</artifact>
                            <excludes>
                                <exclude>META-INF/*.SF</exclude>
                                <exclude>META-INF/*.DSA</exclude>
                                <exclude>META-INF/*.RSA</exclude>
                            </excludes>
                        </filter>
                    </filters>
                    <finalName>uber-${project.artifactId}-${project.version}</finalName>
                </configuration>
            </plugin>
           <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
            </configuration>
        </plugin>

      </plugins>
    </build>

но когда я отправляю через код, он не работает, любая помощь очень ценится.. Я пытался добавить scala2.10.4 prop в pom до сих пор не повезло

Я работаю в Eclipse, так как запускаюсь как приложение со всеми master, spark home и jars, установленными в sparkConf, ошибка точно отображается в sparkConf.

Моя версия Scala

Scala-версия Scala код бегун версии 2.11.2 - Copyright 2002-2013, LAMP/EPFL

это как-то связано с проблемой?

Как перейти на более старую версию scala? В документе написано, что spark1.3.1 поддерживает версии scala 2.10.x, пожалуйста, дайте мне знать, как это исправить

1 ответ

Решение

Проблема, с которой вы столкнулись, связана с несовместимостью в версиях Scala. Предварительно собранный дистрибутив Spark 1.3.1 скомпилирован с более старой версией Scala 2.10, поскольку некоторые из зависимостей Spark не поддерживаются в 2.11, включая поддержку JDBC.

Я бы предложил запустить кластер Spark с Scala 2.10. Однако, если вы хотите, вы также можете скомпилировать свой пакет Spark с помощью Scala 2.11 следующим образом:

dev/change-version-to-2.11.sh
mvn -Pyarn -Phadoop-2.4 -Dscala-2.11 -DskipTests clean package

У меня возникла такая же проблема в scala IDE. и следующие шаги решили это.

Примечание:-проверьте совместимость согласно вашему scala-spark. для меня это версия scala - 2.11.* совместима с spark 2.4.*

Перейдите в проект >> щелкните правой кнопкой мыши >> свойства >> компилятор scala >> выберите параметр "использовать параметры проекта" >> и измените "установка scala" >> применить >> применить и закрыть..... готово.

нажмите на ссылку изображения ниже, чтобы увидеть настройки Scala IDE

Другие вопросы по тегам