Apache Flume - 序列生成器 Source



在上一章中,我們瞭解瞭如何從 Twitter 源獲取資料到 HDFS。本章將解釋如何從**序列生成器**獲取資料。

先決條件

要執行本章提供的示例,您需要安裝**HDFS**以及**Flume**。因此,在繼續操作之前,請驗證 Hadoop 安裝並啟動 HDFS。(請參閱上一章瞭解如何啟動 HDFS)。

配置 Flume

我們必須使用**conf**資料夾中的配置檔案來配置源、通道和接收器。本章提供的示例使用**序列生成器源**、**記憶體通道**和**HDFS 接收器**。

序列生成器 Source

它是持續生成事件的源。它維護一個從 0 開始並遞增 1 的計數器。它用於測試目的。在配置此源時,您必須為以下屬性提供值:

  • 通道

  • **源型別** - seq

通道

我們使用**記憶體**通道。要配置記憶體通道,您*必須*為通道的型別提供一個值。以下是配置記憶體通道時需要提供的屬性列表:

  • **型別** - 它儲存通道的型別。在我們的示例中,型別為 MemChannel。

  • **容量** - 它是通道中儲存事件的最大數量。其預設值為 100。(可選)

  • **事務容量** - 它是通道接受或傳送事件的最大數量。其預設值為 100。(可選)。

HDFS 接收器

此接收器將資料寫入 HDFS。要配置此接收器,您*必須*提供以下詳細資訊。

  • 通道

  • **型別** - hdfs

  • **hdfs.path** - HDFS 中要儲存資料的目錄的路徑。

並且我們可以根據場景提供一些可選值。以下是我們在應用程式中配置的 HDFS 接收器的可選屬性。

  • **檔案型別** - 這是我們 HDFS 檔案所需的格式。**SequenceFile、DataStream** 和**CompressedStream** 是此流提供的三種類型。在我們的示例中,我們使用**DataStream**。

  • **寫入格式** - 可以是文字或可寫。

  • **批處理大小** - 它是寫入檔案中的事件數量,然後將其重新整理到 HDFS。其預設值為 100。

  • **滾動大小** - 它是觸發滾動的檔案大小。其預設值為 100。

  • **滾動計數** - 它是寫入檔案中的事件數量,然後將其滾動。其預設值為 10。

示例 - 配置檔案

以下是配置檔案示例。複製此內容並將其另存為 Flume 的 conf 資料夾中的**seq_gen .conf**。

# Naming the components on the current agent 

SeqGenAgent.sources = SeqSource   
SeqGenAgent.channels = MemChannel 
SeqGenAgent.sinks = HDFS 
 
# Describing/Configuring the source 
SeqGenAgent.sources.SeqSource.type = seq
  
# Describing/Configuring the sink
SeqGenAgent.sinks.HDFS.type = hdfs 
SeqGenAgent.sinks.HDFS.hdfs.path = hdfs://:9000/user/Hadoop/seqgen_data/
SeqGenAgent.sinks.HDFS.hdfs.filePrefix = log 
SeqGenAgent.sinks.HDFS.hdfs.rollInterval = 0
SeqGenAgent.sinks.HDFS.hdfs.rollCount = 10000
SeqGenAgent.sinks.HDFS.hdfs.fileType = DataStream 
 
# Describing/Configuring the channel 
SeqGenAgent.channels.MemChannel.type = memory 
SeqGenAgent.channels.MemChannel.capacity = 1000 
SeqGenAgent.channels.MemChannel.transactionCapacity = 100 
 
# Binding the source and sink to the channel 
SeqGenAgent.sources.SeqSource.channels = MemChannel
SeqGenAgent.sinks.HDFS.channel = MemChannel 

執行

瀏覽 Flume 主目錄並按如下所示執行應用程式。

$ cd $FLUME_HOME 
$./bin/flume-ng agent --conf $FLUME_CONF --conf-file $FLUME_CONF/seq_gen.conf 
   --name SeqGenAgent 

如果一切順利,源將開始生成序列號,這些序列號將以日誌檔案形式推送到 HDFS 中。

以下是命令提示符視窗的快照,該視窗將序列生成器生成的資料提取到 HDFS 中。

Data Generated

驗證 HDFS

您可以使用以下 URL 訪問 Hadoop 管理 Web UI:

https://:50070/

單擊頁面右側名為**實用程式**的下拉選單。您可以看到如下所示的兩個選項。

Verifying the HDFS

單擊**瀏覽檔案系統**並輸入您已將序列生成器生成的資料儲存在其中的 HDFS 目錄的路徑。

在我們的示例中,路徑將為** /user/Hadoop/ seqgen_data /**。然後,您可以看到序列生成器生成的日誌檔案列表,儲存在 HDFS 中,如下所示。

Browse the file system

驗證檔案內容

所有這些日誌檔案都包含按順序排列的數字。您可以使用如下所示的**cat**命令驗證檔案系統中這些檔案的內容。

Verifying the Contents of the File
廣告

© . All rights reserved.