Flume+Kafka+Sparkstreaming日誌分析
最近要做一個日誌實時分析的應用,採用了flume+kafka+sparkstreaming框架,先搞了一個測試Demo,本文沒有分析其架構原理。
簡介:flume是一個分散式,高可靠,可用的海量日誌聚合系統,kafka是一高吞吐量的分散式釋出訂閱系統,sparkstreaming是建立在spark上的實時計算框架,這這個Demo中,以上內容均為單機版偽分佈,flume的source為exec,agent的名稱為producer,sink為kafka。
執行所需要的環境直接到官網上下載即可:
我的環境是:flume1.6+kafka_2.10+spark1.2.0
flume的配置:
在conf下編輯配置檔案roomy.conf如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
#agent
section
producer.sources
= s
producer.channels
= c
producer.sinks
= r
#source
section
producer.sources.s. type = exec
producer.sources.s. command = tail -F
-n+1 /Users/roomy/Desktop/Coding/scala/real_time_project/debug .log #監聽日誌所在
producer.sources.s.channels
= c
#
Each sink's type must be defined
producer.sinks.r. type =
org.apache.flume.plugins.KafkaSink
producer.sinks.r.metadata.broker.list=192.168.1.102:9092 #這裡換成自己Kafka的地址
producer.sinks.r.partition.key=0
producer.sinks.r.partitioner.class=org.apache.flume.plugins.SinglePartition
producer.sinks.r.serializer.class=kafka.serializer.StringEncoder
producer.sinks.r.request.required.acks=0
producer.sinks.r.max.message.size=1000000
producer.sinks.r.producer. type = sync
producer.sinks.r.custom.encoding=UTF-8
|
在flume資料夾下執行
1 |
bin /flume-ng agent
--conf conf --conf- file conf /roomy .conf
--name producer -Dflume.root.logger=INFO,console
|
flume的部分完成。
在kafka目錄下執行:
1 |
bin /zookeeper-server-start .sh
config /zookeeper .properties
|
啟動zookeeper
執行: