Flume個人心得筆記之Sink安裝
目錄
4.編輯文件 如果誤操作,可以按照Ctrl +Backspace 回退
1.報錯是因爲flume缺少相關hadoop的依賴jar包,
2.但是一個一個找特別麻煩,所以解決辦法是將hadoop的jar包都拷貝到flume的lib目錄下:
一.Logger Sink
一、概述
- 記錄指定級別(比如INFO,DEBUG,ERROR等)的日誌,通常用於調試
- 要求,在 --conf(-c )參數指定的目錄下有log4j的配置文件
- 根據設計,logger sink將body內容限制爲16字節,從而避免屏幕充斥着過多的內容。如果想要查看調試的完整內容,那麼你應該使用其他的sink,也許可以使用file_roll sink,它會將日誌寫到本地文件系統中
二、可配置項說明
配置項 |
說明 |
channel |
綁定通道 |
type |
logger |
三、示例
默認配置,就不演示了
https://blog.csdn.net/LiuY521/article/details/94721238
二.File_roll Sink
一、概述
- 在本地系統中存儲事件
- 每隔指定時長生成文件保存這段時間內收集到的日誌信息
二、可配置選項說明
配置項 |
說明 |
channel |
綁定通道 |
type |
file_roll |
sink.directory |
文件被存儲的目錄 |
sink.rollInterval |
30 記錄日誌到文件裏,每隔30秒生成一個新日誌文件。如果設置爲0,則禁止滾動,從而導致所有數據被寫入到一個文件中。 |
三、示例
1.複製文本
mv basic2.conf filerollsink.txt
2.編輯配置
3.啓動指令 啓動不了,殺死對應進程重新啓動
4.編輯文件 如果誤操作,可以按照Ctrl +Backspace 回退
5.查詢數據
三.HDFS Sink
一、概述
- 此Sink將事件寫入到Hadoop分佈式文件系統HDFS中
- 目前它支持創建文本文件和序列化文件,並且對這兩種格式都支持壓縮
- 這些文件可以分卷,按照指定的時間或數據量或事件的數量爲基礎
- 它還通過類似時間戳或機器屬性對數據進行 buckets/partitions 操作
- HDFS的目錄路徑可以包含將要由HDFS替換格式的轉移序列用以生成存儲事件的目錄/文件名
- 使用這個Sink要求haddop必須已經安裝好,以便Flume可以通過hadoop提供的jar包與HDFS進行通信
二、可配置選項說明
配置項 |
說明 |
channel |
綁定的通道 |
type |
hdfs |
hdfs.path |
HDFS 目錄路徑 (hdfs://namenode/flume/webdata/) |
hdfs.inUseSuffix |
.tmp Flume正在處理的文件所加的後綴 |
hdfs.rollInterval |
文件生成的間隔事件,默認是30,單位是秒 |
hdfs.rollSize |
生成的文件大小,默認是1024個字節 ,0表示不開啓此項 |
hdfs.rollCount |
每寫幾條數據就生成一個新文件,默認數量爲10 每寫幾條數據就生成一個新文件, |
hdfs.fileType |
SequenceFile/DataStream/CompressedStream |
hdfs.retryInterval |
80 Time in seconds between consecutive attempts to close a file. Each close call costs multiple RPC round-trips to the Namenode, so setting this too low can cause a lot of load on the name node. If set to 0 or less, the sink will not attempt to close the file if the first attempt fails, and may leave the file open or with a ”.tmp” extension. |
三、示例
1.備份一份文件
vim HDFS.conf
2.編輯配置
3.啓動
4.確保HDFS啓動
5.傳輸數據
報錯 格式不支持
配置寫錯了
6.查詢
四、存在問題
1.報錯是因爲flume缺少相關hadoop的依賴jar包,
找到以下的jar包,放到flume的lib目錄下即可。
- commons-configuration-1.6.jar
- hadoop-auth-2.5.2.jar
- hadoop-common-2.5.2.jar
- hadoop-hdfs-2.5.2.jar
- hadoop-mapreduce-client-core-2.5.2.jar
2.但是一個一個找特別麻煩,所以解決辦法是將hadoop的jar包都拷貝到flume的lib目錄下:
- 執行:
- scp common/*
- common/lib/*
- hdfs/*
- hdfs/lib/*
- mapreduce/*
- mapreduce/lib/*
- tools/lib/*
- 10.42.60.249:/home/software/flume/lib/
四.Avro Sink
一、概述
- 將源數據進行利用avro進行序列化之後寫到指定的節點上
- 是實現多級流動、扇出流(1到多) 扇入流(多到1) 的基礎
二、可配置選項說明
配置項 |
說明 |
channel |
綁定的通道 |
type |
avro |
hostname |
要發送的主機 |
port |
要發往的端口號 |
三、多級流動
1.概述
- 讓01機的flume通過netcat source源接收數據,然後通過avro sink 發給02機
- 02機的flume利用avro source源收數據,然後通過avro sink 傳給03機
- 03機通過avro source源收數據,通過logger sink 輸出到控制檯上
2.實現步驟
- 準備三個節點,並安裝好flume(關閉每臺機器的防火牆)
- 配置每臺flume的配置文件
3.第一個雲主機配置
4.第二個雲主機配置
5.第三個雲主機配置
6.啓動第三個節點 往後向前啓動
7.輸入數據
8.接收數據
四、扇出流
1.編輯文件
vim shanru.conf
2.第一個和第二個配置相同
3.第三個節點
4.啓動 從最後一個啓動
../bin/flume-ng agent -n a1 -c ../conf -f 要啓動的文件 -Dflume.root.logger=INFO,console