1、flume安裝目錄下新建文件夾 example
2、在example下新建文件
log-hdfs.conf
內容如下:
- # Name the components on this agent
- a1.sources = r1
- a1.sinks = k1
- a1.channels = c1
- #exec 指的是命令
- # Describe/configure the source
- a1.sources.r1.type = exec
- #F根據文件名追中, f根據文件的nodeid追中
- a1.sources.r1.command = tail -F /home/hadoop/testdata/testflume.log
- a1.sources.r1.channels = c1
- # Describe the sink
- #下沉目標
- a1.sinks.k1.type = hdfs
- a1.sinks.k1.channel = c1
- #指定目錄, flum幫做目的替換
- a1.sinks.k1.hdfs.path = /flume/events/%y-%m-%d/%H%M/
- #文件的命名, 前綴
- a1.sinks.k1.hdfs.filePrefix = events-
- #10 分鐘就改目錄(創建目錄), (這些參數影響/flume/events/%y-%m-%d/%H%M/)
- a1.sinks.k1.hdfs.round = true
- a1.sinks.k1.hdfs.roundValue = 10
- a1.sinks.k1.hdfs.roundUnit = minute
- #目錄裏面有文件
- #------start----兩個條件,只要符合其中一個就滿足---
- #文件滾動之前的等待時間(秒)
- a1.sinks.k1.hdfs.rollInterval = 3
- #文件滾動的大小限制(bytes)
- a1.sinks.k1.hdfs.rollSize = 500
- #寫入多少個event數據後滾動文件(事件個數)
- a1.sinks.k1.hdfs.rollCount = 20
- #-------end-----
- #5個事件就往裏面寫入
- a1.sinks.k1.hdfs.batchSize = 5
- #用本地時間格式化目錄
- a1.sinks.k1.hdfs.useLocalTimeStamp = true
- #下沉後, 生成的文件類型,默認是Sequencefile,可用DataStream,則爲普通文本
- a1.sinks.k1.hdfs.fileType = DataStream
- # Use a channel which buffers events in memory
- a1.channels.c1.type = memory
- a1.channels.c1.capacity = 1000
- a1.channels.c1.transactionCapacity = 100
- # Bind the source and sink to the channel
- a1.sources.r1.channels = c1
- a1.sinks.k1.channel = c1
3、shell命令不斷寫數據到文件
[hadoop@nbdo3 testdata]$ tail -f testflume.log
hello ningbo do
hello ningbo do
hello ningbo do
hello ningbo do
hello ningbo do
hello ningbo do
hello ningbo do
hello ningbo do
hello ningbo do
hello ningbo do
5、啓動hadoop
6、啓動flume
flume-ng agent -c ../conf -flog-hdfs.conf -n a1 -Dflume.root.logger=INFO,console
7、瀏覽器進入hadoop管理界面。