大資料【八】Flume部署

來源:互聯網
上載者:User

標籤:channels   lang   安裝   action   檔案   伺服器   顯示   runner   zookeeper   

如果說大資料中分布式收集日誌用的是什麼,你完全可以回答Flume!(面試小心問到哦)

首先說一個複製本伺服器檔案到目標伺服器上,需要目標伺服器的ip和密碼:

命令:  scp  filename   ip:目標路徑

一  概述

Flume是Cloudera提供的一個高可用的,高可靠的,分布式的海量日誌採集、彙總和傳輸的系統,Flume支援在日誌系統中定製各類資料發送方,用於收集資料;同時,Flume提供對資料進行簡單處理,並寫到各種資料接受方(可定製)的能力。

Flume提供對資料進行簡單處理,並寫到各種資料接受方(可定製)的能力 Flume提供了從console(控制台)、RPC(Thrift-RPC)、text(檔案)、tail(UNIX tail)、syslog(syslog日誌系統,支援TCP和UDP等2種模式),exec(命令執行)等資料來源上收集資料的能力。

當前Flume有兩個版本Flume 0.9X版本的統稱Flume-og,Flume1.X版本的統稱Flume-ng。由於Flume-ng經過重大重構,與Flume-og有很大不同,使用時請注意區分。

Flume-og採用了多Master的方式。為了保證配置資料的一致性,Flume引入了ZooKeeper,用於儲存配置資料,ZooKeeper本身可保證配置資料的一致性和高可用,另外,在配置資料發生變化時,ZooKeeper可以通知Flume Master節點。Flume Master間使用gossip協議同步資料。

Flume-ng最明顯的改動就是取消了集中管理配置的 Master 和 Zookeeper,變為一個純粹的傳輸工具。Flume-ng另一個主要的不同點是讀入資料和寫出資料現在由不同的背景工作執行緒處理(稱為 Runner)。 在 Flume-og 中,讀入線程同樣做寫出工作(除了故障重試)。如果寫出慢的話(不是完全失敗),它將阻塞 Flume 接收資料的能力。這種非同步設計使讀入線程可以順暢的工作而無需關注下遊的任何問題。

Flume以agent為最小的獨立運行單位。一個agent就是一個JVM。單agent由Source、Sink和Channel三大組件構成。

二  啟動Flume叢集

1‘  首先,啟動Hadoop叢集(詳情見前部落格)。

2’  其次,(剩下的所有步驟只需要在master上操作就可以了)安裝並配置Flume任務,內容如下:

    將Flume 安裝包解壓到/usr/cstor目錄,並將flume目錄所屬使用者改成root:root。

        tar -zxvf flume-1.5.2.tar.gz -c /usr/cstor

        chown -R root:root /usr/cstor/flume

      

3‘  進入解壓目錄下,在conf目錄下建立test.conf檔案並添加以下配置內容:

 1 #定義agent中各組件名稱 2 agent1.sources=source1 3 agent1.sinks=sink1 4 agent1.channels=channel1 5 # source1組件的配置參數 6 agent1.sources.source1.type=exec 7 #此處的檔案/home/source.log需要手動產生,見後續說明 8 agent1.sources.source1.command=tail -n +0 -F /home/source.log 9 # channel1的配置參數10 agent1.channels.channel1.type=memory11 agent1.channels.channel1.capacity=100012 agent1.channels.channel1.transactionCapactiy=10013 # sink1的配置參數14 agent1.sinks.sink1.type=hdfs15 agent1.sinks.sink1.hdfs.path=hdfs://master:8020/flume/data16 agent1.sinks.sink1.hdfs.fileType=DataStream17 #時間類型18 agent1.sinks.sink1.hdfs.useLocalTimeStamp=true19 agent1.sinks.sink1.hdfs.writeFormat=TEXT20 #檔案首碼21 agent1.sinks.sink1.hdfs.filePrefix=%Y-%m-%d-%H-%M22 #60秒滾動產生一個檔案23 agent1.sinks.sink1.hdfs.rollInterval=6024 #HDFS塊副本數25 agent1.sinks.sink1.hdfs.minBlockReplicas=126 #不根據檔案大小滾動檔案27 agent1.sinks.sink1.hdfs.rollSize=028 #不根據訊息條數滾動檔案29 agent1.sinks.sink1.hdfs.rollCount=030 #不根據多長時間未收到訊息滾動檔案31 agent1.sinks.sink1.hdfs.idleTimeout=032 # 將source和sink 綁定到channel33 agent1.sources.source1.channels=channel134 agent1.sinks.sink1.channel=channel1

4‘  然後,在HDFS上建立/flume/data目錄:

      cd /usr/cstor/hadoop/bin

      ./hdfs dfs -mkdir /flume

      ./hdfs dfs -mkdir /flume/data

5‘  最後,進入Flume安裝的bin目錄下

      cd /usr/cstor/flume/bin

6‘  啟動Flume,開始收集日誌資訊。

      ./flume-ng agent --conf conf --conf-file /usr/cstor/flume/conf/test.conf --name agent1 -Dflume.root.logger=DEBUG,console

      !!!>>運行此命令有時候會出現一個許可權問題,此時需要用命令   chmod o+x  flume-ng

    如果正常運行,最後悔顯示  started,

三  收集日誌

1’  啟動成功之後需要手動產生訊息源即設定檔中的/home/source.log,使用如下命令去不斷的寫入文字到/home/source.log中:

      

2‘  到此就可以去查看產生結果:

      

 

小結:

  這隻是配置Flume,然後簡單的讀寫日誌。想要深入下去,還要收集更複雜,更龐大的日誌

 

       

      

 

大資料【八】Flume部署

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.