spark-streaming-flume-sink_2.11-2.0.0.jar 的 jar 包,主要是干嘛的?嗯,说白了,它就是让你把Flume采集到的数据,直接推给Spark Streaming来,适合做实时日志、事件流这一类的活儿。对接简单,挺省事。

Flume 对接 Spark Streaming的时候,最大的麻烦就是接口兼容问题。这包的版本是2.11-2.0.0,对应的SparkFlume也要注意对上号,不然容易连不上。你可以看看这个Spark Streaming Flume Sink 2.11 2.1.1,版本挺详细的。

用这个包之后,Flume 事件就可以直接被receiverStream接住,比如:

val flumeStream = FlumeUtils.createStream(ssc, "localhost", 41414)

数据拿到了,后面怎么加工就随你啦,像是写入HBase、落地到Kafka都行。

你如果还在搭Spark Streaming的实时链路,强烈建议配套看看这篇:基于 spark streaming+flume+kafka+hbase 的实时日志系统.zip,思路比较清晰,能帮你少踩坑。

对了,用之前最好先测试一下Flume agentSpark的通信。端口别冲突,响应也要稳定,不然你排查起来会挺麻烦。

如果你想做一个轻量的实时采集系统,又不想折腾太多配置,这个spark-streaming-flume-sink_2.11-2.0.0.jar真的是个不错的起点。