0

Just started working on twitter spark streaming on eclipse IDE. I updated my pom.xml file:

<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>please.help</groupId>
    <artifactId>please</artifactId>
    <version>0.0.1-SNAPSHOT</version>

    <dependencies>
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-core_2.10</artifactId>
            <version>2.2.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-streaming_2.10</artifactId>
            <version>2.2.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-streaming-twitter_2.10</artifactId>
            <version>1.6.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-examples_2.10</artifactId>
            <version>1.0.2</version>
        </dependency>
    </dependencies>

    <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>
</project>

And I created a java class named TweetStream.java with the following codes:

public static void main(String[] args) {
    final String consumerKey = "****";
    final String consumerSecret = "****";
    final String accessToken = "****";
    final String accessTokenSecret = "****";

    SparkConf conf = new SparkConf().setMaster("local[2]").setAppName("SparkTwitterHelloWorldExample");
    JavaStreamingContext jssc = new JavaStreamingContext(conf, new Duration(30000));

    System.setProperty("twitter4j.oauth.consumerKey", consumerKey);
    System.setProperty("twitter4j.oauth.consumerSecret", consumerSecret);
    System.setProperty("twitter4j.oauth.accessToken", accessToken);
    System.setProperty("twitter4j.oauth.accessTokenSecret", accessTokenSecret);

    JavaReceiverInputDStream<Status> twitterStream = TwitterUtils.createStream(jssc);

    // Without filter: Output text of all tweets
    JavaDStream<String> statuses = twitterStream.map(
            new Function<Status, String>() {
                public String call(Status status) { return status.getText(); }
            }
    );
    statuses.print();
    jssc.start();
}

Follwoing that, I did Run as > Maven install which built successfully. Then Run as > Run as Java application which gave the error:

    Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties
18/03/04 10:39:02 INFO SparkContext: Running Spark version 2.2.1
18/03/04 10:39:02 WARN SparkContext: Support for Scala 2.10 is deprecated as of Spark 2.1.0
18/03/04 10:39:02 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
18/03/04 10:39:03 INFO SparkContext: Submitted application: SparkTwitterHelloWorldExample
18/03/04 10:39:03 INFO SecurityManager: Changing view acls to: Xian
18/03/04 10:39:03 INFO SecurityManager: Changing modify acls to: Xian
18/03/04 10:39:03 INFO SecurityManager: Changing view acls groups to: 
18/03/04 10:39:03 INFO SecurityManager: Changing modify acls groups to: 
18/03/04 10:39:03 INFO SecurityManager: SecurityManager: authentication disabled; ui acls disabled; users  with view permissions: Set(Xian); groups with view permissions: Set(); users  with modify permissions: Set(Xian); groups with modify permissions: Set()
18/03/04 10:39:04 INFO Utils: Successfully started service 'sparkDriver' on port 60829.
18/03/04 10:39:04 INFO SparkEnv: Registering MapOutputTracker
18/03/04 10:39:04 INFO SparkEnv: Registering BlockManagerMaster
18/03/04 10:39:04 INFO BlockManagerMasterEndpoint: Using org.apache.spark.storage.DefaultTopologyMapper for getting topology information
18/03/04 10:39:04 INFO BlockManagerMasterEndpoint: BlockManagerMasterEndpoint up
18/03/04 10:39:04 INFO DiskBlockManager: Created local directory at C:\Users\User\AppData\Local\Temp\blockmgr-72db40d5-23de-4b88-98c1-30114f48828c
18/03/04 10:39:04 INFO MemoryStore: MemoryStore started with capacity 901.8 MB
18/03/04 10:39:04 INFO SparkEnv: Registering OutputCommitCoordinator
18/03/04 10:39:04 INFO Utils: Successfully started service 'SparkUI' on port 4040.
18/03/04 10:39:04 INFO SparkUI: Bound SparkUI to 0.0.0.0, and started at http://192.168.100.4:4040
18/03/04 10:39:04 INFO Executor: Starting executor ID driver on host localhost
18/03/04 10:39:04 INFO Utils: Successfully started service 'org.apache.spark.network.netty.NettyBlockTransferService' on port 60842.
18/03/04 10:39:04 INFO NettyBlockTransferService: Server created on 192.168.100.4:60842
18/03/04 10:39:04 INFO BlockManager: Using     org.apache.spark.storage.RandomBlockReplicationPolicy for block replication policy
18/03/04 10:39:04 INFO BlockManagerMaster: Registering BlockManager BlockManagerId(driver, 192.168.100.4, 60842, None)
18/03/04 10:39:04 INFO BlockManagerMasterEndpoint: Registering block manager 192.168.100.4:60842 with 901.8 MB RAM, BlockManagerId(driver, 192.168.100.4, 60842, None)
18/03/04 10:39:04 INFO BlockManagerMaster: Registered BlockManager BlockManagerId(driver, 192.168.100.4, 60842, None)
18/03/04 10:39:04 INFO BlockManager: Initialized BlockManager: BlockManagerId(driver, 192.168.100.4, 60842, None)
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:338)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at org.apache.spark.streaming.twitter.TwitterUtils$.createStream(TwitterUtils.scala:44)
    at org.apache.spark.streaming.twitter.TwitterUtils$.createStream(TwitterUtils.scala:56)
    at org.apache.spark.streaming.twitter.TwitterUtils.createStream(TwitterUtils.scala)
    at please.TweetStream.main(TweetStream.java:27)
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:338)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 16 more
18/03/04 10:39:05 INFO SparkContext: Invoking stop() from shutdown hook
18/03/04 10:39:05 INFO SparkUI: Stopped Spark web UI at http://192.168.100.4:4040
18/03/04 10:39:05 INFO MapOutputTrackerMasterEndpoint: MapOutputTrackerMasterEndpoint stopped!
18/03/04 10:39:05 INFO MemoryStore: MemoryStore cleared
18/03/04 10:39:05 INFO BlockManager: BlockManager stopped
18/03/04 10:39:05 INFO BlockManagerMaster: BlockManagerMaster stopped
18/03/04 10:39:05 INFO     OutputCommitCoordinator$OutputCommitCoordinatorEndpoint: OutputCommitCoordinator stopped!
18/03/04 10:39:05 INFO SparkContext: Successfully stopped SparkContext
18/03/04 10:39:05 INFO ShutdownHookManager: Shutdown hook called
18/03/04 10:39:05 INFO ShutdownHookManager: Deleting directory C:\Users\User\AppData\Local\Temp\spark-b93e2698-f4fb-4d1a-b690-6f1128f4759c

The application started successfully, but a logging problem occurred and the application just skipped the codes and closed the connection.

0 Answers0