Flume學習應用:Java寫日誌資料到MongoDB,flumemongodb
概述
Windows平台:Java寫日誌到Flume,Flume最終把日誌寫到MongoDB。系統內容
- 作業系統:win7 64
- JDK:1.6.0_43
資源下載
- Maven:3.3.3
下載、安裝、入門參考:1. Maven - 開始和2. 建立一個簡單的Maven項目
- Flume:1.6.0
下載apache-flume-1.6.0-bin.tar.gz,並解壓到合適的目錄(e.g. F:\temp\apache-flume-1.6.0-bin)
- MongoDB:3.2.3
下載mongodb-win32-x86_64-3.2.3-signed.msi,並安裝到合適的目錄(e.g. D:\develop\MongoDB)
輔助資源下載
- MongoDB Java Driver:2.13.0
:mongo-java-driver-2.13.0.jar
下載之後放入Flume安裝目錄的lib下。
- flume-ng-mongodb-sink
Flume需要這個,才能把資料寫到MongoDB中
:flume-ng-mongodb-sink
這是一個基於Maven的原始碼,package之後,將jar包放到Flume安裝目錄的lib下。
初始化資料初始化為MongoDB指定dbpath。配置Flume實現Flume到MongoDB在Flume安裝目錄的conf下,添加mongo-agent.properties:
agent.sources = so1agent.channels = c1agent.sinks = s1agent.sources.so1.type = avroagent.sources.so1.bind = 0.0.0.0agent.sources.so1.port = 44444agent.sources.so1.channels = c1agent.channels.c1.type = memoryagent.channels.c1.capacity = 1000agent.channels.c1.transactionCapacity = 100agent.sinks.s1.type = org.riderzen.flume.sink.MongoSinkagent.sinks.s1.host = localhostagent.sinks.s1.port = 27017agent.sinks.s1.model = singleagent.sinks.s1.db = testagent.sinks.s1.collection = logagent.sinks.s1.batch = 100agent.sinks.s1.channel = c1
簡單說明:
Java到Flume這是一個基於Maven的一個simple project,你可以從flume-ng-java2mongodb拿到原始碼。檔案結構
src/main/java |---- cn.sinobest.flume.client.demo |---- LogDemo.javasrc/main/resources |---- log4j.propertiespom.xml
檔案內容測試附錄參考資料