目錄標題
- **flume的簡單介紹**
- ?flume的**核心組件**
- ?**核心特點**
- **安裝部署**
- 1)**解壓安裝包**
- 2)**修改名字** **(配置文件時,更方便)**
- **3)??配置文件**
- 4)**兼容Hadoop**
- 5)**配置環境變量**
- 6)**測試flume**
- **?啟動flume**
- 1)在`flume`中創建空目錄`jobs`
- 2)在`jobs`內添加文件
- **最終啟動**
flume的簡單介紹
Flume 是一個開源的 分布式日志收集系統,由 Apache 開發,主要用于高效地 采集、聚合和傳輸海量日志數據 (比如網站點擊日志、服務器監控日志等),并將這些數據可靠地傳遞到 目標存儲 (如 HDFS、HBase、Kafka 等)
?flume的核心組件
1.source(數據接收源頭)
- 負責接數據
例,監聽日志文件的新增內容
2.channel(通道)
-
負責臨時存儲數據,確保數據不會丟失,相當于“緩沖區”
-
存在原因
數據的 “輸入”與“輸出” 速度有時不同,為了避免數據丟失
3.sink(數據的輸出)
- 負責“送數據”,比如將數據寫入
HDFS 或 kafka
?核心特點
- 可靠性
- 數據在傳輸過程中會持久化緩存(Channel),即使系統故障,數據也不會丟失
- 擴展性
- 可橫向擴展多個 Agent(Flume 節點)處理更大數據量
- 靈活性
-
支持多種數據源(HTTP、日志文件、Kafka 等)和目的地(HDFS、HBase、ES 等)
-
可自定義數據過濾、格式轉換等邏輯
安裝部署
1)解壓安裝包
tar -zxvf 文件名 - C 位置
及
tar -zxvf apache-flume-1.9.0-bin.tar.gz -C /opt/module/
2)修改名字 (配置文件時,更方便)
先進入到 flume
解壓后所在的位置,然后修改
mv 原名 更改后的名字
及
mv apache-flume-1.9.0 flume
3)??配置文件
所配置的在flume
的conf
里面
(zookeeper也是)
先切到conf
中
再配置
flume-env.sh.template
與
log4j.properties
- ①
flume-env.sh.template
文件
保留原本的 內容 防止后續使用
可以 將此文件復制一份 更名為flume-env.sh
cp flume-env.sh.template flume-env.sh
內容均配置到flume-env.sh
內
?添加jdk的路徑
export JAVA_HOME=/opt/module/jdk
- ②
log4j.properties
文件
添加:
flume.log.dir=/opt/module/flume/logs
4)兼容Hadoop
將 flume
中 lib
下的
guava-11.0.2.jar
改名,以兼容hadoop-3.1.3
[root@hadoop102 lib] mv guava-11.0.2.jar guava-11.0.2.jar.bak
文件后 加 .bak
可以 架空 此文件,以便兼容 hadoop-3.1.3
5)配置環境變量
vi /etc/profile添加 flume
的 export
export FLUME_HOME=/opt/module/flume
export PATH=$PATH:$FLUME_HOME/bin
生效環境變量文件
source /etc/profile
6)測試flume
flume-ng version檢查版本
?啟動flume
啟動時,需要進一步配置
1)在flume
中創建空目錄jobs
mkdir jobs
2)在jobs
內添加文件
文件名為flume-netcat-logger.conf
vi flume-netcat-logger.conf
里面的內容是 flume
的啟動內容
- ① 將組件命名
- ②描述組件/配置源
source
- ③將一個事件緩沖到
channel
- ④描述組件
sink
- ⑤將輸入源
source
和 輸出sink
與管道channel
聯系起來
如圖
最終啟動
bin/flume-ng agent -n a1 -c conf/ -f jobs/flume-netcat-logger.conf -Dflume.root.logger=INFO,console
nc hadoop01 10050