【发布时间】:2015-04-16 23:55:01
【问题描述】:
我有一个 Apache 访问日志文件,其中包含一些数据并且还在不断增加。我想使用 Apache Spark Streaming API 分析这些数据。
Spark 对我来说是新的,我创建了一个程序,在其中我使用jssc.textFileStream(directory) 函数来获取日志数据。但它不符合我的要求。
请建议我一些使用 spark 分析该日志文件的方法。
这是我的代码。
SparkConf conf = new SparkConf()
.setMaster("spark://192.168.1.9:7077")
.setAppName("log streaming")
.setSparkHome("/usr/local/spark")
.setJars(new String[] { "target/sparkstreamingdemo-0.0.1.jar" });
StreamingContext ssc = new StreamingContext(conf, new Duration(5000));
DStream<String> filerdd = ssc.textFileStream("/home/user/logs");
filerdd.print();
ssc.start();
ssc.awaitTermination();
此代码不会从现有文件返回任何数据。这仅在我创建新文件时有效,但是当我更新该新文件时,程序再次不会返回更新的数据。
【问题讨论】:
-
您能提供您的代码吗?否则很难找出问题的根源。
-
嗨@MikelUrkia 我在这里添加了我的代码。请给出一些分析日志文件的指导。
-
Spark 将处理您的新文件,但无法看到您已更新已处理的文件之一。 Spark 处理文件一次,仅此而已。如果要再次处理,可以更改文件的名称。
-
有没有办法处理像日志文件这样的连续附加文件?
标签: apache-spark spark-streaming access-log log-analysis