使用SparkStreaming+Kafka+Flume的一个简单的小项目
整体架构用Flume采集数据源下沉到Kafak中,再用SparkStreamming对数据做一个简单的WordCount;
下面是具体代码:
1.Flume的conf的配置
#为我们的source channel sink起名
a1.sources=r1
a1.channels=c1
a1.sinks=k1
#指定我们的source收集到数据发送到哪个管道
a1.sources.r1.channels=c1
#指定source的收集策略#exec表示可以执行linux的command命令
a1.sources.r1.type=exec
a1.sources.r1.command=tail -F /root/flume/logs
a1.sources.r1.inputCharset=utf-8
#指定下沉地kafak
a1.sinks.k1.channel = c1
a1.sinks.k1.type = org.apache.flume.sink.kafka.KafkaSink
#指定topic的
a1.sinks.k1.kafka.topic = wordcount
#指定kafak的集群
a1.sinks.k1.kafka.bootstrap.servers = node-01:9092,node-02:9092,node-03:9092
#指定一批中要处理的数据大小
a1.sinks.k1.kafka.flumeBatchSize = 20
#开启ack机制
a1.sinks.k1.kafka.producer.acks = 1
#指定管道是memory
a1.channels.c1.type=memory
2启动命令:bin/flume-ng agent -c conf -f conf/tailfile_kafak.conf