標籤:日誌 dfs channel java flume-ng shell web 架構 操作
企業架構
資料來源 webserver RDBMS資料的採集 shell、flume、sqoop job監控和調度 hue、oozie資料清洗及分析 mapreduce、hive資料儲存 sqoop
概念: 三大功能 collecting(收集),aggregating(彙總),moving(傳輸)
Flume是一個分布式的,可靠的,可用的,健壯且高容錯性的架構,非常有效率的對大資料量的日誌資料進行收集,聚集,傳輸資訊的服務,但老版本僅僅運行在Linux環境中
特點: on streaming data flows(基於流式的資料)
資料流: job 不斷擷取資料任務流:job1 --> job2 --> job3&job4 --> job5
線上即時收集應用分析,簡單表現為:寫個source、channel、sink,之後一條命令
就能操作成功了,實際情況下flume、kafka即時進行資料收集
spark、storm即時去處理,impala即時去查詢
Flume-ng只有一個角色節點: agent的角色,agent有source、channel、sink組成
其中 source 用於採集資料,source是產生資料流的地方,同時Source會將產生的資料流傳輸到channel channel 串連source和sink,有點像隊列 sink 用於從channel收集資料,將資料寫到目標源,可以是下一個source也可以是HDFS或是HBASE Events(封裝資料) Event是Flume資料轉送的基本單元 Flume以事件的形式將資料從源頭傳送到最終的目的地 Event由可選的header和body構成(類似http協議) 載有的資料對flume是不透明的 Header是容納了key-value字串對的無序組合,key在集合內是唯一的 Header可以在上下文路由中使用擴充
Flume安裝部署
下載對應的cdh版本解壓後進行設定檔 -> env:修改java_home -> 串連Hadoop --> 啟動flume時會先載入全域HADOOP_HOME變數,再去讀取core/hdfs-site.xml --> 將hdfs的設定檔放到conf目錄 --> 在agent設定檔中寫明hdfs的絕對路徑 --> 既然在HDFS上讀寫資料,需要hdfs的API,即需要匯入Hadoop對應部分jar包 commons-configuration-1.6.jar hadoop-auth-2.5.0-cdh5.3.6.jar hadoop-common-2.5.0-cdh5.3.6.jar hadoop-hdfs-2.5.0-cdh5.3.6.jar -> 命令格式 bin/flume-ng agent -c conf/ -n agentname -f agent_file -c flume設定檔目錄 -f properties檔案目錄
企業中常用的類型
-> source --> exec --> spoolingdir --> kafaka source --> syslog source --> http source-> channel --> memory channel (不安全) --> file channel --> kafaka channel-> sink --> hdfs sink --> hbase sink --> hive sink
Flume_初識