Flume 整合 Spark Streaming 时用 pull 方式采集数据,少不了的就是spark-streaming-flume-sink_2.11_2.1.1.jar这个包。直接把它放进你的lib
里,搭配flume-ng agent
,跑起来还挺稳。
Sink 的实现已经帮你封装好了,基本不用手动撸代码,配好 Flume 的avroSource
和 Spark Streaming 里的FlumeUtils.createPollingStream
就能收数据。响应也快,丢包率低,日常跑日志收集、监控啥的挺合适。
你要是正好在搞Kafka、HBase这类组件的实时,配合这个 JAR 包还能组成完整链路。有兴趣的可以看看这几个相关的:
Flume 与 Spark Streaming 集成资源包讲了怎么配置;实时日志系统这套方案也用到了它;还有Pro Spark Streaming 实时指南也提到过它的用法。
哦对了,如果你用的是 Spark 2.1.1 + Scala 2.11 环境,这个版本正好对口。如果你是别的版本,注意别搞错了,不然启动直接报 ClassNotFound。
如果你要搞 Flume 和 Spark 的 pull 模式整合,用这个 JAR 包就对了,省事不少。