1. 程式人生 > >大資料(hadoop-flume案例講解)

大資料(hadoop-flume案例講解)

a2.cnf

#定義agent名稱,source,channel,sink的名稱
#a1就是我們給agent起的名字,我們知道有多個agent,那麼我們就是通過這個來進行區別
#我們知道agent包含了三個重要的元件,有source,channel,sink
#那麼我們也給這個三個元件分別取名字
a1.sources = r1									
a1.channels = c1					
a1.sinks = k1						

#定義具體的source內容
#我這個source具體是什麼型別的,讀取什麼樣的資料
a1.sources.r1.type = spooldir								
a1.sources.r1.spoolDir = /home/hadoop/bigdata/logs      															
															
#定義具體的channel資訊
#我們source定義好了,就要來定義我們的channel
a1.channels.c1.type = memory								
a1.channels.c1.capacity = 10000								
a1.channels.c1.transactionCapacity = 100					

#定義具體的sink資訊
a1.sinks.k1.type = hdfs										
a1.sinks.k1.hdfs.path = hdfs://192.168.56.2:9000/flume/event	
a1.sinks.k1.hdfs.filePrefix = events-						
a1.sinks.k1.hdfs.fileType = DataStream						
															
															
															
#不按照條數生成檔案
a1.sinks.k1.hdfs.rollCount = 0								
#HDFS上的檔案達到128M生成一個檔案							
a1.sinks.k1.hdfs.rollSize = 134217728						
#HDFS上的檔案達到60秒生成一個檔案							
a1.sinks.hdfs.rollInterval = 60								

#定義攔截器,其實可以來攔截一些沒用的資料,這裡是為了讓訊息新增時間戳,這樣我就知道這個資料是什麼時候傳送過來的
#那麼我們可以將這個資料動態的寫入到某個目錄下面,比如1月1號的資料我寫到1月1號這個目錄,2號寫入對應的2號目錄
#這樣更方便查詢和檢視
a1.sources.r1.interceptors = 

#最後來組裝我們之前定義的channel和sink
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1 

a3.conf

#定義agent名稱,source,channel,sink的名稱
#a1就是我們給agent起的名字,我們知道有多個agent,那麼我們就是通過這個來進行區別
#我們知道agent包含了三個重要的元件,有source,channel,sink
#那麼我們也給這個三個元件分別取名字
a2.sources = r1									
a2.channels = c1					
a2.sinks = k1						

#定義具體的source內容
#這裡是執行命令以及下面對應的具體命令
#這個命令執行後的資料返回給這個source
a2.sources.r1.type = exec								
a2.sources.r1.command = tail -F /home/hadoop/bigdata/logs/log      															
															
#定義具體的channel資訊
#我們source定義好了,就要來定義我們的channel
a2.channels.c1.type = memory								
a2.channels.c1.capacity = 10000								
a2.channels.c1.transactionCapacity = 100					

#定義具體的sink資訊
#這個logger sink,就是將資訊直接列印到控制檯
#就是列印日誌
a2.sinks.k1.type = logger

#最後來組裝我們之前定義的channel和sink
a2.sources.r1.channels = c1
a2.sinks.k1.channel = c1 

netcat_test.conf

#定義agent名稱,source,channel,sink的名稱
#a1就是我們給agent起的名字,我們知道有多個agent,那麼我們就是通過這個來進行區別
#我們知道agent包含了三個重要的元件,有source,channel,sink
#那麼我們也給這個三個元件分別取名字
a1.sources = r1									
a1.channels = c1					
a1.sinks = k1						

#定義具體的source內容
#我這個source具體是什麼型別的,讀取什麼樣的資料
a1.sources.r1.type = netcat								
a1.sources.r1.bind = hm02  
a1.sources.r1.port = 6666
															
#定義具體的channel資訊
#我們source定義好了,就要來定義我們的channel
#capacity:預設該通道中最大的可以儲存的event數量是10000	
#trasactionCapacity:每次最大可以從source中拿到或者送到sink中的event數量是100
a1.channels.c1.type = memory								
a1.channels.c1.capacity = 10000									
a1.channels.c1.transactionCapacity = 100					

#定義具體的sink資訊
a1.sinks.k1.type = logger																												

#最後來組裝我們之前定義的channel和sink
#source可以對應多個channel
#sink只能對應一個channel
a1.sources.r1.channels = c1			
a1.sinks.k1.channel = c1			

netcat_test2m.conf

#定義agent名稱,source,channel,sink的名稱
#a1就是我們給agent起的名字,我們知道有多個agent,那麼我們就是通過這個來進行區別
#我們知道agent包含了三個重要的元件,有source,channel,sink
#那麼我們也給這個三個元件分別取名字
a1.sources = r1									
a1.channels = c1					
a1.sinks = k1						

#定義具體的source內容
#我這個source具體是什麼型別的,讀取什麼樣的資料
a1.sources.r1.type = netcat								
a1.sources.r1.bind = hm02  
a1.sources.r1.port = 6666
															
#定義具體的channel資訊
#我們source定義好了,就要來定義我們的channel
a1.channels.c1.type = memory								
a1.channels.c1.capacity = 10000									
a1.channels.c1.transactionCapacity = 100					

#定義具體的sink資訊
#a1.sinks.k1.type = logger
a1.sinks.k1.type = avro
a1.sinks.k1.hostname = hs0201
a1.sinks.k1.port = 8888

#最後來組裝我們之前定義的channel和sink
a1.sources.r1.channels = c1			
a1.sinks.k1.channel = c1			

netcat_test2s.conf

#定義agent名稱,source,channel,sink的名稱
#a1就是我們給agent起的名字,我們知道有多個agent,那麼我們就是通過這個來進行區別
#我們知道agent包含了三個重要的元件,有source,channel,sink
#那麼我們也給這個三個元件分別取名字
a1.sources = r1									
a1.channels = c1					
a1.sinks = k1						

#定義具體的source內容
#我這個source具體是什麼型別的,讀取什麼樣的資料
a1.sources.r1.type = avro								
a1.sources.r1.bind = hs0201  
a1.sources.r1.port = 8888
															
#定義具體的channel資訊
#我們source定義好了,就要來定義我們的channel
a1.channels.c1.type = memory								
a1.channels.c1.capacity = 10000									
a1.channels.c1.transactionCapacity = 100					

#定義具體的sink資訊
a1.sinks.k1.type = logger


#最後來組裝我們之前定義的channel和sink
a1.sources.r1.channels = c1			
a1.sinks.k1.channel = c1