hive完事了 今天輔助系統 三個組件 數據採集flume 任務調度 oozie 數據導出 sqoop
除了hdfs+mapreduce+hive組成分析系統的核心之外,還需要數據採集、結果數據導出、任務調度等不可或缺的輔助系統,
任務調度 oozie Azkaban 工具對比
最終拿到數據展現出來
一.flume (數據採集)
分佈式 集羣形式
Flume是一個分佈式、可靠、和高可用的海量日誌採集、聚合和傳輸的系統。
1.運行機制
核心組件:agent (系統由agent連接組成)(數據傳遞員,內部有三個組件)
①Source:採集源,用於跟數據源對接,以獲取數據
②Sink:下沉地,採集數據的傳送目的,用於往下一級agent傳遞數據或者往最終存儲系統傳遞數據
③Channel:angent內部的數據傳輸通道,用於從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.測試環境是否正常
①先在flume的conf目錄下新建一個文件 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上也能看到