日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

flume简介(大数据技术)

發布時間:2023/12/10 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 flume简介(大数据技术) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1 .背景

flume是由cloudera軟件公司產出的可分布式日志收集系統,后與2009年被捐贈了apache軟件基金會,為hadoop相關組件之一。尤其近幾年隨著flume的不斷被完善以及升級版本的逐一推出,特別是flume-ng;同時flume內部的各種組件不斷豐富,用戶在開發的過程中使用的便利性得到很大的改善,現已成為apache top項目之一.

2 .概述

  • 什么是flume?

    apache Flume 是一個從可以收集例如日志,事件等數據資源,并將這些數量龐大的數據從各項數據資源中集中起來存儲的工具/服務,或者數集中機制。flume具有高可用,分布式,配置工具,其設計的原理也是基于將數據流,如日志數據從各種網站服務器上匯集起來存儲到HDFS,HBase等集中存儲器中。其結構如下圖所示:

  • ![在這里插入圖片描述](https://img-blog.csdnimg.cn/20190811121803224.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzM5MjQ4OQ==,size_16,color_FFFFFF,t_70)

    2.應用場景

    比如我們在做一個電子商務網站,然后我們想從消費用戶中訪問點特定的節點區域來分析消費者的行為或者購買意圖. 這樣我們就可以更加快速的將他想要的推送到界面上,實現這一點,我們需要將獲取到的她訪問的頁面以及點擊的產品數據等日志數據信息收集并移交給Hadoop平臺上去分析.而Flume正是幫我們做到這一點。現在流行的內容推送,比如廣告定點投放以及新聞私人定制也是基于次,不過不一定是使用FLume,畢竟優秀的產品很多,比如facebook的Scribe,還有Apache新出的另一個明星項目chukwa,還有淘寶Time Tunnel。

    3.Flume的優勢

    1. Flume可以將應用產生的數據存儲到任何集中存儲器中,比如HDFS,HBase2. 當收集數據的速度超過將寫入數據的時候,也就是當收集信息遇到峰值時,這時候收集的信息非常大,甚至超過了系統的寫入數據能力,這時候,Flume會在數據生產者和數據收容器間做出調整,保證其能夠在兩者之間提供一共平穩的數據.3. 提供上下文路由特征4. Flume的管道是基于事務,保證了數據在傳送和接收時的一致性.5. Flume是可靠的,容錯性高的,可升級的,易管理的,并且可定制的。
  • Flume具有的特征:

  • Flume可以高效率的將多個網站服務器中收集的日志信息存入HDFS/HBase中

  • 使用Flume,我們可以將從多個服務器中獲取的數據迅速的移交給Hadoop中

  • 除了日志信息,Flume同時也可以用來接入收集規模宏大的社交網絡節點事件數據,比如facebook,twitter,電商網站如亞馬遜,flipkart等

  • 支持各種接入資源數據的類型以及接出數據類型

  • 支持多路徑流量,多管道接入流量,多管道接出流量,上下文路由等

  • 可以被水平擴展

  • Flume的結構

  • flume的外部結構:
  • 如上圖所示,數據發生器(如:facebook,twitter)產生的數據被被單個的運行在數據發生器所在服務器上的agent所收集,之后數據收容器從各個agent上匯集數據并將采集到的數據存入到HDFS或者HBase中
  • Flume 事件
  • 事件作為Flume內部數據傳輸的最基本單元.它是由一個轉載數據的字節數組(該數據組是從數據源接入點傳入,并傳輸給傳輸器,也就是HDFS/HBase)和一個可選頭部構成.

    典型的Flume 事件如下面結構所示:

    我們在將event在私人定制插件時比如:flume-hbase-sink插件是,獲取的就是event然后對其解析,并依據情況做過濾等,然后在傳輸給HBase或者HDFS.

    3.Flume Agent

    我們在了解了Flume的外部結構之后,知道了Flume內部有一個或者多個Agent,然而對于每一個Agent來說,它就是一共獨立的守護進程(JVM),它從客戶端哪兒接收收集,或者從其他的 Agent哪兒接收,然后迅速的將獲取的數據傳給下一個目的節點sink,或者agent. 如下圖所示flume的基本模型

    Agent主要由:source,channel,sink三個組件組成.

    Source:

    從數據發生器接收數據,并將接收的數據以Flume的event格式傳遞給一個或者多個通道channal,Flume提供多種數據接收的方式,比如Avro,Thrift,twitter1%等

    Channel:

    channal是一種短暫的存儲容器,它將從source處接收到的event格式的數據緩存起來,直到它們被sinks消費掉,它在source和sink間起著一共橋梁的作用,channal是一個完整的事務,這一點保證了數據在收發的時候的一致性. 并且它可以和任意數量的source和sink鏈接. 支持的類型有: JDBC channel , File System channel , Memort channel等.

    sink:

    sink將數據存儲到集中存儲器比如Hbase和HDFS,它從channals消費數據(events)并將其傳遞給目標地. 目標地可能是另一個sink,也可能HDFS,HBase.

    它的組合形式舉例:



    以上介紹的flume的主要組件,下面介紹一下Flume插件:

  • Interceptors攔截器

    用于source和channel之間,用來更改或者檢查Flume的events數據

  • 管道選擇器 channels Selectors

    在多管道是被用來選擇使用那一條管道來傳遞數據(events). 管道選擇器又分為如下兩種:

    默認管道選擇器: 每一個管道傳遞的都是相同的events

  • 多路復用通道選擇器: 依據每一個event的頭部header的地址選擇管道.

    3.sink線程
    用于激活被選擇的sinks群中特定的sink,用于負載均衡.
    4.Flume與Kafka對比

    kafka和flume都是日志系統,kafka是分布式消息中間件,自帶存儲,提供push和pull存取數據功能。flume分為agent(數據采集器),collector(數據簡單處理和寫入),storage(存儲器)三部分,每一部分都是可以定制的。比如agent采用RPC(Thrift-RPC)、text(文件)等,storage指定用hdfs做。 kafka做日志緩存應該是更為合適的,但是 flume的數據采集部分做的很好,可以定制很多數據源,減少開發量。所以比較流行flume+kafka模式,如果為了利用flume寫hdfs的能力,也可以采用kafka+flume的方式。

    采集層 主要可以使用Flume, Kafka兩種技術。

    Flume:Flume 是管道流方式,提供了很多的默認實現,讓用戶通過參數部署,及擴展API.

    Kafka:Kafka是一個可持久化的分布式的消息隊列。

    Kafka 是一個非常通用的系統。你可以有許多生產者和很多的消費者共享多個主題Topics。相比之下,Flume是一個專用工具被設計為旨在往HDFS,HBase發送數據。它對HDFS有特殊的優化,并且集成了Hadoop的安全特性。所以,Cloudera 建議如果數據被多個系統消費的話,使用kafka;如果數據被設計給Hadoop使用,使用Flume。正如你們所知Flume內置很多的source和sink組件。然而,Kafka明顯有一個更小的生產消費者生態系統,并且Kafka的社區支持不好。希望將來這種情況會得到改善,但是目前:使用Kafka意味著你準備好了編寫你自己的生產者和消費者代碼。如果已經存在的Flume Sources和Sinks滿足你的需求,并且你更喜歡不需要任何開發的系統,請使用Flume。Flume可以使用攔截器實時處理數據。這些對數據屏蔽或者過量是很有用的。Kafka需要外部的流處理系統才能做到。Kafka和Flume都是可靠的系統,通過適當的配置能保證零數據丟失。然而,Flume不支持副本事件。于是,如果Flume代理的一個節點崩潰了,即使使用了可靠的文件管道方式,你也將丟失這些事件直到你恢復這些磁盤。如果你需要一個高可靠行的管道,那么使用Kafka是個更好的選擇。Flume和Kafka可以很好地結合起來使用。如果你的設計需要從Kafka到Hadoop的流數據,使用Flume代理并配置Kafka的Source讀取數據也是可行的:你沒有必要實現自己的消費者。你可以直接利用Flume與HDFS及HBase的結合的所有好處。你可以使用Cloudera Manager對消費者的監控,并且你甚至可以添加攔截器進行一些流處理。

    Flume和Kafka可以結合起來使用。通常會使用Flume + Kafka的方式。其實如果為了利用Flume已有的寫HDFS功能,也可以使用Kafka + Flume的方式。

    總結

    以上是生活随笔為你收集整理的flume简介(大数据技术)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。