天天看點

高可用Hadoop平台-Flume NG實戰圖解篇1.概述2.Flume NG簡述3.單點Flume NG搭建、運作 4.高可用Flume NG搭建5.Failover測試6.截圖預覽7.總結8.結束語

  今天補充一篇關于Flume的部落格,前面在講解高可用的Hadoop平台的時候遺漏了這篇,本篇部落格為大家講述以下内容:

Flume NG簡述

單點Flume NG搭建、運作

高可用Flume NG搭建

Failover測試

截圖預覽

  下面開始今天的部落格介紹。

  Flume NG是一個分布式,高可用,可靠的系統,它能将不同的海量資料收集,移動并存儲到一個資料存儲系統中。輕量,配置簡單,适用于各種日志收集,并支援Failover和負載均衡。并且它擁有非常豐富的元件。Flume NG采用的是三層架構:Agent層,Collector層和Store層,每一層均可水準拓展。其中Agent包含Source,Channel和Sink,三者組建了一個Agent。三者的職責如下所示:

Source:用來消費(收集)資料源到Channel元件中

Channel:中轉臨時存儲,儲存所有Source元件資訊

Sink:從Channel中讀取,讀取成功後會删除Channel中的資訊

  下圖是Flume NG的架構圖,如下所示:

高可用Hadoop平台-Flume NG實戰圖解篇1.概述2.Flume NG簡述3.單點Flume NG搭建、運作 4.高可用Flume NG搭建5.Failover測試6.截圖預覽7.總結8.結束語

  圖中描述了,從外部系統(Web Server)中收集産生的日志,然後通過Flume的Agent的Source元件将資料發送到臨時存儲Channel元件,最後傳遞給Sink元件,Sink元件直接把資料存儲到HDFS檔案系統中。

  我們在熟悉了Flume NG的架構後,我們先搭建一個單點Flume收集資訊到HDFS叢集中,由于資源有限,本次直接在之前的高可用Hadoop叢集上搭建Flume。

  場景如下:在NNA節點上搭建一個Flume NG,将本地日志收集到HDFS叢集。

  在搭建Flume NG之前,我們需要準備必要的軟體,具體下載下傳位址如下所示:

安裝

  首先,我們解壓flume安裝包,指令如下所示:

配置

  環境變量配置内容如下所示:

  flume-conf.properties

<a></a>

  flume-env.sh

  注:配置中的目錄若不存在,需提前建立。

  啟動指令如下所示:

  注:指令中的agent1表示配置檔案中的Agent的Name,如配置檔案中的agent1。flume-conf.properties表示配置檔案所在配置,需填寫準确的配置檔案路徑。

高可用Hadoop平台-Flume NG實戰圖解篇1.概述2.Flume NG簡述3.單點Flume NG搭建、運作 4.高可用Flume NG搭建5.Failover測試6.截圖預覽7.總結8.結束語
高可用Hadoop平台-Flume NG實戰圖解篇1.概述2.Flume NG簡述3.單點Flume NG搭建、運作 4.高可用Flume NG搭建5.Failover測試6.截圖預覽7.總結8.結束語
高可用Hadoop平台-Flume NG實戰圖解篇1.概述2.Flume NG簡述3.單點Flume NG搭建、運作 4.高可用Flume NG搭建5.Failover測試6.截圖預覽7.總結8.結束語

  之後,成功上傳後本地目的會被标記完成。如下圖所示:

高可用Hadoop平台-Flume NG實戰圖解篇1.概述2.Flume NG簡述3.單點Flume NG搭建、運作 4.高可用Flume NG搭建5.Failover測試6.截圖預覽7.總結8.結束語

  在完成單點的Flume NG搭建後,下面我們搭建一個高可用的Flume NG叢集,架構圖如下所示:

高可用Hadoop平台-Flume NG實戰圖解篇1.概述2.Flume NG簡述3.單點Flume NG搭建、運作 4.高可用Flume NG搭建5.Failover測試6.截圖預覽7.總結8.結束語

  圖中,我們可以看出,Flume的存儲可以支援多種,這裡隻列舉了HDFS和Kafka(如:存儲最新的一周日志,并給Storm系統提供實時日志流)。

  Flume的Agent和Collector分布如下表所示:

名稱 

HOST

角色

Agent1

10.211.55.14

Web Server

Agent2

10.211.55.15

Agent3

10.211.55.16 

Collector1

10.211.55.18

AgentMstr1

Collector2

10.211.55.19

AgentMstr2

  圖中所示,Agent1,Agent2,Agent3資料分别流入到Collector1和Collector2,Flume NG本身提供了Failover機制,可以自動切換和恢複。在上圖中,有3個産生日志伺服器分布在不同的機房,要把所有的日志都收集到一個叢集中存儲。下面我們開發配置Flume NG叢集

  在下面單點Flume中,基本配置都完成了,我們隻需要新添加兩個配置檔案,它們是flume-client.properties和flume-server.properties,其配置内容如下所示:

flume-client.properties

  注:指定Collector的IP和Port。

flume-server.properties

  注:在另一台Collector節點上修改IP,如在NNS節點将綁定的對象有nna修改為nns。

  在Agent節點上啟動指令如下所示:

  注:指令中的agent1表示配置檔案中的Agent的Name,如配置檔案中的agent1。flume-client.properties表示配置檔案所在配置,需填寫準确的配置檔案路徑。

  在Collector節點上啟動指令如下所示:

  注:指令中的a1表示配置檔案中的Agent的Name,如配置檔案中的a1。flume-server.properties表示配置檔案所在配置,需填寫準确的配置檔案路徑。

  下面我們來測試下Flume NG叢集的高可用(故障轉移)。場景如下:我們在Agent1節點上傳檔案,由于我們配置Collector1的權重比Collector2大,是以Collector1優先采集并上傳到存儲系統。然後我們kill掉Collector1,此時有Collector2負責日志的采集上傳工作,之後,我們手動恢複Collector1節點的Flume服務,再次在Agent1上次檔案,發現Collector1恢複優先級别的采集工作。具體截圖如下所示:

Collector1優先上傳

高可用Hadoop平台-Flume NG實戰圖解篇1.概述2.Flume NG簡述3.單點Flume NG搭建、運作 4.高可用Flume NG搭建5.Failover測試6.截圖預覽7.總結8.結束語

HDFS叢集中上傳的log内容預覽

高可用Hadoop平台-Flume NG實戰圖解篇1.概述2.Flume NG簡述3.單點Flume NG搭建、運作 4.高可用Flume NG搭建5.Failover測試6.截圖預覽7.總結8.結束語

Collector1當機,Collector2擷取優先上傳權限

高可用Hadoop平台-Flume NG實戰圖解篇1.概述2.Flume NG簡述3.單點Flume NG搭建、運作 4.高可用Flume NG搭建5.Failover測試6.截圖預覽7.總結8.結束語

重新開機Collector1服務,Collector1重新獲得優先上傳的權限

高可用Hadoop平台-Flume NG實戰圖解篇1.概述2.Flume NG簡述3.單點Flume NG搭建、運作 4.高可用Flume NG搭建5.Failover測試6.截圖預覽7.總結8.結束語

  下面為大家附上HDFS檔案系統中的截圖預覽,如下圖所示:

HDFS檔案系統中的檔案預覽

高可用Hadoop平台-Flume NG實戰圖解篇1.概述2.Flume NG簡述3.單點Flume NG搭建、運作 4.高可用Flume NG搭建5.Failover測試6.截圖預覽7.總結8.結束語

上傳的檔案内容預覽

高可用Hadoop平台-Flume NG實戰圖解篇1.概述2.Flume NG簡述3.單點Flume NG搭建、運作 4.高可用Flume NG搭建5.Failover測試6.截圖預覽7.總結8.結束語

  在配置高可用的Flume NG時,需要注意一些事項。在Agent中需要綁定對應的Collector1和Collector2的IP和Port,另外,在配置Collector節點時,需要修改目前Flume節點的配置檔案,Bind的IP(或HostName)為目前節點的IP(或HostName),最後,在啟動的時候,指定配置檔案中的Agent的Name和配置檔案的路徑,否則會出錯。

  這篇部落格就和大家分享到這裡,如果大家在研究學習的過程當中有什麼問題,可以加群進行讨論或發送郵件給我,我會盡我所能為您解答,與君共勉!

<b></b><b></b><b></b><b></b>

聯系方式: 

郵箱:[email protected] 

溫馨提示:請大家加群的時候寫上加群理由(姓名+公司/學校),友善管理者稽核,謝謝!