作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在 twitter-streaming 的帮助下保存来自 twitter 的推文。但我有一个问题:我的程序在一段时间后停止工作(取决于接近 4-5 秒的 1 毫秒的批处理间隔)。那么,你能帮我解决这个问题吗)。请告诉我出了什么问题?
当批处理间隔接近 100 毫秒时,我会看到一些记录,例如
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 启动和完成的消息。
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();
}
}
最佳答案
根据这个答案:Spark 2.0.0 twitter streaming driver is no longer available Spark 2.0及更高版本没有可用的twitter-streaming-driver。解决方案选择早期版本的Spark)
关于java - 我怎样才能不间断地运行 Spark 流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57383835/
我是一名优秀的程序员,十分优秀!