天天看點

Kafka實戰-Flume到Kafka

1.概述

前面給大家介紹了整個Kafka項目的開發流程,今天給大家分享Kafka如何擷取資料源,即Kafka生産資料。下面是今天要分享的目錄:

資料來源

Flume到Kafka

資料源加載

預覽

下面開始今天的分享内容。

2.資料來源

Kafka生産的資料,是由Flume的Sink提供的,這裡我們需要用到Flume叢集,通過Flume叢集将Agent的日志收集分發到 Kafka(供實時計算處理)和HDFS(離線計算處理)。關于Flume叢集的Agent部署,這裡就不多做贅述了,不清楚的同學可以參考《高可用Hadoop平台-Flume NG實戰圖解篇》一文中的介紹,下面給大家介紹資料來源的流程圖,如下圖所示:

Kafka實戰-Flume到Kafka

這裡,我們使用Flume作為日志收集系統,将收集到的資料輸送到Kafka中間件,以供Storm去實時消費計算,整個流程從各個Web節點 上,通過Flume的Agent代理收集日志,然後彙總到Flume叢集,在由Flume的Sink将日志輸送到Kafka叢集,完成資料的生産流程。

3.Flume到Kafka

從圖,我們已經清楚了資料生産的流程,下面我們來看看如何實作Flume到Kafka的輸送過程,下面我用一個簡要的圖來說明,如下圖所示:

Kafka實戰-Flume到Kafka

這個表達了從Flume到Kafka的輸送工程,下面我們來看看如何實作這部分。

首先,在我們完成這部分流程時,需要我們将Flume叢集和Kafka叢集都部署完成,在完成部署相關叢集後,我們來配置Flume的Sink資料流向,配置資訊如下所示:

首先是配置spooldir方式,内容如下所示:

當然,Flume的資料發送方類型也是多種類型的,有:Console、Text、HDFS、RPC等,這裡我們系統所使用的是Kafka中間件來接收,配置内容如下所示:

這樣,我們就在Flume的Sink端配置好了資料流向接受方。

4.資料加載

在完成配置後,接下來我們開始加載資料,首先我們在Flume的spooldir端生産日志,以供Flume去收集這些日志。然後,我們通過Kafka的KafkaOffsetMonitor監控工具,去監控資料生産的情況,下面我們開始加載。

啟動ZK叢集,内容如下所示:

注意:分别在ZK的節點上啟動。

啟動Kafka叢集

在其他的Kafka節點輸入同樣的指令,完成啟動。

啟動Kafka監控工具

啟動Flume叢集

然後,我在/home/hadoop/dir/logdfs目錄下上傳log日志,這裡我隻抽取了一少部分日志進行上傳,如下圖所示,表示日志上傳成功。

Kafka實戰-Flume到Kafka

5.預覽

下面,我們通過Kafka的監控工具,來預覽我們上傳的日志記錄,有沒有在Kafka中産生消息資料,如下所示:

啟動Kafka叢集,為生産消息截圖預覽

通過Flume上傳日志,在Kafka中産生消息資料

6.總結

本篇文章給大家講述了Kafka的消息産生流程,後續會在Kafka實戰系列中為大家講述Kafka的消息消費流程等一整套流程,這裡隻是為後續的Kafka實戰編碼打下一個基礎,讓大家先對Kafka的消息生産有個整體的認識。

繼續閱讀