首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在不中断的情况下运行spark-streaming

如何在不中断的情况下运行spark-streaming
EN

Stack Overflow用户
提问于 2019-08-07 04:51:33
回答 1查看 75关注 0票数 0

我正在尝试通过帮助twitter-streaming.But来保存来自twitter的保存推文,但我有一个问题:我的程序在一段时间后停止工作(取决于接近4-5秒的1毫秒的批处理间隔)。所以,你能帮我解决这个问题吗)。请告诉我出了什么问题?

当批处理间隔接近100毫秒时,我看到一些记录,如

代码语言:javascript
复制
19/08/06 23:45:26 INFO BlockRDD: Removing RDD 103 from persistence list
19/08/06 23:45:26 INFO BlockManager: Removing RDD 103
19/08/06 23:45:26 INFO TwitterInputDStream: Removing blocks of RDD BlockRDD[103] at createStream at Twitter.java:35 of time 1565124324340 ms
19/08/06 23:45:26 INFO ReceivedBlockTracker: Deleting batches: 1565124324320 ms
19/08/06 23:45:26 INFO InputInfoTracker: remove old batch metadata: 1565124324320 ms
-------------------------------------------
Time: 1565124325500 ms

当批处理间隔“很大”并且任何数据不可用时,我只看到关于Spark UI开始和结束的消息。

代码语言:javascript
复制
package TwitterAnalysis;

import org.apache.spark.*;
import org.apache.spark.storage.StorageLevel;
import org.apache.spark.streaming.*;
import org.apache.spark.streaming.api.java.*;
import org.apache.spark.streaming.twitter.*;

import twitter4j.Status;



public class Twitter {

    private static void setTwitterOAuth() {
        System.setProperty("twitter4j.oauth.consumerKey", TwitterOAuthKey.consumerKey);
        System.setProperty("twitter4j.oauth.consumerSecret", TwitterOAuthKey.consumerSecret);
        System.setProperty("twitter4j.oauth.accessToken", TwitterOAuthKey.accessToken);
        System.setProperty("twitter4j.oauth.accessTokenSecret", TwitterOAuthKey.accessTokenSecret);
    }



    public static void main(String [] args) {

        setTwitterOAuth();

        SparkConf conf = new SparkConf().setMaster("local[*]")
                                         .setAppName("SparkTwitter");

      //  JavaSparkContext sparkContext = new JavaSparkContext(conf);
        JavaStreamingContext jssc = new JavaStreamingContext(conf, new Duration(10000));


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

        //Stream that contains just tweets in english
        JavaDStream<Status> enTweetsDStream=twitterStream.filter((status) -> "en".equalsIgnoreCase(status.getLang()));
        enTweetsDStream.persist(StorageLevel.MEMORY_AND_DISK());


        enTweetsDStream.print();
        jssc.start();


    }

}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-18 00:57:56

根据这个答案:在Spark2.0和更高版本的version.Solution中,Spark 2.0.0 twitter streaming driver is no longer available没有可用的推特-流-驱动程序)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57383835

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档