背景
本系列的第二篇中给出了实时预处理部分的总体框架和Storm Topology的实现。在Storm处理之前,由于从Stanford获取的乐器类评价文件(Musical_Instruments_5.json)是某一段时间的全量数据集,所以也提到可以自己写个小应用来模拟实时评论。这里给出几种实现方案。
提前知识
关于Flume的原理,网上有很多参考资料。在本人的实时处理环境搭建过程中也给出了Flume+Kafka的配置文件,这里给出简单说明
(1)给出FlumeNG source, channel, sinks 的别名
agent.sources = r1
agent.channels = c1
agent.sinks = k1
(2)FlumeNG source配置,这里配置为spooldir模式,可以监控指定文件夹(agent.sources.r1.spoolDir)中的新文件变化,如果目录中有文件产生,就会立刻读取其内容
agent.sources.r1.type = spooldir
agent.sources.r1.spoolDir = /opt/flume/flumeSpool
agent.sources.r1.fileHeader = false
agent.sources.r1.channels = c1
(3)FlumeNG channel配置,channel 是一个存储地,接收 source 的输出,直到有 sink 消费掉 channel 中的数据。新版本的FlumeNG自带了KafkaChannel。实际上KafkaChannel包含producer和consumer,producer接受source发送过来的数据放到broker中,consumer从broker中pull数据给sink,目前一个channel只允许有一个topic。
agent.channels.c1.type = org.apache.flume.channel.kafka.KafkaChannel
agent.channels.c1.capacity = 10000
agent.channels.c1.transactionCapacity = 1000
agent.channels.c1.brokerList =