亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Flume是什么

發布時間:2021-12-09 09:16:00 來源:億速云 閱讀:228 作者:小新 欄目:云計算

這篇文章主要介紹了Flume是什么,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

  Flume是Cloudera提供的一個高可用的、高可靠的開源分布式海量日志收集系統,日志數據可以經過Flume流向需要存儲終端目的地。這里的日志是一個統稱,泛指文件、操作記錄等許多數據。

一、Flume基礎知識

1、數據流模型

   Flume的核心是把數據從數據源收集過來,再送到目的地。為了保證輸送一定成功,在送到目的地之前,會先緩存數據,待數據真正到達目的地后,刪除自己緩存的數據。

   Flume傳輸的數據的基本單位是Event,如果是文本文件,通常是一行記錄,這也是事務的基本單位。Event從Source,流向Channel,再到Sink,本身為一個byte數組,并可攜帶headers信息。Event代表著一個數據流的最小完整單元,從外部數據源來,向外部的目的地去。

2、核心組件

   Flume運行的核心是Agent。它是一個完整的數據收集工具,含有三個核心組件,分別是source、channel、sink。通過這些組件,Event可以從一個地方流向另一個地方,如圖1-1所示,也可以多級agent任一鏈接組合,如圖1-2所示。

Flume是什么

圖1-1 flume數據流模型

     Flume是什么

圖1-2 多級agent連接模型

   1) Source:專用于收集日志,可以處理各種類型各種格式的日志數據,包括avro、thrift、exec、jms、spooling directory、netcat、sequence generator、syslog、http、legacy、自定義等。

   ? Exec Source:以運行 Linux 命令的方式,持續的輸出最新的數據,如 tail -F 文件名 指令,在這種方式下,取的文件名必須是指定的。 ExecSource 可以實現對日志的實時收集,但是存在Flume不運行或者指令執行出錯時,將無法收集到日志數據,無法保證日志數據的完整性;

   ? Spool Source:監測配置的目錄下新增的文件,并將文件中的數據讀取出來。需要注意兩點:拷貝到 spool 目錄下的文件不可以再打開編輯;spool 目錄下不可包含相應的子目錄;

   2) Channel:專用于臨時存儲數據,可以存放在memory、jdbc、file、自定義等。其存儲的數據只有在sink發送成功之后才會被刪除。

   ? Memory Channel:可以實現高速的吞吐,但是無法保證數據的完整性。Memory Channel 是一個不穩定的隧道,其原因是由于它在內存中存儲所有事件。如果 java 進程死掉,任何存儲在內存的事件將會丟失。另外,內存的空間也受到RAM大小的限制,與File Channel有差別;

   ? File Channel:保證數據的完整性與一致性。在具體配置FileChannel時,建議FileChannel設置的目錄和程序日志文件保存的目錄設成不同的磁盤,以便提高效率。File Channel是一個持久化的隧道(channel),它持久化所有的事件,并將其存儲到磁盤中。因此,即使 Java 虛擬機當掉,或者操作系統崩潰或重啟,再或者事件沒有在管道中成功地傳遞到下一個代理(agent),這一切都不會造成數據丟失。

   3) Sink:專用于把數據發送到目的地件,目的地包括hdfs、logger、avro、thrift、ipc、file、null、hbase、solr、自定義等。

3、可靠性

   Flume的核心是把數據從數據源收集過來,再送到目的地。為了保證輸送一定成功,在送到目的地之前,會先緩存數據,待數據真正到達目的地后,刪除自己緩存的數據。

   Flume使用事務性的方式保證傳送Event整個過程的可靠性。Sink必須在Event被存入Channel 后,或者已經被傳達到下一站agent里,又或者,已經被存入外部數據目的地之后,才能把Event從Channel中remove掉。這樣數據流里的event無論是在一個agent里還是多個agent之間流轉,都能保證可靠,因為以上的事務保證了event會被成功存儲起來。而Channel的多種實現在可恢復性上有不同的保證。也保證了event不同程度的可靠性。比如Flume支持在本地保存一份文件channel作為備份,而memory channel將event存在內存queue里,速度快,但丟失的話無法恢復。

二、Flume安裝與使用

1、安裝

   官網(http://flume.apache.org/download.html)下載flume版本(本實驗:apache-flume-1.5.2-bin.tar.gz),解壓到/usr/local目錄下,進入flume-xx/conf目錄中,執行命令:mv flume-env.sh.properties flume-env.sh,然后配置flume-env.sh中的JAVA_HOME路徑。

2、一個示例

   本示例Source來自Spooling Directory,Sink流向HDFS。監控/root/logs文件目錄下的文件,一旦有新文件,就立刻將文件內容通過agent流向HDFS的hdfs://cluster1/flume/%Y%m%d文件中(此處如果找不到cluster1,需要將hadoop的配置文件core-site.xml和hdfs-site.xml拷貝至flume的conf目錄中)。

   flume目錄下新建test目錄,新建文件example,內容如下:

#定義agent名, source、channel、sink的名稱
agent1.sources = source1
agent1.channels = channel1
agent1.sinks = sink1

#具體定義source
agent1.sources.source1.type = spooldir
agent1.sources.source1.spoolDir = /home/logs
agent1.sources.source1.fileHeader = false
#定義攔截器,為消息添加時間戳
agent1.sources.source1.interceptors = i1
agent1.sources.source1.interceptors.i1.type = org.apache.flume.interceptor.TimestampInterceptor$Builder

#具體定義channel
#也可以將channel數據放在內存(但是內存容易丟失)中,如
#agent1.channels.c1.type = memory
#agent1.channels.c1.capacity = 10000
#agent1.channels.c1.transactionCapacity = 100
#此處配置為文件中
agent1.channels.channel1.type=file
#備份路徑
agent1.channels.channel1.checkpointDir=/root/flume_bak  
#數據保存路徑
agent1.channels.channel1.dataDirs=/root/flume_tmp  

#具體定義sink
agent1.sinks.sink1.type = hdfs
agent1.sinks.sink1.hdfs.path = hdfs://cluster1/flume/%Y%m%d
agent1.sinks.sink1.hdfs.fileType = DataStream
#存儲到HDFS文件名的前綴,格式為20140116-文件名..
agent1.sinks.sink1.hdfs.filePrefix=%Y-%m-%d  
#不按照條數生成文件
agent1.sinks.sink1.hdfs.rollCount = 0  
#HDFS上的文件達到128M時生成一個文件
agent1.sinks.sink1.hdfs.rollSize = 134217728  
#HDFS上的文件每60秒去檢測
agent1.sinks.sink1.hdfs.rollInterval = 60  

#組裝source、channel、sink
agent1.sources.source1.channels = channel1
agent1.sinks.sink1.channel = channel1

   運行該示例,進入/usr/local/flume目錄,執行命令:bin/flume-ng agent -n agent1 -c conf -f test/example -Dflume.root.logger=DEBUG,console

   其中-n指定agent名稱,-c指定配置文件目錄,-f指定配置文件,-Dflume.root.logger=DEBUG,console設置日志等級為輸出到控制臺。

感謝你能夠認真閱讀完這篇文章,希望小編分享的“Flume是什么”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

广德县| 平舆县| 小金县| 平乡县| 象山县| 高阳县| 毕节市| 泸溪县| 上高县| 大姚县| 诸暨市| 札达县| 河曲县| 慈利县| 青田县| 肇庆市| 乐都县| 盱眙县| 恩施市| 新源县| 南宫市| 庄河市| 桂平市| 林芝县| 安多县| 蒙山县| 绵竹市| 荔浦县| 玉林市| 临颍县| 湘阴县| 茶陵县| 铜山县| 翁牛特旗| 元氏县| 竹北市| 拉孜县| 清流县| 句容市| 天柱县| 临泉县|