Flume基礎概述

2021-08-11 10:53:37 字數 1212 閱讀 9635

flume的核心就是乙個agent,這個agent對外有兩個進行互動的地方,乙個是接受資料的輸入——source,乙個是資料的輸出sink,sink負責將資料傳送到外部指定的目的地。source接收到資料之後,將資料傳送給channel,chanel作為乙個資料緩衝區會臨時存放這些資料,隨後sink會將channel中的資料傳送到指定的地方—-例如hdfs等,注意:只有在sink將channel中的資料成功傳送出去之後,channel才會將臨時資料進行刪除,這種機制保證了資料傳輸的可靠性與安全性。

在這裡有必要先介紹一下flume中event的相關概念:flume的核心是把資料從資料來源(source)收集過來,在將收集到的資料送到指定的目的地(sink)。為了保證輸送的過程一定成功,在送到目的地(sink)之前,會先快取資料(channel),待資料真正到達目的地(sink)後,flume在刪除自己快取的資料

在整個資料的傳輸的過程中,流動的是event,即事務保證是在event級別進行的。那麼什麼是event呢?—–event將傳輸的資料進行封裝,是flume傳輸資料的基本單位,如果是文字檔案,通常是一行記錄,event也是事務的基本單位。event從source,流向channel,再到sink,本身為乙個位元組陣列,並可攜帶headers(頭資訊)資訊。event代表著乙個資料的最小完整單元,從外部資料來源來,向外部的目的地去。

source 可以接收外部源傳送過來的資料。不同的 source,可以接受不同的資料格式。比如有目錄池(spooling directory)資料來源,可以監控指定資料夾中的新檔案變化,如果目錄中有檔案產生,就會立刻讀取其內容。

channel 是乙個儲存地,接收 source 的輸出,直到有 sink 消費掉 channel 中的資料。channel 中的資料直到進入到下乙個channel中或者進入終端才會被刪除。當 sink 寫入失敗後,可以自動重啟,不會造成資料丟失,因此很可靠。

sink 會消費 channel 中的資料,然後送給外部源或者其他 source。如資料可以寫入到 hdfs 或者 hbase 中。

多級flume

flume的基本概述

kafka處理千萬級的資料,產生的初衷為了資料的收集及合理的消費,實際資料怎樣獲取 幾乎所有的專案都會使用log4j元件,為log4j元件設計乙個通道,讓他採集到的資料直接傳送給訊息系統,再有訊息系統傳送給其他的分析程式,這樣就不需要大面積的修改已有的程式 了 flume可以理解為日誌系統和訊息元件...

SQL基礎概述

1.基礎介紹 1.1sqlplus 1.1.1 sqlplus常用命令 1.1.2 格式化 1.2聯機文件查資訊 1.3看語法圖 1.4檢視執行計畫的方法 2.資料型別及操作符 2.1資料型別 2.1.1 字元型別 2.1.2 字符集,亂碼 2.1.3 數值型別 2.2rowid 2.3rownum...

Shell基礎概述

shell把命令轉化為計算機可識別的二進位製碼,讓計算機執行命令,同時把返回結果由二進位制翻譯成可識別的輸出結果。號在shell指令碼中有特殊作用,用雙引號不能輸出 在輸出字串的時候,中間有空格,應該加雙引號,沒有空格,可以不加雙引號 加上 e引數可以輸出複雜的字串 1 輸出 本身 2 a 輸出警告...