java.lang.NoClassDefFoundError: org / apache / spark / internal / Logging - PullRequest
0 голосов
/ 07 января 2019

Программа My Spark Streaming получила следующую ошибку: Исключение в потоке "main" java.lang.NoClassDefFoundError: org / apache / spark / internal / Logging Моя версия spark - 2.1, которая совпадает с версией, работающей в кластере.

Информация, которую я нашел в Интернете, подтолкнула меня к тому, что старая версия org.apache.spark.Logging стала org.apache.spark.internal.Logging в новой версии, что не позволило найти пакет jar. Но зависимость, представленная в моём поме, - это новая версия. Почему я не могу найти пакет с банкой?

    <properties>
            <spark.version>2.1.0</spark.version>
            <scala.version>2.11</scala.version>
    </properties>

    <dependencies>
            <dependency>
                    <groupId>org.apache.spark</groupId>
                    <artifactId>spark-core_${scala.version}</artifactId>
                    <version>${spark.version}</version>
            </dependency>
            <dependency>
                    <groupId>org.apache.spark</groupId>
                    <artifactId>spark-streaming_${scala.version}</artifactId>
                    <version>${spark.version}</version>
            </dependency>
            <dependency>
                    <groupId>org.apache.spark</groupId>
                    <artifactId>spark-sql_${scala.version}</artifactId>
                    <version>${spark.version}</version>
            </dependency>
            <dependency>
                    <groupId>org.apache.spark</groupId>
                    <artifactId>spark-hive_${scala.version}</artifactId>
                    <version>${spark.version}</version>
            </dependency>
            <dependency>
                    <groupId>org.apache.spark</groupId>
                    <artifactId>spark-streaming-kafka-0-10_2.11</artifactId>
                    <version>2.1.0</version>
            </dependency>
            <dependency>
                    <groupId>org.apache.hadoop</groupId>
                    <artifactId>hadoop-client</artifactId>
                    <version>2.6.0</version>
            </dependency>
            <dependency>
                    <groupId>org.scala-tools</groupId>
                    <artifactId>maven-scala-plugin</artifactId>
                    <version>2.15.2</version>
            </dependency>
            <dependency>
                    <groupId>log4j</groupId>
                    <artifactId>log4j</artifactId>
                    <version>1.2.17</version>
            </dependency>
    </dependencies>
    <build>
            <plugins>
                    <plugin>
                            <groupId>org.scala-tools</groupId>
                            <artifactId>maven-scala-plugin</artifactId>
                            <version>2.15.2</version>
                            <executions>
                                    <execution>
                                            <goals>
                                                    <goal>compile</goal>
                                                    <goal>testCompile</goal>
                                            </goals>
                                    </execution>
                            </executions>
                    </plugin>

                    <plugin>
                            <artifactId>maven-compiler-plugin</artifactId>
                            <version>3.6.0</version>
                            <configuration>
                                    <source>1.8</source>
                                    <target>1.8</target>
                            </configuration>
                    </plugin>
                    <plugin>
                            <groupId>org.apache.maven.plugins</groupId>
                            <artifactId>maven-surefire-plugin</artifactId>
                            <version>2.19</version>
                            <configuration>
                                    <skip>true</skip>
                            </configuration>
                    </plugin>
            </plugins>
    </build>

1 Ответ

0 голосов
/ 07 января 2019

Я сталкивался с java.lang.NoClassDefFoundError несколько раз. У меня установлен Spark-2.3.1, поэтому я думаю, что он должен работать и в вашем случае.

В моем случае java.lang.NoClassDefFoundError: org / apache / spark / internal / Ведение журнала должно происходить из spark-core_2.11-2.3.1.jar, а в вашем случае оно должно исходить из spark-core_2. 11-2.1.0.jar на основе вашей версии spark и scala, упомянутой в вопросе

Когда вы смотрите на исходный код , он использует классы org.slf4j._. Поэтому я рекомендую добавить эту зависимость в ваш pom и затем попробовать. Для NoClassDefFoundError всегда лучше найти jar-файл, который генерирует эту ошибку, а затем попытаться ее отследить.

Ниже показано, как определить, какой jar-файл вызывает ошибку NoClassDefFound, при условии, что у вас есть все jar-файлы зависимостей в ~ / spark / jars.

for i in `ls ~/spark/jars/*.jar`; 
  do 
  jar tvf $i | grep  org/apache/spark/internal/Logging; 
  echo "************** $i ************** "; 
done

Пожалуйста, дайте мне знать, если это решило вашу проблему.

...