spark-streaming-flume-sink_2.11-2.0.0.jar 的 jar 包,主要是干嘛的?嗯,说白了,它就是让你把Flume
采集到的数据,直接推给Spark Streaming
来,适合做实时日志、事件流这一类的活儿。对接简单,挺省事。
Flume 对接 Spark Streaming的时候,最大的麻烦就是接口兼容问题。这包的版本是2.11-2.0.0
,对应的Spark
和Flume
也要注意对上号,不然容易连不上。你可以看看这个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 agent
和Spark
的通信。端口别冲突,响应也要稳定,不然你排查起来会挺麻烦。
如果你想做一个轻量的实时采集系统,又不想折腾太多配置,这个spark-streaming-flume-sink_2.11-2.0.0.jar
真的是个不错的起点。