Flume协作框架
Flume協作框架
1.概述
-》flume的三大功能
collecting, aggregating, and moving?
收集 聚合 移動
?
2.框圖
3.架構特點
-》on streaming data flows
基于流式的數據
數據流:job-》不斷獲取數據
任務流:job1->job2->job3&job4
-》for online analytic application.
-》Flume僅僅運行在linux環境下
如果我的日志服務器是Windows?
-》非常簡單
寫一個配置文件,運行這個配置文件?
source、channel、sink
-》實時架構
flume+kafka spark/storm impala
-》agent三大部分
-》source:采集數據,并發送給channel
-》channel:管道,用于連接source和sink的
-》sink:發送數據,用于采集channel中的數據
?
4.Event
?
5.Source/Channel/Sink
二:配置
1.下載解壓
下載的是Flume版本1.5.0
?
2.啟用flume-env.sh
?
3.修改flume-env.sh
?
4.增加HADOOP_HOME
因為在env.sh中沒有配置,選擇的方式是將hdfs的配置放到conf目錄下。
?
5.放入jar包
?
6.驗證
?
7.用法
?
三:Flume的使用
?
1.案例1
source:hive.log ? channel:mem sink:logger
?
2.配置
cp flume-conf.properties.template hive-mem-log.properties
?
3.配置hive-mem-log.properties
?
?4.運行
那邊是日志級別
?
5.注意點
這邊的屬于實時采集,所以在控制臺上的信息隨著hive.log的變化在變化
?
?6.案例二
source:hive.log ? channel:file sink:logger
?
7.配置
cp hive-mem-log.properties hive-file-log.properties
?
8.配置hive-file-log.properties
新建file的目錄
配置
?
?9.運行
10.結果
11.案例三
source:hive.log ? channel:mem sink:hdfs
?
12.配置
cp hive-mem-log.properties hive-mem-hdfs.properties
?
13.配置hive-mem-hdfs.properties
?
?14.運行
? 驗證了,在配置文件中不需要有這個目錄,會自動產生。
?
?
四:企業思考一
15.案例四
因為在hdfs上會生成許多小文件,文件的大小的設置。
?
16.配置
?cp hive-mem-hdfs.properties hive-mem-size.properties
?
17.配置hive-mem-size.properties
?
18.運行
19.結果
?
20.案例五
? 按時間進行分區
21.配置
cp hive-mem-hdfs.properties hive-mem-part.properties
?
22.配置hive-mem-part.properties
?
23.運行
bin/flume-ng agent -c conf/ -n a1 -f conf/hive-mem-part.properties -Dflume.root.logger=INFO,console
?
24.運行結果
25.案例六
自定義文件開頭
?
26.配置hive-mem-part.properties
?
27.運行效果
?
?
五:企業思考二
1.案例七
source:用來監控文件夾
? 文件中先存在.tmp
到第二日出現新的.tmp文件。前一天的.tmp馬上變成log結尾,這時監控文件夾時,馬上發現出現一個新的文件,就被上傳進HDFS
?
2.配置
cp hive-mem-hdfs.properties dir-mem-hdfs.properties
?
3.正則表達式忽略上傳的.tmp文件
?
3.配置dir-mem-hdfs.properties
新建文件夾
配置
?
4.觀察結果
?
5.案例二
source:監控文件夾下文件的不斷動態追加
但是現在不是監控新出現的文件下,
這個配置將在下面講解
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
?
六:企業實際架構
1.flume多sink
同一份數據采集到不同的框架
采集source:一份數據
管道channel:案例中使用兩個管道
目標sink:多個針對于多個channel
?
?2.案例
source:hive.log? channel:file sink:hdfs
?
3.配置
cp hive-mem-hdfs.properties sinks.properties
?
4.配置sink.properties
新建存儲的文件
配置
?
5.效果
?
6.flume的collect
?
7.案例
啟動三臺機器,其中兩臺為agent,一臺collect。
192.168.134.241:collect
192.168.134.242:agent
192.168.134.243:agent
8.情況
因為沒有搭建cdh集群,暫時不粘貼
?
9.運行
運行:collect
bin/flume-ng agent -c conf/ -n a1 -f conf/avro-collect.properties -Dflume.root.logger=INFO,console?
運行:agent
bin/flume-ng agent -c conf/ -n a1 -f conf/avro-agent.properties -Dflume.root.logger=INFO,console
七:關于文件夾中文件處于追加的監控
1.安裝git
2.新建一個文件下
3.在git bash 中進入目錄
4.在此目錄下下載源碼
5.進入flume目錄
6.查看源碼有哪些分支
7.切換分支
8.復制出flume-taildir-source
?
九。編譯
1.pom文件
?
2.在1.5.0中添加一個1.7.0中的類
PollableSourceConstants
?
3.刪除override
4.編譯?
run as -> maven build
goals -> skip testf
?
5.將jar包放在lib目錄下
?
6.使用
因為這是1.7.0的源碼,所以在1.5的文檔中沒有。
所以:可以看源碼
或者看1.7.0的參考文檔關于Tail的介紹案例
\flume\flume-ng-doc\sphinx\FlumeUserGuide
?
7.配置
轉載于:https://www.cnblogs.com/RHadoop-Hive/p/7414013.html
總結
- 上一篇: 5、Flutter 实现 ViewPag
- 下一篇: 电磁场仿真——绘制电场线和等势线