大資料(hadoop-flume案例講解)
阿新 • • 發佈:2019-06-14
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