您好,登錄后才能下訂單哦!
本篇內容主要講解“Flume應用場景及用法有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Flume應用場景及用法有哪些”吧!
Flume是一個分布式的、高可用的海量日志采集系統。它支持對日志數據的發送方、接收方進行定義,可將多種來源的日志數據寫到指定的接收方,如:文本、HDFS、Hbase等。
我認為Flume最讓我稱贊的就是,可以在不干涉已有系統運行的情況下,無侵入地對采集到該系統的日志信息。
Flume的數據流由event(事件)貫穿始終,event是Flume的基本數據單位,它攜帶日志數據(字節數組形式)和頭信息,這些event由Agent外部的Source生成。 當Source捕獲到事先設定的事件(這里的事件,是指廣義上的事件), 就會生成event并推送到單個或多個Channel中。你可以把Channel看作是一個緩沖區,它保存event直到Sink對其處理完畢。Sink負責處理event,它對日志進行持久化或把event 轉給另一個Source。
Flume以agent為最小的獨立運行單位,每臺機器運行一個agent,一個agent由Source、Sink和Channel三大組件構成,如下圖:
Client生產數據,運行在一個獨立的線程,比如我們的應用系統。
Source從Client收集數據,傳遞給Channel。
Sink從Channel收集數據,運行在一個獨立線程。
Channel連接 sources 和 sinks ,這個有點像一個隊列。
Events可以是日志記錄、 avro 對象等。
一個agent中包含多個sources和sinks:
sources.type = netcat
Flume可以監聽到某臺計算機(Client)接收到其它計算機發來的netcat、telnet消息, 然后將這些消息傳送到指定的地方,如hdfs、HBase、Kafka等。
sources.type = exec
Flume可以監聽到某臺計算機(Client)某個指令的執行,然后把指令執行產生的輸出信息發送到指定的地方,如hdfs、HBase、Kafka。如設定:
sources.command = tail -F /app/xxx.log
那么每當有10條新的日志產生后,Flume就把這10條新日志傳送到指定的地方,如hdfs、HBase、Kafka等。
sources.type = spooldir
Flume可以監聽到某臺計算機(Client)上某個目錄文件的變化,當有新的日志文件產生時,Flume就把這個日志文件的內容傳送到指定的地方,如hdfs、HBase、Kafka等。
sources.type = http
sources.type = syslogtcp
Flume可以監聽到某臺計算機(Client)TCP的端口,把從端口接收到的消息傳送到指定的地方,如hdfs、HBase、Kafka等。
到此,相信大家對“Flume應用場景及用法有哪些”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。