You are not having the twitter4j jars in the classpath. While running it in
the cluster mode you need to ship those dependency jars.

You can do like:

sparkConf.setJars("/home/akhld/jars/twitter4j-core-3.0.3.jar,
/home/akhld/jars/twitter4j-stream-3.0.3.jar")

You can make sure they are shipped by checking the Application WebUI (4040)
environment tab.


Thanks
Best Regards

On Tue, Nov 11, 2014 at 5:48 PM, Jishnu Menath Prathap (WT01 - BAS) <
jishnu.prat...@wipro.com> wrote:

>    *Hi I am getting the following error while executing a scala_twitter
> program for spark*
> 14/11/11 16:39:23 ERROR receiver.ReceiverSupervisorImpl: Stopped executor
> with error: java.lang.NoSuchMethodError:
> twitter4j.TwitterStream.addListener(Ltwitter4j/StatusListener;)V
> 14/11/11 16:39:23 ERROR executor.Executor: Exception in task 0.0 in stage
> 0.0 (TID 0)
> java.lang.NoSuchMethodError:
> twitter4j.TwitterStream.addListener(Ltwitter4j/StatusListener;)V
>         at
> org.apache.spark.streaming.twitter.TwitterReceiver.onStart(TwitterInputDStream.scala:72)
>
>         at
> org.apache.spark.streaming.receiver.ReceiverSupervisor.startReceiver(ReceiverSupervisor.scala:121)
>
>         at
> org.apache.spark.streaming.receiver.ReceiverSupervisor.start(ReceiverSupervisor.scala:106)
>
>         at
> org.apache.spark.streaming.scheduler.ReceiverTracker$ReceiverLauncher$$anonfun$9.apply(ReceiverTracker.scala:264)
>
>         at
> org.apache.spark.streaming.scheduler.ReceiverTracker$ReceiverLauncher$$anonfun$9.apply(ReceiverTracker.scala:257)
>
>         at
> org.apache.spark.SparkContext$$anonfun$runJob$4.apply(SparkContext.scala:1121)
>
>         at
> org.apache.spark.SparkContext$$anonfun$runJob$4.apply(SparkContext.scala:1121)
>
>         at
> org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:62)
>         at org.apache.spark.scheduler.Task.run(Task.scala:54)
>         at
> org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:177)
>         at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown
> Source)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown
> Source)
>         at java.lang.Thread.run(Unknown Source)
> 14/11/11 16:39:23 ERROR executor.ExecutorUncaughtExceptionHandler:
> Uncaught exception in thread Thread[Executor task launch worker-0,5,main]
> java.lang.NoSuchMethodError:
> twitter4j.TwitterStream.addListener(Ltwitter4j/StatusListener;)V
>         at
> org.apache.spark.streaming.twitter.TwitterReceiver.onStart(TwitterInputDStream.scala:72)
>
>         at
> org.apache.spark.streaming.receiver.ReceiverSupervisor.startReceiver(ReceiverSupervisor.scala:121)
>
>         at
> org.apache.spark.streaming.receiver.ReceiverSupervisor.start(ReceiverSupervisor.scala:106)
>
>         at
> org.apache.spark.streaming.scheduler.ReceiverTracker$ReceiverLauncher$$anonfun$9.apply(ReceiverTracker.scala:264)
>
>         at
> org.apache.spark.streaming.scheduler.ReceiverTracker$ReceiverLauncher$$anonfun$9.apply(ReceiverTracker.scala:257)
>
>         at
> org.apache.spark.SparkContext$$anonfun$runJob$4.apply(SparkContext.scala:1121)
>
>         at
> org.apache.spark.SparkContext$$anonfun$runJob$4.apply(SparkContext.scala:1121)
>
>         at
> org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:62)
>         at org.apache.spark.scheduler.Task.run(Task.scala:54)
>         at
> org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:177)
>         at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown
> Source)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown
> Source)
>         at java.lang.Thread.run(Unknown Source)
> 1
> *I think it might be a dependency issue so sharing pom.xml too*
>
>         <dependencies>
>                 <dependency>
>                         <groupId>org.twitter4j</groupId>
>                         <artifactId>twitter4j-core</artifactId>
>                         <version>3.0.3</version>
>                 </dependency>
>                 <dependency>
>                         <groupId>org.apache.httpcomponents</groupId>
>                         <artifactId>httpclient</artifactId>
>                         <version>4.0-beta1</version>
>                 </dependency>
>                 <dependency>
>                         <groupId>org.apache.httpcomponents</groupId>
>                         <artifactId>httpclient</artifactId>
>                         <version>4.3.5</version>
>                 </dependency>
>                 <dependency>
>                         <groupId>oauth.signpost</groupId>
>                         <artifactId>signpost-commonshttp4</artifactId>
>                         <version>1.2</version>
>                 </dependency>
>                 <dependency>
>                         <groupId>org.scalatest</groupId>
>                         <artifactId>scalatest_2.10</artifactId>
>                         <version>3.0.0-SNAP2</version>
>                 </dependency>
>                 <dependency>
>                         <groupId>commons-io</groupId>
>                         <artifactId>commons-io</artifactId>
>                         <version>2.4</version>
>                 </dependency>
>                 <dependency>
>                         <groupId>junit</groupId>
>                         <artifactId>junit</artifactId>
>                         <version>4.4</version>
>                 </dependency>
>                 <dependency>
>                         <groupId>org.twitter4j</groupId>
>                         <artifactId>twitter4j-stream</artifactId>
>                         <version>3.0.3</version>
>                 </dependency>
>                 <dependency>
>                         <groupId>org.apache.spark</groupId>
>                         <artifactId>spark-streaming_2.10</artifactId>
>                         <version>1.1.0</version>
>                 </dependency>
>                 <dependency>
>                         <groupId>org.apache.spark</groupId>
>                         <artifactId>spark-core_2.10</artifactId>
>                         <version>1.1.0</version>
>                 </dependency>
>                 <dependency>
>                         <groupId>org.apache.spark</groupId>
>
> <artifactId>spark-streaming-twitter_2.10</artifactId>
>                         <version>1.1.0</version>
>                 </dependency>
>
>         </dependencies>
>
> * Code of the twitter streaming spark *
>
> object sparktwitteruser {
>                                 def main(args: Array[String]) {
>
>
>                                         val filters = Array("hi")
>                                         // Set the system properties so
> that Twitter4j library used by twitter stream
>                                         // can use them to generat OAuth
> credentials
>
>
> System.setProperty("twitter4j.oauth.consumerKey", "******")
>
> System.setProperty("twitter4j.oauth.consumerSecret","*****")
>
> System.setProperty("twitter4j.oauth.accessToken","*******")
>
> System.setProperty("twitter4j.oauth.accessTokenSecret", "*******")
>
>                                         val sparkConf = new
> SparkConf().setAppName("TwitterPopularTags").setMaster("local").set("spark.eventLog.enabled","true")
>
>                                         val ssc = new
> StreamingContext(sparkConf, Seconds(2))
>                                         val stream =
> TwitterUtils.createStream(ssc, None, filters)
>                                         val hashTags =
> stream.flatMap(status => status.getText.split("
> ").filter(_.startsWith("#")))
>                                         val topCounts60 = hashTags.map((_,
> 1)).reduceByKeyAndWindow(_ + _, Seconds(60))
>                                         .map{case (topic, count) =>
> (count, topic)}
>                                         .transform(_.sortByKey(false))
>
>                                         val topCounts10 = hashTags.map((_,
> 1)).reduceByKeyAndWindow(_ + _, Seconds(10))
>                                         .map{case (topic, count) =>
> (count, topic)}
>                                         .transform(_.sortByKey(false))
>                                         // Print popular hashtags
>
>                                         topCounts60.foreachRDD(rdd => {
>                                                 val topList = rdd.take(10)
>
> println("\nPopular topics in last 60 seconds (%s
> total):".format(rdd.count()))
>
> topList.foreach{case (count, tag) => println("%s (%s tweets)".format(tag,
> count))}
>                                         })
>
>                                         topCounts10.foreachRDD(rdd => {
>                                                 val topList = rdd.take(10)
>
> println("\nPopular topics in last 10 seconds (%s
> total):".format(rdd.count()))
>
> topList.foreach{case (count, tag) => println("%s (%s tweets)".format(tag,
> count))}
>                                         })
>
>                                         ssc.start()
>                                         ssc.awaitTermination()
>                                 }
>                         }
>
> The information contained in this electronic message and any attachments
> to this message are intended for the exclusive use of the addressee(s) and
> may contain proprietary, confidential or privileged information. If you are
> not the intended recipient, you should not disseminate, distribute or copy
> this e-mail. Please notify the sender immediately and destroy all copies of
> this message and any attachments.
>
> WARNING: Computer viruses can be transmitted via email. The recipient
> should check this email and any attachments for the presence of viruses.
> The company accepts no liability for any damage caused by any virus
> transmitted by this email.
>
> www.wipro.com
>

Reply via email to