如果說大資料中分布式收集日誌用的是什麼,你完全可以回答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。
3『 進入解壓目錄下,在conf目錄下新建
test.conf
檔案並新增以下配置內容:
14' 然後,在hdfs上建立/flume/data目錄:#定義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=memory
11 agent1.channels.channel1.capacity=1000
12 agent1.channels.channel1.transactioncapactiy=100
13# sink1的配置引數
14 agent1.sinks.sink1.type=hdfs
15 agent1.sinks.sink1.hdfs.path=hdfs://
master:8020/flume/data
16 agent1.sinks.sink1.hdfs.filetype=datastream
17#時間型別
18 agent1.sinks.sink1.hdfs.uselocaltimestamp=true
19 agent1.sinks.sink1.hdfs.writeformat=text
20#檔案字首
21 agent1.sinks.sink1.hdfs.fileprefix=%y-%m-%d-%h-%m
22#60秒滾動生成乙個檔案
23 agent1.sinks.sink1.hdfs.rollinterval=60
24#hdfs塊副本數
25 agent1.sinks.sink1.hdfs.minblockreplicas=1
26#不根據檔案大小滾動檔案
27 agent1.sinks.sink1.hdfs.rollsize=0
28#不根據訊息條數滾動檔案
29 agent1.sinks.sink1.hdfs.rollcount=0
30#不根據多長時間未收到訊息滾動檔案
31 agent1.sinks.sink1.hdfs.idletimeout=0
32# 將source和sink 繫結到channel
33 agent1.sources.source1.channels=channel1
34 agent1.sinks.sink1.channel=channel1
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特性
重要元件 1 channelselector channelselector 的作用就是選出 event 將要被發往哪個 channel。其共有兩種型別,分別是 replicating 複製 和 multiplexing 多路復用 replicatingselector 會將同乙個 event 發往...
大資料 Flume架構筆錄
從大資料採集到資料儲存 flume 採集框架 分布式 資料來源 模擬 資料採集 flume 資料儲存 hdfs 分布式檔案系統 flume架構 資料採集 從一端到另一端 檔案source 輸入 channel 事件的快取 相當於水管 slink 輸出 hdfsf分布式檔案系統 flume 1.定義a...
Flume安裝部署
flume的安裝非常簡單,只需要解壓即可,當然,前提是已有hadoop環境 上傳安裝包到資料來源所在節點上 然後解壓 tar zxvfapache flume 1.6.0 bin.tar.gz 先用乙個最簡單的例子來測試一下程式環境是否正常 1 先在flume的conf目錄下新建乙個檔案 vi ne...