1. 程式人生 > >Flume基礎概述

Flume基礎概述

  • Flume 是一個從可以收集例如日誌,事件等資料資源,並將這些數量龐大的資料從各項資料資源中集中起來儲存的工具/服務,或者數集中機制。Flume具有高可用,分散式,配置工具,其設計的原理也是基於將資料流,如日誌資料從各種網站伺服器上彙集起來儲存到HDFS,HBase等集中儲存器中

執行機制

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基礎概述

Flume 是一個從可以收集例如日誌,事件等資料資源,並將這些數量龐大的資料從各項資料資源中集中起來儲存的工具/服務,或者數集中機制。Flume具有高可用,分散式,配置工具,其設計的原理也是基於將資料流,如日誌資料從各種網站伺服器上彙集起來儲存到HDFS,HB

Java學習(一)基礎概述

java 所在 應用 enter 代碼實現 ase 產品 stand 就是 寫代碼: 1,明確需求。我要做什麽? 2,分析思路。我要怎麽做?1,2,3。 3,確定步驟。每一個思路部分用到哪些語句,方法,和對象。 4,代碼實現。用具體的java語言代碼把思路體現出來。 學

Java基礎概述

java基礎概述 對於一個菜鳥級還沒有入門的初學者來說,現在理解整理這些知識點來說還有點牽強,對於許多大佬來看,這些理解有些膚淺,但還需要把我自己理解的知識從新整理歸納出來,這樣才能在相互的學習研究中找出自己的不足,望各位博友踴躍提出自己寶貴的意見,謝謝!以下知識點是我今天學習的知識的歸納總結Java概述:

Java基礎概述——二維數組

二維數組二維數組所謂二維數組就是數組中的數組,它的定義格式和一維數組很像。格式一:int[][] arr = new int[3][4]; [3]:該數組中有三個一維數組 [4]:每個一維數組的長度為4格式二:int[][] arr = new int[3][]

反饋的基礎概述

目的 行政管理 活動 www 影響 系統 ref 得到 管理 反饋 反饋也稱為”回授”,廣泛應用於各個領域。例如,在行政管理中,通過對執行部門工作效果(輸出)的調研,以便修訂政策(輸入);在商業活動中,通過對商品銷售(輸出)的調研來調整進貨數量(輸入);在控制系統中,通

Ansible基礎概述

維護 主機清單 tab cati ade run res .org 臨時 一、Ansible簡介 Ansible基於Python語言實現,由paramiko和PyYAML兩個關鍵模塊構建。Ansible的編排引擎可以出色地完成配置管理,流程控制,資源部署等多方

【批處理】基礎概述

man %s 朋友 符號 erro orm 文件的 conf 目錄名 前幾日我的小夥伴提到如何快速學習批處理以提高自己的學習工作效率,今天我就將自己以前的學習思路概述一遍! 首先,批處理,顧名思義,就是批量處理,它的要求是每一行每一句代碼就是可執行的... 裝逼模式開啟.

Java基礎——概述

開發人員 程序 通過 aps 編寫 編譯 oct 1.7 layout body, table{font-family: 微軟雅黑; font-size: 10pt} table{border-coll

python基礎概述

gcc-c++ 區別 不存在 nag scrip 用c語言實現 onf 下載 Opens 1、python簡介 python誕生於1989年,創始人 吉多·範羅蘇姆(Guido van Rossum)。python是一種 C和shell 之間,功能全面,易學易用,可拓展的語

01-shell基礎概述

login 配置文件 解釋 das 語言 連接 權限 日誌文件 無需 shell是一個命令解釋器 shell腳本類似於DOS系統(磁盤操作系統)下的批處理程序 shell腳本語言很適合用於處理純文本類型的數據(配置文件、日誌文件) shell腳本語言是弱類型語言(無須定義

Java併發程式設計(1)-執行緒安全基礎概述

文章目錄 一、執行緒安全性 1.1、無狀態類 1.2、有狀態類 二、原子性 2.1、原子操作 2.2、競爭操作 2.3、複合操作

UART串列埠通訊淺談之(一)--基礎概述

通訊按照傳統的理解就是資訊的傳輸與交換。UART(Universal Asynchronous Receiver/Transmitter,即通用非同步收發器)序列通訊是微控制器最常用的一種通訊技術,通常用於微控制器和電腦之間以及微控制器和微控制器之間的通訊。 以下我們以STC98C52微控制器為

01 JavaScript語言基礎-概述

概述 一,概念 JavaScript是一種直譯式指令碼語言、 Web的程式語言。所有現代的HTML頁面都使用JavaScript,用於改進設計、驗證表單、檢測瀏覽器、建立cookies等設計。 二,JS的組成 1,ECMAScript:核心部分,定義JavaScript的語法

【搞定Java併發程式設計】第2篇:併發基礎概述

上一篇:執行緒的五種可用狀態 目  錄: 1、什麼是併發 2、Java的多執行緒和併發性 3、多執行緒的優點 4、多執行緒的代價 5、競態條件與臨界區 6、執行緒安全與共享資源 7、執行緒安全及不可變性 1、什麼是併發 在過去單CPU時代,單任務

Kafka 基礎概述

1.什麼是kafka?     在流式計算中,Kafka一般用來快取資料,Storm通過消費Kafka的資料進行計算。     1)Apache Kafka是一個開源訊息系統,由Scala寫成。是由Apache軟體基金會開發的一個開源訊息系統專案。      2)Kaf

Linux學習基礎之——Shell基礎-概述

1、Shell是什麼 shell是一個命令列直譯器,它為使用者提供了一個像Linux 核心傳送請求以便執行程式的介面系統級程式,使用者可以用shell來啟動、掛起、停止甚至是編寫一些程式。 shell還是一個功能相當強大的程式語言,易編寫,易除錯,靈活性較強。shell是解釋執行的指令碼

flume學習一:flume基礎知識

一.Flume使用的前提:  Flume使用 java編寫,其需要執行在 Java1.6或更高版本之上。 二.Flume的定義:  Flume是一個分散式、可靠、高效可用的海量日誌採集、聚合和傳輸系

資料結構與演算法 基礎概述 入門必備!

一、資料的邏輯結構 (1)集合結構 結構中的資料元素之間除了同屬於一個集合的關係外,再無任何其它關係。 (2)線性結構 結構中的資料元素之間存在著一對一的線性關係。 (3)樹形結構 結構中的資料元素之間存在著一對多的層次關

【(開課吧javaEE)每日一學190802】mybatis基礎概述與第一個程式

mybatis簡介 什麼是mybatis MyBatis是一個優秀的持久層框架,它是一個半自動化的ORM框架 它對使用JDBC操

FlumeFlume基礎之安裝與使用

1、Flume簡介 ​ (1) Flume提供一個分散式的,可靠的,對大資料量的日誌進行高效收集、聚集、移動的服務,Flume只能在Unix環境下執行。 ​ (2) Flume基於流式架構,容錯性強,也很靈活簡單。 ​ (3) Flume、Kafka用來實時進行資料收集,Spark、Flink用來實時處理資料