【问题标题】:Spark Cummulative Processing on single log file单个日志文件上的 Spark 累积处理
【发布时间】:2016-01-04 10:35:16
【问题描述】:

对于使用spark streaming 的日志处理,我使用了socketStreamtextFileStream API。通过socketStream,在特定端口上使用nc -lk可以读取附加的日志文件,通过textFileStream可以读取目录中新增的任何文件并进行累积处理。

我正在寻找一个单个日志文件,它随着时间的推移而增长,我怎样才能将同一个日志文件读入说:DStream 或任何Spark RDD 句柄,然后累积处理它。我不打算使用nc -lk,因为它可能不是通用方法。 Spark中是否有任何方式或API,我们可以在其中监听日志文件,并且将读取其中的任何内容并将其处理为RDD格式?

【问题讨论】:

  • 你可能想看看 Kafka。

标签: apache-spark spark-streaming


【解决方案1】:

我认为目前 Spark 中没有原生 API 来监控 single 日志文件并获取持续增量日志内容(1.6 版本之前)
但似乎 netcat 模式(用于接收连续增量日志的尾部和 netnet 管道)在套接字流和 Kafka 流中都很普遍。
使用 spark 套接字流连接到流水线化的 netcat。

tail -f xxx.log | nc -lk 9999

或者使用 spark Kafka 流连接到流水线 kafkacat。

kafkacat 是 Apache Kafka 的通用非 JVM 生产者和消费者 0.8,把它想象成 Kafka 的 netcat。

https://github.com/edenhill/kafkacat

tail -f /var/log/syslog | kafkacat -b mybroker -t syslog -z snappy  

注意:从标准输入读取消息,通过快速压缩生成“syslog”主题。

【讨论】:

  • 使用nc 是一个聪明的方法......但是,我想我在某个地方看到了在 2.0 中您实际上可以监视文件。但我对此并不积极。需要更多的研究。 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-09-30
  • 2018-06-01
  • 2013-07-10
  • 2019-07-15
  • 1970-01-01
  • 2019-03-30
  • 1970-01-01
相关资源
最近更新 更多