java.lang.NoClassDefFoundError: org / apache / spark / Logging

10
Jonas Cristens 2016-10-27 14:29.

Siempre recibo el siguiente error. ¿Alguien puede ayudarme, por favor?

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/spark/Logging
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at com.datastax.spark.connector.japi.DStreamJavaFunctions.<init>(DStreamJavaFunctions.java:24)
    at com.datastax.spark.connector.japi.CassandraStreamingJavaUtil.javaFunctions(CassandraStreamingJavaUtil.java:55)
    at SparkStream.main(SparkStream.java:51)
    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:498)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
Caused by: java.lang.ClassNotFoundException: org.apache.spark.Logging
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 20 more

Cuando compilo el siguiente código. Busqué en la web pero no encontré una solución. Recibí el error cuando agregué saveToCassandra.

import com.datastax.spark.connector.japi.CassandraStreamingJavaUtil;
import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaSparkContext;
import org.apache.spark.streaming.Duration;
import org.apache.spark.streaming.api.java.JavaDStream;
import org.apache.spark.streaming.api.java.JavaPairInputDStream;
import org.apache.spark.streaming.api.java.JavaStreamingContext;
import org.apache.spark.streaming.kafka.KafkaUtils;

import java.io.Serializable;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

import static com.datastax.spark.connector.japi.CassandraJavaUtil.mapToRow;

/**
 * Created by jonas on 10/10/16.
 */
public class SparkStream implements Serializable{
        public static void main(String[] args) throws Exception{
        SparkConf conf = new SparkConf(true)
                .setAppName("TwitterToCassandra")
                .setMaster("local[*]")
                .set("spark.cassandra.connection.host", "127.0.0.1")
                .set("spark.cassandra.connection.port", "9042");
;
        JavaSparkContext sc = new JavaSparkContext(conf);
        JavaStreamingContext ssc = new JavaStreamingContext(sc, new Duration(5000));

        Map<String, String> kafkaParams = new HashMap<>();
        kafkaParams.put("bootstrap.servers", "localhost:9092");
        Set<String> topics = Collections.singleton("Test");

        JavaPairInputDStream<String, String> directKafkaStream = KafkaUtils.createDirectStream(
                ssc,
                String.class,
                String.class,
                kafka.serializer.StringDecoder.class,
                kafka.serializer.StringDecoder.class,
                kafkaParams,
                topics
        );

        JavaDStream<Tweet> createTweet = directKafkaStream.map(s -> createTweet(s._2));


        CassandraStreamingJavaUtil.javaFunctions(createTweet)
                .writerBuilder("mykeyspace", "rawtweet", mapToRow(Tweet.class))
                .saveToCassandra();

        ssc.start();
        ssc.awaitTermination();

    }


    public static Tweet createTweet(String rawKafka){
        String[] splitted = rawKafka.split("\\|");
        Tweet t = new Tweet(splitted[0], splitted[1], splitted[2], splitted[3]);
        return t;
    }
}

Mi pom es el siguiente.

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.company</groupId>
    <artifactId>Sentiment</artifactId>
    <version>1.0-SNAPSHOT</version>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <repositories>
        <repository>
            <id>twitter4j.org</id>
            <name>twitter4j.org Repository</name>
            <url>http://twitter4j.org/maven2</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
    </repositories>

    <dependencies>
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-streaming_2.11</artifactId>
            <version>2.0.1</version>
        </dependency>

        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-core_2.10</artifactId>
            <version>2.0.0</version>
        </dependency>

        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-sql_2.10</artifactId>
            <version>2.0.0</version>
        </dependency>

        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-streaming-kafka-0-8_2.11</artifactId>
            <version>2.0.1</version>
        </dependency>


        <!-- https://mvnrepository.com/artifact/org.scala-lang/scala-library -->
        <dependency>
            <groupId>org.scala-lang</groupId>
            <artifactId>scala-library</artifactId>
            <version>2.11.8</version>
        </dependency>



        <!-- https://mvnrepository.com/artifact/com.datastax.spark/spark-cassandra-connector_2.10 -->
        <dependency>
            <groupId>com.datastax.spark</groupId>
            <artifactId>spark-cassandra-connector_2.10</artifactId>
            <version>1.6.2</version>
        </dependency>

        <dependency>
            <groupId>org.apache.kafka</groupId>
            <artifactId>kafka_2.10</artifactId>
            <version>0.9.0.0</version>
        </dependency>

        <dependency>
            <groupId>org.twitter4j</groupId>
            <artifactId>twitter4j-core</artifactId>
            <version>[4.0,)</version>
        </dependency>

        <dependency>
            <groupId>org.twitter4j</groupId>
            <artifactId>twitter4j-stream</artifactId>
            <version>4.0.4</version>
        </dependency>

        <dependency>
            <groupId>org.twitter4j</groupId>
            <artifactId>twitter4j-async</artifactId>
            <version>4.0.4</version>
        </dependency>
    </dependencies>


</project>

10 answers

14
Chandana Kumara 2016-10-27 21:41.

org.apache.spark.Logging está disponible en Spark versión 1.5.2 o una versión inferior. No está en la 2.0.0. Por favor, cambie las versiones de la siguiente manera

    <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-streaming_2.11</artifactId>
        <version>1.5.2</version>
    </dependency>

    <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-core_2.10</artifactId>
        <version>1.5.2</version>
    </dependency>

    <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-sql_2.10</artifactId>
        <version>1.5.2</version>
    </dependency>

    <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-streaming-kafka-0-8_2.11</artifactId>
        <version>1.6.2</version>
    </dependency>
10
RussS 2016-10-28 00:21.

El error se debe a que estás usando bibliotecas Spark 2.0 con el conector de Spark 1.6 (que busca la clase de registro Spark 1.6. Usa la versión 2.0.5 del conector.

4
djzhu 2018-01-23 15:13.

Es por la falta de la clase org.apache.spark.Logging desde 1.5.2, como dicen todos. (Solo org.apache.spark.internal.Logging existe en la versión posterior ...)

Pero parece que ninguna de las soluciones contra maven puede resolver esta dependencia, así que solo intento agregar esta clase a lib manualmente. Esta es mi forma de solucionar el problema:

  1. Empaqueta el scala org.apache.spark.internal.Loggingen un frasco público. O descárguelo de https://raw.githubusercontent.com/swordsmanliu/SparkStreamingHbase/master/lib/spark-core_2.11-1.5.2.logging.jar (Gracias a este host).

  2. Mueve el frasco al directorio frascos de tu clúster Spark.

  3. Envíe su proyecto nuevamente, deseo que lo ayude.

2
Narendra Maru 2017-11-10 12:50.

Obtuve la solución cambiando la mención anterior jar.

Inicialmente, tenía jar degradado para spark-kafka-streaming:

<dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-streaming-kafka-0-8_2.11</artifactId>
        <version>2.1.1</version></dependency>

También eliminé multilple sl4j-log4j.jars y log4j.jars que había agregado externamente desde la biblioteca de jarras de Spark y Kafka.

1
Priyanshu Singh 2017-10-30 05:07.

Descargue spark-core_2.11-1.5.2.logging.jar y utilícelo como opción --jar

spark-submit --class com.SentimentTwiteer --packages "org.apache.spark: spark-streaming-twitter_2.11: 1.6.3" --jars /root/Desktop/spark-core_2.11-1.5.2.logging .jar /root/Desktop/SentimentTwiteer.jar consumerKey consumidorSecret accessToken accessTokenSecret yoursearchTag

https://github.com/sinhavicky4/SentimentTwiteer

0
m.semnani 2017-06-12 16:20.

Una razón que puede causar este problema es el conflicto de clases y lib . Enfrenté este problema y lo resolví usando algunas exclusiones de maven :

<dependency>
       <groupId>org.apache.spark</groupId>
       <artifactId>spark-core_2.11</artifactId>
       <version>2.0.0</version>
       <scope>provided</scope>
       <exclusions>
           <exclusion>
               <groupId>log4j</groupId>
               <artifactId>log4j</artifactId>
           </exclusion>
       </exclusions>
   </dependency>

   <dependency>
       <groupId>org.apache.spark</groupId>
       <artifactId>spark-streaming_2.11</artifactId>
       <version>2.0.0</version>
       <scope>provided</scope>
   </dependency>

   <dependency>
       <groupId>org.apache.spark</groupId>
       <artifactId>spark-streaming-kafka-0-10_2.11</artifactId>
       <version>2.0.0</version>
       <exclusions>
           <exclusion>
               <groupId>org.slf4j</groupId>
               <artifactId>slf4j-log4j12</artifactId>
           </exclusion>
           <exclusion>
               <groupId>log4j</groupId>
               <artifactId>log4j</artifactId>
           </exclusion>
       </exclusions>
   </dependency>
0
merlin.chan 2017-08-17 14:11.

este pom.xml resuelve mi problema:

        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-core_2.10</artifactId>
            <version>1.6.1</version>
        </dependency>

        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-streaming_2.10</artifactId>
            <version>1.6.1</version>
        </dependency>
0
Priyanshu Singh 2017-10-29 12:30.

Descargué el jar y usé --jars en spark-submit, funcionó para mí spark-submit --class com.SentimentTwiteer --packages "org.apache.spark: spark-streaming-twitter_2.11: 1.6.3" --jars /root/Desktop/spark-core_2.11-1.5.2.logging.jar /root/Desktop/SentimentTwiteer.jar XX XX XX XX

0
Sampat Kumar 2018-09-23 11:33.
0
shivangi kulshrestha 2020-11-11 23:00.

si está usando IntelliJ, simplemente marque la casilla 'incluir dependencias con el alcance provisto' y eso solucionará el problema por usted sin perder el tiempo con el pom o descargar manualmente los archivos.

Related questions

MORE COOL STUFF

Jana Duggar: Todo lo que ha dicho sobre el amor y su ventana de 5 años para encontrar al 'Elegido'

Jana Duggar: Todo lo que ha dicho sobre el amor y su ventana de 5 años para encontrar al 'Elegido'

Jana Duggar ha sido abierta sobre su búsqueda del amor. Aquí está todo lo que ha dicho sobre el tema y su ventana de cinco años para el matrimonio.

Sam Heughan sabe exactamente lo que tomará del set de 'Outlander': 'Me siento como si fuera Jamie cuando me los pongo'

Sam Heughan sabe exactamente lo que tomará del set de 'Outlander': 'Me siento como si fuera Jamie cuando me los pongo'

La estrella de 'Outlander', Sam Heughan, reveló recientemente qué se llevará del set para recordar a Jamie Fraser, el papel que lo convirtió en una estrella.

La primera canción de los Beatles que fue una de las 'actuaciones más emocionantes' de la banda, según Fab Four Insider

La primera canción de los Beatles que fue una de las 'actuaciones más emocionantes' de la banda, según Fab Four Insider

'She Loves You' fue escrita en una hora, grabada en un día y fue la canción de The Beatles con una de las mejores interpretaciones de su carrera.

Dolly Parton ayudó a su abuela 'inválida' cuando ninguno de los otros nietos lo haría: también le hacía una broma

Dolly Parton ayudó a su abuela 'inválida' cuando ninguno de los otros nietos lo haría: también le hacía una broma

Dolly Parton y su abuela Bessie tenían una relación especial. La abuela Parton estaba muy enferma, pero eso no impidió que Dolly le hiciera una broma.

Las 10 especies de monos más "feas": Belleza poco convencional en los primates

Las 10 especies de monos más "feas": Belleza poco convencional en los primates

Algunos monos tienen mucha suerte con la genética. ¿Otros? No tanto. El mono más feo no es una sola especie, sino toda una galería de primates que te hacen mirar dos veces y preguntarte si la evolución te estaba jugando una broma.

¿Cuál es la madera más dura del mundo?

¿Cuál es la madera más dura del mundo?

Puede que pienses que el roble o el nogal americano son maderas resistentes, pero cuando se trata de las maderas más duras del mundo, ni siquiera se acercan.

10 de las criaturas marinas más aterradoras que acechan en las profundidades del océano

10 de las criaturas marinas más aterradoras que acechan en las profundidades del océano

El océano rebosa belleza, pero también esconde algunas de las criaturas marinas más aterradoras del planeta. Muchos de estos animales acechan en las profundidades oceánicas, en el oscuro y opresivo mundo de alta presión del océano.

Los 10 mejores encantamientos de espada en Minecraft

Los 10 mejores encantamientos de espada en Minecraft

Si te enfrentas a monstruos hostiles o te preparas para combates PvP, conocer los mejores encantamientos para espadas en Minecraft puede darte una gran ventaja. Encantar espadas te permite infligir más daño, aumentar los objetos que sueltan los monstruos y prolongar la durabilidad de tu espada.

Resumen del oso: ¿Es Marcus el hombre más amable, suave y sincero de Chicago?

Resumen del oso: ¿Es Marcus el hombre más amable, suave y sincero de Chicago?

“Children” lanza un cameo de renombre y algunas noticias devastadoras

Por $ 9,800, ¿los 'empacarías' en este Toyota RAV4 2008 de siete plazas?

Por $ 9,800, ¿los 'empacarías' en este Toyota RAV4 2008 de siete plazas?

Se dice que este RAV4 está en excelentes condiciones y preparado para un juego de sillas musicales.

Furgoneta de reparto de Amazon se enciende en una ardiente explosión durante el calor del verano en Houston

Furgoneta de reparto de Amazon se enciende en una ardiente explosión durante el calor del verano en Houston

Imágenes de drones capturaron a los bomberos que parecían tener dificultades para apagar el incendio.

Black Panther Show de Marvel será el programa animado más crucial hasta el momento

Black Panther Show de Marvel será el programa animado más crucial hasta el momento

Eyes of Wakanda se vincula directamente con la MCU, además de actualizaciones sobre X-Men '97, What If..., Daredevil y más.

Todo sobre el impresionante anillo de compromiso de zafiro de Kate Middleton (¡y la reliquia real en la que se inspiró!)

Todo sobre el impresionante anillo de compromiso de zafiro de Kate Middleton (¡y la reliquia real en la que se inspiró!)

El anillo de compromiso de Kate Middleton perteneció a la princesa Diana antes de que el príncipe William le propusiera matrimonio con él. Descubra todo lo que hay que saber sobre esta pieza histórica aquí.

¿Quién es la esposa de John Cleese? Todo sobre Jennifer Wade

¿Quién es la esposa de John Cleese? Todo sobre Jennifer Wade

John Cleese se casó con su esposa, Jennifer Wade, en 2012. Aquí encontrará todo lo que debe saber sobre la esposa de John Cleese, Jennifer Wade.

¿Quién es la esposa de Patton Oswalt? Todo sobre Meredith Salenger

¿Quién es la esposa de Patton Oswalt? Todo sobre Meredith Salenger

Patton Oswalt se casó con su esposa, la también actriz Meredith Salenger, en 2017. Aquí encontrará todo lo que debe saber sobre la esposa de Patton Oswalt, Meredith Salenger.

¿Quién es la esposa de Jason Kennedy? Todo sobre Lauren Scruggs Kennedy

¿Quién es la esposa de Jason Kennedy? Todo sobre Lauren Scruggs Kennedy

Aquí encontrará todo lo que debe saber sobre Lauren Scruggs Kennedy, la bloguera de moda y autora de best sellers del New York Times que espera su segundo hijo con la personalidad de televisión Jason Kennedy.

los pronombres dan mucho miedo

Me llama la atención De repente, como ocurre con tanta frecuencia Es el punto medio de nuevo <No, no el del Pacífico, tú, el del carnaval> Todos los titulares en voz alta...

3 formas comprobadas de mejorar su habilidad de escritura

Los beneficios de escribir y estrategias para ayudarte a hacerlo

3 formas comprobadas de mejorar su habilidad de escritura

En 2022, con el lanzamiento de GPT-3, la habilidad de escritura parece perder importancia. Con IA, las personas con mala escritura también pueden generar personal de calidad.

La erosión lenta: revelando las formas en que las personas se desgastan en sus carreras

La erosión lenta: revelando las formas en que las personas se desgastan en sus carreras

En el mundo acelerado y competitivo de hoy, la carrera de uno juega un papel importante en el crecimiento personal, la estabilidad financiera y la satisfacción general con la vida. Sin embargo, muchas personas se encuentran atrapadas en un ciclo implacable de estancamiento e insatisfacción, y su vida profesional se desvanece gradualmente.

¿Qué hace que un podcast sea influyente?

¿Qué hace que un podcast sea influyente?

La semana pasada noté un comunicado de prensa, enviado a través de PressGazette (un sitio web de noticias de los medios británicos). El artículo anunciaba que Acast, la empresa de publicidad y alojamiento de podcasts de Scandi, lideraría un consorcio de editores "probablemente los más influyentes" en podcasting.

Language