SparkStreaming +Flume集成的push模式和poll模式
介绍:
官方文档:
http://spark.apache.org/docs/2.0.2/streaming-flume-integration.html
Apache Flume 是一种分布式可靠的收集、聚合、移动大量日志数据的服务.
Flume and Spark Streaming to receive(接收) data from Flume:
两种方法: push和poll
-
推模式(Flume push SparkStreaming)与拉模式(SparkStreaming poll Flume)比较 :
采用推模式:推模式的理解就是Flume作为缓存,存有数据。监听对应端口,如果服务可以链接,就将数据push过去。(简单,耦合要低),缺点是SparkStreaming 程序没有启动的话,Flume端会报错,同时可能会导致Spark Streaming 程序来不及消费的情况。
采用拉模式:拉模式就是自己定义一个sink,SparkStreaming自己去channel里面取数据,根据自身条件去获取数据,稳定性好。
一、Flume-push 推送式方法
1.flume配置
agent.sinks = avroSink
agent.sinks.avroSink.type = avro
agent.sinks.avroSink.channel = memoryChannel
agent.sinks.avroSink.hostname = <chose