01.flume簡介及安裝部署
1.flume官網
1.http://flume.apache.org/
2.flume下載
1.注意下載的時候要和cdh大版本一致
2.網址http://archive.cloudera.com/cdh5/cdh/5/
3.flume功能
1.flume是一個分佈式的、可靠的、可用的,非常有效率的對大數據量的日誌數據進行收集、聚集、移動信息的服務;
2.flume用一個簡單的擴展數據模型用於在線實時應用分析,flume的簡單表現在:寫個source、channel、sink之後一條命了就能操作成功;
3.Flume、kafka實時進行數據收集,spark、storm實時處理數據,impala實時查詢。
4.flume特點
1.實時的數據流採集框架
1.數據採集
1.從哪採集:數據源
2.採集到哪去:目標
5.flume-ng中數據傳遞的過程
0.agnet
1.作用
將數據從數據源寫到目的地
2.組成
1.source
source用於採集數據,source是產生數據流的地方,同時source會將產生的數據傳輸到channel;
2.channel
連接source和sink,這個有點像一個隊列,source將數據放到channel中然後sink從source中取數據放到目的地;
3.sink
從channel收集數據,將數據寫到目標源,目標源可以是下一個source或hdfs或者hbase
6.安裝過程
0.flume沒有進程,只有agent就和java程序只要運行就有一個agent
1.下載解壓
tar -zxvf flume_path.tar.gz -C flume_path
flume的lib目錄下存有flume提供的第三方jar包
2.修改配置
修改flume-env.sh文件:
1.jdk
export JAVA_HOME=/opt/modules/jdk1.7.0_67
2.hadoop_home(如果配置了全局的hadoop_home則不需要配置)
1.先讀配置文件
2.先從全局環境變量找hadoop_home
3.找agent文件
4.額外:
1.當flume往hdfs上寫數據的時候需要調用往hdfs上寫相關的hadoopjar包(當一個框架向另一個框架寫數據時,需要調用往另一個框架上寫的客戶端,此客戶端就是我們需要調用的jar包)因此需要通過hadoop_home去找和hadoop相關的jar包,如果1,2種沒有配置hadoop_home則需要將和hadoop相關的jar包導入到flume的lib中,需要導入的jar包(這些jar包在hadoop的share目錄下)如下:
1.hadoop-common-2.6.0-cdh5.7.6.jar
2.hadoop-hdfs-2.6.0-cdh5.7.6.jar
3.hadoop-auth-2.6.0-cdh5.7.6.jar
4.commons-configuration-1.6.jar
2.如果沒有配全局環境變量,如何找到hdfs的地址
1.將hdfs-site和core-site放入flume的conf目錄(適用於hdfs做了HA,注意只要hdfs做了HA當其他框架集成hdfs時都需要將hdfs-site和core-site文件放到其他框架的配置中)
2.直接在agent中指定hdfs的地址
3.測試
flume命令格式:bin/flume-ng <command> [options]...
demo:
flume運行的命令
bin/flume-ng agent -c flume-conf-path -n agent-name -f agent-conf-path -Dflume.root.logger=INFO,console
--conf/-c:用於指定flume配置文件的目錄
--name/-n:用於指定agent的名稱
--conf-file/-f:用於指定agent文件的地址
--Dflume.root.logger=INFO,console:定flume日誌輸出級別(INFO),以及輸出地(console-控制檯)