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 = so1
agent.channels = c1
agent.sinks = s1
agent.sources.so1.type = avro
agent.sources.so1.bind = 0.0.0.0
agent.sources.so1.port = 44444
agent.sources.so1.channels = c1
agent.channels.c1.type = memory
agent.channels.c1.capacity = 1000
agent.channels.c1.transactionCapacity = 100
agent.sinks.s1.type = org.riderzen.flume.sink.MongoSink
agent.sinks.s1.host = localhost
agent.sinks.s1.port = 27017
agent.sinks.s1.model = single
agent.sinks.s1.db = test
agent.sinks.s1.collection = log
agent.sinks.s1.batch = 100
agent.sinks.s1.channel = c1
簡單說明:
Java到Flume
這是一個基於Maven的一個simple project,你可以從flume-ng-java2mongodb拿到源代碼。
文件結構
src/main/java
|---- cn.sinobest.flume.client.demo
|---- LogDemo.java
src/main/resources
|---- log4j.properties
pom.xml
文件內容
測試
附錄
參考資料