Apache Flume簡介及安裝部署

来源:https://www.cnblogs.com/jifengblog/archive/2018/07/07/9277793.html
-Advertisement-
Play Games

概述 Flume 是 Cloudera 提供的一個高可用的,高可靠的,分散式的海量日誌採集、聚合和傳輸的軟體。 Flume 的核心是把數據從數據源(source)收集過來,再將收集到的數據送到指定的目的地(sink)。為了保證輸送的過程一定成功,在送到目的地(sink)之前,會先緩存數據(chann ...


概述

Flume 是 Cloudera 提供的一個高可用的,高可靠的,分散式的海量日誌採集、聚合和傳輸的軟體

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

Flume 支持定製各類數據發送方,用於收集各類型數據;同時,Flume 支持定製各種數據接受方,用於最終存儲數據。一般的採集需求,通過對 flume 的簡單配置即可實現。針對特殊場景也具備良好的自定義擴展能力。因此,flume 可以適用於大部分的日常數據採集場景

運行機制

  Flume 系統中核心的角色是 agent,agent 本身是一個 Java 進程,一般運行在日誌收集節點。

  •   每一個 agent 相當於一個數據傳遞員,內部有三個組件:

    Source:採集源,用於跟數據源對接,以獲取數據;

    Sink:下沉地,採集數據的傳送目的,用於往下一級 agent 傳遞數據或者往最終存儲系統傳遞數據;

    Channel:agent 內部的數據傳輸通道,用於從 source 將數據傳遞到 sink;

  •   在整個數據的傳輸的過程中,流動的是 event,它是 Flume 內部數據傳輸的最基本單元。event 將傳輸的數據進行封裝。如果是文本文件,通常是一行記錄,event 也是事務的基本單位。event 從 source,流向 channel,再到 sink,本身為一個位元組數組,並可攜帶 headers(頭信息)信息。event 代表著一個數據的最小完整單元,從外部數據源來,向外部的目的地去。
  •   一個完整的 event 包括:event headers、event body、event 信息,其event 信息就是 flume 收集到的日記記錄。

Flume採集系統結構圖

  簡單結構:

      單個 agent 採集數據

 

  複雜結構

      多級 agent 之間串聯

 

 

 

Flume安裝部署

  • 上傳安裝包到數據源所在節點上
  • 解壓
tar -zxvf apache-flume-1.6.0-bin.tar.gz
  • 根據數據採集需求 配置採集方案,描述在配置文件中(文件名可任意自定義)

    在 flume 的 的 conf  目錄下新建一個文件

vi netcat-logger.conf
#從網路埠接收數據,下沉到logger
#採集配置文件,netcat-logger.conf

# Name the components on this agent
a1.sources = r1
a1.sinks = k1
a1.channels = c1

# Describe/configure the source
a1.sources.r1.type = netcat
a1.sources.r1.bind = localhost
a1.sources.r1.port = 44444

# Describe the sink
a1.sinks.k1.type = logger

# Use a channel which buffers events in memory
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100

# Bind the source and sink to the channel
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1

 

  • 指定採集方案配置文件,在相應的節點上啟動 flume agent
bin/flume-ng agent --conf conf --conf-file conf/netcat-logger.conf --name a1 -Dflume.root.logger=INFO,console

#--conf 指定flume自帶配置文件位置(簡寫-c)

#--conf-file指定採集方案是哪一個(-f)

#--name 給本次flume agent起個名字

 

  • 測試
#安裝telnet
yum install -y telnet

傳入數據:
$ telnet localhost 44444
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
Hello world! <ENTER>
OK

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1.實現一個簡單的讀寫分離 這裡通過一個簡單的示例實現ProxySQL的讀寫分離功能,算是ProxySQL的快速入門。即使是快速入門,需要配置的內容也很多,包括:後端MySQL配置、監控配置、發送SQL語句的用戶、SQL語句的路由規則。所以,想要實現一個ProxySQL+MySQL,即使只實現最基本 ...
  • 1.ProxySQL簡介 之前的文章里,介紹了一個MySQL的中間件:MySQL Router。詳細內容參見: "MySQL Router實現MySQL的讀寫分離" 。 這裡準備用一個系列來詳細介紹一個能實實在在用在生產環境的MySQL中間件:ProxySQL。它有兩個版本:官方版和percona版 ...
  • Create database database name;//創建資料庫 Show databases dbName; //顯示所有資料庫 Create table tableName; //創建表 Show tables tName; //顯示所有表 Alter table oldName re... ...
  • DDL(數據定義語言)操作 Hive配置單元包含一個名為 default 預設的資料庫. create database [if not exists] <database name>; 創建資料庫 show databases | schemas; --顯示所有資料庫 drop database ...
  • 簡介 Hive 是基於 Hadoop 的一個數據倉庫工具,可以將結構化的數據文件 映射為一張資料庫表,並提供類 SQL 查詢功能。 本質是將 SQL 轉換為 MapReduce 程式。 Hive組件 用戶介面:包括 CLI、JDBC/ODBC、WebGUI。其中,CLI(command linein ...
  • 廣義上來說,Hadoop大數據平臺也可以看做是新一代的數據倉庫系統, 它也具有很多現代數據倉庫的特征,也被企業所廣泛使用。因為MPP架構的可擴展性,基於MPP的數據倉庫系統有時候也被劃分到大數據平臺類產品。 但是數據倉庫和Hadoop平臺還是有很多顯著的不同。針對不同的使用場景其發揮的作用和給用戶帶 ...
  • 問題是服務裡面mysql沒有啟動或者mysql服務丟失 解決辦法: 開始->運行->cmd,進到mysql安裝的bin目錄(以我的為例,我的安裝在D盤)D:\MySQL\bin>mysqld.exe -installService successfully installed. 這個時候刷新服務列表 ...
  • 採集目錄到HDFS 使用flume採集目錄需要啟動hdfs集群 spooldir source 監控指定目錄 如果目錄下有新文件產生 就採集走 註意!!! 此組件監控的目錄不能有同名的文件產生 一旦有重名文件:報錯 罷工 註意!!! 此組件監控的目錄不能有同名的文件產生 一旦有重名文件:報錯 罷工 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...