flume 簡單學習

hive完事了   今天輔助系統  三個組件  數據採集flume    任務調度    oozie      數據導出   sqoop

除了hdfs+mapreduce+hive組成分析系統的核心之外,還需要數據採集、結果數據導出、任務調度等不可或缺的輔助系統,

 

 

任務調度  oozie  Azkaban    工具對比    

最終拿到數據展現出來

 

 

一.flume  (數據採集)

分佈式   集羣形式

 

Flume是一個分佈式、可靠、和高可用的海量日誌採集、聚合和傳輸的系統。

 

 

1.運行機制

核心組件:agent  (系統由agent連接組成)數據傳遞員,內部有三個組件)

Source:採集源,用於跟數據源對接,以獲取數據

 

Sink:下沉地,採集數據的傳送目的,用於往下一級agent傳遞數據或者往最終存儲系統傳遞數據

 

Channelangent內部的數據傳輸通道,用於從source將數據傳遞到sink

 

 

 

 系統結構圖(多個)

 

 

 2.Flume安裝部署(已有Hadoop,因爲採集的數據要存在hdfs中)(執行時用戶名需與Hadoop用戶名相同)

 

 

 3.解壓出來   輸入:tar -zxvf apache-flume-1.6.0-bin.tar.gz -C /export/servers/(解壓完後先去下面安裝uginx因爲我們需要uginx的環境)

4修改環境變量(根據自己的環境變量就行)

 

 5.測試環境是否正常

先在flumeconf目錄下新建一個文件   vi   netcat-logger.conf

# 從網絡端口接收數據,下沉到logger
# 採集配置文件,netcat-logger.conf
#其中該agent名爲a1,sources名爲r1,sinks名爲k1,channels名爲c1
# example.conf: A single-node Flume configuration
# Name the components on this agent
a1.sources = r1
a1.sinks = k1
a1.channels = c1

# Describe/configure the source
a1.sources.r1.type = netcat
a1.sources.r1.bind = localhost
a1.sources.r1.port = 44444

# Describe the sink
a1.sinks.k1.type = logger

# 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


②啓動agent採集數據(去這個路徑下,/export/servers/apache-flume-1.6.0-bin/bin/,這個路徑下才有flume-ng這個文件)

bin/flume-ng agent --conf conf/ --conf-file conf/netcat-logger.conf --name a1 -Dflume.root.logger=INFO,console

 

有這個進程

 

③輸入telnet進行連接(什麼!?你說你的電腦顯示不是內部和外部命令,這麼做:控制面板-------->程序和功能--------------->點擊左上角打開 turn windows feaures on or off選項,在新窗口中勾選telnet Client即可)

(linux下沒有的話就去找教程吧。。。或者留言問我要三個rpm包解出來也行)

 

 

④配置一下flume的home  etc/profile   之後記得source一下這個文件夾

 

 輸入命令!開始監聽!  還是那個監聽命令:flume-ng agent -c conf -f netcat-logger.conf -n a1 -Dflum,console

 

 看效果

 

 

 

 

 二.Nginx(負載均衡,反向代理)(用flume採集nginx日誌)

反向代理:網上發請求給代理服務器,代理服務器接到請求,轉發給內部指定服務器,同時將結果返回網上,此時代理服務器對外表現爲一臺服務器。

 

 

 負載均衡:大傢伙一起幹活,減輕每臺服務器的任務

 

 1.安裝nginx

 

 輸入:tar -zxvf nginx-1.8.1.tar.gz -C /export/servers

 

 2.檢查安裝環境   輸入:./configure --prefix=/export/servers/nginx  (我的虛擬機連不上外網,下載不了包,所以沒辦法演示了)

 

(如果出現缺包報錯 ./configure: error: C compiler cc is not found      下載對應的包就行了yum -y install gcc pcre-devel openssl openssl-devel

可以查看一下進程情況 

 nginx安裝不成功?上網去查,從yum上搬東西就行。yum配置不好?找不到解決方案?       直接用這個吧,別的大佬配置好的,把/etc/yum.repos.d/的文件備份刪除,換成這些   配置文件   password:0muz

 

 

 

 

 

 

小案例

案例一:監控文件夾

首先你要有/home/hadoop/flumeSpool/這個文件夾,因爲哦我們監控的就是它

輸入:flume-ng agent -c ./conf -f ./conf/spool-logger.conf -n a1 -Dflume.root.logger=info,console

 

 

 接下來往那個文件夾下放文件  隨便拷貝一個文件過去    發現被監控到了

 

 

 

 案例二採集目錄到HDFS

 

 現在Hadoop下建立一個文件夾  /home/hadoop/logs 目的是把

 

 

 

 再建立一個配置文件

 

開始監控

 

 

 我們接下來往那個文件夾裏放文件

 

 發現監聽到了(注意這裏只能監聽到文件的變化,如果放入文件夾,不會監聽到)

 

 在hadoop上也能看到

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章