一.flume介紹
成都創(chuàng)新互聯(lián)長(zhǎng)期為上千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為東鄉(xiāng)族企業(yè)提供專業(yè)的成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè),東鄉(xiāng)族網(wǎng)站改版等技術(shù)服務(wù)。擁有十余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
flume 是一個(gè)cloudera提供的 高可用高可靠,分布式的海量日志收集聚合傳輸系統(tǒng)。Flume支持日志系統(tǒng)中定制各類數(shù)據(jù)發(fā)送方,用于收集數(shù)據(jù)。同時(shí)flume提供對(duì)數(shù)據(jù)進(jìn)行簡(jiǎn)單處理,并寫到各種數(shù)據(jù)接收方(可定制)的能力。
二.功能介紹
日志收集
Flume最早是Cloudera提供的日志收集系統(tǒng),目前是Apache下的一個(gè)孵化項(xiàng)目,F(xiàn)lume支持在日志系統(tǒng)中定制各類數(shù)據(jù)發(fā)送方,用于收集數(shù)據(jù)。
流程:恒生數(shù)據(jù)接收中間件---file.txt 哪個(gè)端口進(jìn)行監(jiān)控 ---數(shù)據(jù)監(jiān)控—接收數(shù)據(jù)----內(nèi)存—存儲(chǔ)本地硬盤
Flume—對(duì)哪個(gè)ip 哪個(gè)端口進(jìn)行監(jiān)控 ---數(shù)據(jù)監(jiān)控—接收數(shù)據(jù)----內(nèi)存—存儲(chǔ)本地硬盤
數(shù)據(jù)處理
Flume提供對(duì)數(shù)據(jù)進(jìn)行簡(jiǎn)單處理,并寫到各種數(shù)據(jù)接受方(可定制)的能力。 Flume提供了從Console(控制臺(tái))、RPC(Thrift-RPC)、Text(文件)、Tail(UNIX tail)、Syslog(Syslog日志系統(tǒng),支持TCP和UDP等2種模式),exec(命令執(zhí)行)等數(shù)據(jù)源上收集數(shù)據(jù)的能力。
三.flume原理圖結(jié)構(gòu)
Flume邏輯上分三層架構(gòu):Agent,Collector,Storage。
Flume OG采用了多Master的方式。為了保證配置數(shù)據(jù)的一致性,F(xiàn)lume引入了ZooKeeper,用于保存配置數(shù)據(jù),ZooKeeper本身可保證配置數(shù)據(jù)的一致性和高可用,另外,在配置數(shù)據(jù)發(fā)生變化時(shí),ZooKeeper可以通知Flume Master節(jié)點(diǎn)。Flume Master間使用gossip協(xié)議同步數(shù)據(jù)。
FLUM OG 的特點(diǎn)是:
FLUM OG 有三種角色的節(jié)點(diǎn):代理節(jié)點(diǎn)(agent)、收集節(jié)點(diǎn)(collector)、主節(jié)點(diǎn)(master)。
agent 從各個(gè)數(shù)據(jù)源收集日志數(shù)據(jù),將收集到的數(shù)據(jù)集中到Collector,然后由收集節(jié)點(diǎn)匯總存入HDFS。master 負(fù)責(zé)管理agent,collector的活動(dòng)。
agent、collector都稱為node,node的角色根據(jù)配置的不同分為logical node(邏輯節(jié)點(diǎn))、physical node(物理節(jié)點(diǎn))。
agent、collector由source、sink組成,代表在當(dāng)前節(jié)點(diǎn)數(shù)據(jù)是從source傳送到sink。
Flume-NG架構(gòu)介紹
Flume NG最明顯的改動(dòng)就是取消了集中管理配置的 Master 和Zookeeper,變?yōu)橐粋€(gè)純粹的傳輸工具。Flume NG另一s個(gè)主要的不同點(diǎn)是讀入數(shù)據(jù)和寫出數(shù)據(jù)現(xiàn)在由不同的工作線程處理(稱為Runner)。在Flume NG 中,讀入線程同樣做寫出工作(除了故障重試)。如果寫出慢的話(不是完全失?。?,它將阻塞 Flume 接收數(shù)據(jù)的能力。這種異步的設(shè)計(jì)使讀入線程可以順暢的工作而無(wú)需關(guān)注下游的任何問題。
FLUME NG 的特點(diǎn)是:
NG 只有一種角色的節(jié)點(diǎn):代理節(jié)點(diǎn)(agent)。
沒有 collector、master節(jié)點(diǎn),這是核心組件最核心的變化。
去除了 physical nodes、logical nodes的概念和相關(guān)內(nèi)容。
agent 節(jié)點(diǎn)的組成也發(fā)生了變化。FlumeNG的 agent 由source、sink、Channel 組成。
四.flume三大組件介紹(agent,channel,sink)
Flume以Agent為最小的獨(dú)立運(yùn)行單位。Agent是Flume中產(chǎn)生數(shù)據(jù)流的地方,一個(gè)Agent就是一個(gè)JVM。單Agent由Source、Sink和Channel三大組件構(gòu)成
Source:完成對(duì)日志數(shù)據(jù)的收集,分成transtion和event打入到Channel之中。
Channel:主要提供一個(gè)隊(duì)列的功能,對(duì)source提供中的數(shù)據(jù)進(jìn)行簡(jiǎn)單的緩存。
Sink:取出Channel中的數(shù)據(jù),進(jìn)行相應(yīng)的存儲(chǔ)文件系統(tǒng),數(shù)據(jù)庫(kù),或者提交到遠(yuǎn)程服務(wù)器。
對(duì)現(xiàn)有程序改動(dòng)最小的使用方式是使用是直接讀取程序原來(lái)記錄的日志文件,基本可以實(shí)現(xiàn)無(wú)縫接入,不需要對(duì)現(xiàn)有程序進(jìn)行任何改動(dòng)。
2 Source
flume有許多類型的Source,見官網(wǎng)用戶手冊(cè):
http://flume.apache.org/FlumeUserGuide.html#flume-sources
歸納整理一下flume的 agent source列表如下
Source類型 | 說明 |
Avro Source | 支持Avro協(xié)議(實(shí)際上是Avro RPC),提供一個(gè)Avro的接口,需要往設(shè)置的地址和端口發(fā)送Avro消息,Source就能接收到,如:Log4j Appender通過Avro Source將消息發(fā)送到Agent |
Thrift Source | 支持Thrift協(xié)議,提供一個(gè)Thrift接口,類似Avro |
Exec Source | Source啟動(dòng)的時(shí)候會(huì)運(yùn)行一個(gè)設(shè)置的UNIX命令(比如cat file),該命令會(huì)不斷地往標(biāo)準(zhǔn)輸出(stdout)輸出數(shù)據(jù),這些數(shù)據(jù)就會(huì)被打包成Event,進(jìn)行處理 |
JMS Source | 從JMS系統(tǒng)(消息、主題)中讀取數(shù)據(jù),類似ActiveMQ |
Spooling Directory Source | 監(jiān)聽某個(gè)目錄,該目錄有新文件出現(xiàn)時(shí),把文件的內(nèi)容打包成Event,進(jìn)行處理 |
Netcat Source | 監(jiān)控某個(gè)端口,將流經(jīng)端口的每一個(gè)文本行數(shù)據(jù)作為Event輸入 |
Sequence Generator Source | 序列生成器數(shù)據(jù)源,生產(chǎn)序列數(shù)據(jù) |
Syslog Sources | 讀取syslog數(shù)據(jù),產(chǎn)生Event,支持UDP和TCP兩種協(xié)議 |
HTTP Source | 基于HTTP POST或GET方式的數(shù)據(jù)源,支持JSON、BLOB表示形式 |
Legacy Sources | 兼容老的Flume OG中Source(0.9.x版本) |
自定義Source | 使用者通過實(shí)現(xiàn)Flume提供的接口來(lái)定制滿足需求的Source。 |
對(duì)于直接讀取文件Source, 主要有兩種方式:
ü Exec source
可通過寫Unix command的方式組織數(shù)據(jù),最常用的就是tail -F [file]。
可以實(shí)現(xiàn)實(shí)時(shí)傳輸,但在flume不運(yùn)行和腳本錯(cuò)誤時(shí),會(huì)丟數(shù)據(jù),也不支持?jǐn)帱c(diǎn)續(xù)傳功能。因?yàn)闆]有記錄上次文件讀到的位置,從而沒辦法知道,下次再讀時(shí),從什么地方開始讀。特別是在日志文件一直在增加的時(shí)候。flume的source掛了。等f(wàn)lume的source再次開啟的這段時(shí)間內(nèi),增加的日志內(nèi)容,就沒辦法被source讀取到了。不過flume有一個(gè)execStream的擴(kuò)展,可以自己寫一個(gè)監(jiān)控日志增加情況,把增加的日志,通過自己寫的工具把增加的內(nèi)容,傳送給flume的node。再傳送給sink的node。要是能在tail類的source中能支持,在node掛掉這段時(shí)間的內(nèi)容,等下次node開啟后在繼續(xù)傳送,那就更完美了。
ü Spooling Directory Source
SpoolSource:是監(jiān)測(cè)配置的目錄下新增的文件,并將文件中的數(shù)據(jù)讀取出來(lái),可實(shí)現(xiàn)準(zhǔn)實(shí)時(shí)。需要注意兩點(diǎn):
1、拷貝到spool目錄下的文件不可以再打開編輯。
2、spool目錄下不可包含相應(yīng)的子目錄。在實(shí)際使用的過程中,可以結(jié)合log4j使用,使用log4j的時(shí)候,將log4j的文件分割機(jī)制設(shè)為1分鐘一次,將文件拷貝到spool的監(jiān)控目錄。log4j有一個(gè)TimeRolling的插件,可以把log4j分割的文件到spool目錄?;緦?shí)現(xiàn)了實(shí)時(shí)的監(jiān)控。Flume在傳完文件之后,將會(huì)修改文件的后綴,變?yōu)?COMPLETED(后綴也可以在配置文件中靈活指定)
注:ExecSource,SpoolSource對(duì)比
ExecSource可以實(shí)現(xiàn)對(duì)日志的實(shí)時(shí)收集,但是存在Flume不運(yùn)行或者指令執(zhí)行出錯(cuò)時(shí),將無(wú)法收集到日志數(shù)據(jù),無(wú)法何證日志數(shù)據(jù)的完整性。SpoolSource雖然無(wú)法實(shí)現(xiàn)實(shí)時(shí)的收集數(shù)據(jù),但是可以使用以分鐘的方式分割文件,趨近于實(shí)時(shí)。如果應(yīng)用無(wú)法實(shí)現(xiàn)以分鐘切割日志文件的話,可以兩種收集方式結(jié)合使用。
2 Channel
當(dāng)前有幾個(gè)Channel 可供選擇,分別是 Memory Channel, JDBC Channel , File Channel,Psuedo Transaction Channel。比較常見的是前三種Channel。
v Memory Channel 可以實(shí)現(xiàn)高速的吞吐,但是無(wú)法保證數(shù)據(jù)的完整性。
v Memory Recover Channel 在官方文檔的建議上已經(jīng)建義使用File Channel來(lái)替換。
v File Channel保證數(shù)據(jù)的完整性與一致性。在具體配置File Channel時(shí),建議File Channel設(shè)置的目錄和程序日志文件保存的目錄設(shè)成不同的磁盤,以便提高效率。
File Channel 是一個(gè)持久化的隧道(Channel),它持久化所有的事件,并將其存儲(chǔ)到磁盤中。因此,即使 Java 虛擬機(jī)當(dāng)?shù)?,或者操作系統(tǒng)崩潰或重啟,再或者事件沒有在管道中成功地傳遞到下一個(gè)代理(agent),這一切都不會(huì)造成數(shù)據(jù)丟失。MemoryChannel 是一個(gè)不穩(wěn)定的隧道,其原因是由于它在內(nèi)存中存儲(chǔ)所有事件。如果Java 進(jìn)程死掉,任何存儲(chǔ)在內(nèi)存的事件將會(huì)丟失。另外,內(nèi)存的空間收到RAM大小的限制,而FileChannel 這方面是它的優(yōu)勢(shì),只要磁盤空間足夠,它就可以將所有事件數(shù)據(jù)存儲(chǔ)到磁盤上。
FlumeChannel 支持的類型:
Channel類型 | 說明 |
MemoryChannel | Event數(shù)據(jù)存儲(chǔ)在內(nèi)存中 |
JDBCChannel | Event數(shù)據(jù)存儲(chǔ)在持久化存儲(chǔ)中,當(dāng)前FlumeChannel內(nèi)置支持Derby |
FileChannel | Event數(shù)據(jù)存儲(chǔ)在磁盤文件中 |
Spillable MemoryChannel | Event數(shù)據(jù)存儲(chǔ)在內(nèi)存中和磁盤上,當(dāng)內(nèi)存隊(duì)列滿了,會(huì)持久化到磁盤文件(當(dāng)前試驗(yàn)性的,不建議生產(chǎn)環(huán)境使用) |
Pseudo TransactionChannel | 測(cè)試用途 |
CustomChannel | 自定義Channel實(shí)現(xiàn) |
2 Sink
Sink在設(shè)置存儲(chǔ)數(shù)據(jù)時(shí),可以向文件系統(tǒng)中,數(shù)據(jù)庫(kù)中,Hadoop中儲(chǔ)數(shù)據(jù),在日志數(shù)據(jù)較少時(shí),可以將數(shù)據(jù)存儲(chǔ)在文件系統(tǒng)中,并且設(shè)定一定的時(shí)間間隔保存數(shù)據(jù)。在日志數(shù)據(jù)較多時(shí),可以將相應(yīng)的日志數(shù)據(jù)存儲(chǔ)到Hadoop中,便于日后進(jìn)行相應(yīng)的數(shù)據(jù)分析。
Flume Sink支持的類型
Sink類型 | 說明 |
HDFS Sink | 數(shù)據(jù)寫入HDFS |
Logger Sink | 數(shù)據(jù)寫入日志文件 |
Avro Sink | 數(shù)據(jù)被轉(zhuǎn)換成Avro Event,然后發(fā)送到配置的RPC端口上 |
Thrift Sink | 數(shù)據(jù)被轉(zhuǎn)換成Thrift Event,然后發(fā)送到配置的RPC端口上 |
IRC Sink | 數(shù)據(jù)在IRC上進(jìn)行回放 |
File Roll Sink | 存儲(chǔ)數(shù)據(jù)到本地文件系統(tǒng) |
Null Sink | 丟棄到所有數(shù)據(jù) |
HBase Sink | 數(shù)據(jù)寫入HBase數(shù)據(jù)庫(kù) |
Morphline Solr Sink | 數(shù)據(jù)發(fā)送到Solr搜索服務(wù)器(集群) |
ElasticSearch Sink | 數(shù)據(jù)發(fā)送到Elastic Search搜索服務(wù)器(集群) |
Kite Dataset Sink | 寫數(shù)據(jù)到Kite Dataset,試驗(yàn)性質(zhì)的 |
Custom Sink | 自定義Sink實(shí)現(xiàn) |
Flume提供了大量?jī)?nèi)置的Source、Channel和Sink類型。不同類型的Source,Channel和Sink可以自由組合。組合方式基于用戶設(shè)置的配置文件,非常靈活。比如:Channel可以把事件暫存在內(nèi)存里,也可以持久化到本地硬盤上。Sink可以把日志寫入HDFS, HBase,甚至是另外一個(gè)Source等等。Flume支持用戶建立多級(jí)流,也就是說,多個(gè)Agent可以協(xié)同工作,并且支持Fan-in、Fan-out、Contextual Routing、Backup Routes
Flume NG中已經(jīng)沒有Collector的概念了,Collector的作用是將多個(gè)Agent的數(shù)據(jù)匯總后,加載到Storage中。
Storage是存儲(chǔ)系統(tǒng),可以是一個(gè)普通File,也可以是HDFS,HIVE,HBase等。
針對(duì)于OG版本。
Master是管理協(xié)調(diào)Agent和Collector的配置等信息,是Flume集群的控制器。
在Flume中,最重要的抽象是data flow(數(shù)據(jù)流),data flow描述了數(shù)據(jù)從產(chǎn)生,傳輸、處理并最終寫入目標(biāo)的一條路徑
對(duì)于Agent數(shù)據(jù)流配置就是從哪得到數(shù)據(jù),把數(shù)據(jù)發(fā)送到哪個(gè)Collector。
對(duì)于Collector是接收Agent發(fā)過來(lái)的數(shù)據(jù),把數(shù)據(jù)發(fā)送到指定的目標(biāo)機(jī)器上。
五.flume特性介紹
(1) 可靠性
當(dāng)節(jié)點(diǎn)出現(xiàn)故障時(shí),日志能夠被傳送到其他節(jié)點(diǎn)上而不會(huì)丟失。Flume提供了三種級(jí)別的可靠性保障,從強(qiáng)到弱依次分別為:
end-to-end(收到數(shù)據(jù)agent首先將event寫到磁盤上,當(dāng)數(shù)據(jù)傳送成功后,再刪除;如果數(shù)據(jù)發(fā)送失敗,可以重新發(fā)送。)
Store on failure(這也是scribe采用的策略,當(dāng)數(shù)據(jù)接收方crash時(shí),將數(shù)據(jù)寫到本地,待恢復(fù)后,繼續(xù)發(fā)送)
Best effort(數(shù)據(jù)發(fā)送到接收方后,不會(huì)進(jìn)行確認(rèn))。
(2) 可擴(kuò)展性
Flume采用了三層架構(gòu),分別為agent,collector和storage,每一層均可以水平擴(kuò)展。其中,所有agent和collector由master統(tǒng)一管理,這使得系統(tǒng)容易監(jiān)控和維護(hù),且master允許有多個(gè)(使用ZooKeeper進(jìn)行管理和負(fù)載均衡),這就避免了單點(diǎn)故障問題。
(3) 可管理性
所有agent和colletor由master統(tǒng)一管理,這使得系統(tǒng)便于維護(hù)。多master情況,F(xiàn)lume利用ZooKeeper和gossip,保證動(dòng)態(tài)配置數(shù)據(jù)的一致性。用戶可以在master上查看各個(gè)數(shù)據(jù)源或者數(shù)據(jù)流執(zhí)行情況,且可以對(duì)各個(gè)數(shù)據(jù)源配置和動(dòng)態(tài)加載。Flume提供了web和shell script command兩種形式對(duì)數(shù)據(jù)流進(jìn)行管理。
(4) 功能可擴(kuò)展性
用戶可以根據(jù)需要添加自己的agent,collector或者storage。此外,F(xiàn)lume自帶了很多組件,包括各種agent(file,syslog等),collector和storage(file,HDFS等)。
學(xué)習(xí)總結(jié):
Flume是一個(gè)分布式、可靠、和高可用的海量日志采集、聚合和傳輸?shù)南到y(tǒng)。支持在日志系統(tǒng)中定制各類數(shù)據(jù)發(fā)送方,用于收集數(shù)據(jù);同時(shí),F(xiàn)lume提供對(duì)數(shù)據(jù)進(jìn)行簡(jiǎn)單處理,并寫到各種數(shù)據(jù)接受方(比如文本、HDFS、Hbase等)的能力。
Flume的數(shù)據(jù)流由事件(Event)貫穿始終。事件是Flume的基本數(shù)據(jù)單位,它攜帶日志數(shù)據(jù)(字節(jié)數(shù)組形式)并且攜帶有頭信息,這些Event由Agent外部的Source生成,當(dāng)Source捕獲事件后會(huì)進(jìn)行特定的格式化,然后Source會(huì)把事件推入(單個(gè)或多個(gè))Channel中。你可以把Channel看作是一個(gè)緩沖區(qū),它將保存事件直到Sink處理完該事件。Sink負(fù)責(zé)持久化日志或者把事件推向另一個(gè)Source。
當(dāng)節(jié)點(diǎn)出現(xiàn)故障時(shí),日志能夠被傳送到其他節(jié)點(diǎn)上而不會(huì)丟失。Flume提供了三種級(jí)別的可靠性保障,從強(qiáng)到弱依次分別為:
end-to-end:收到數(shù)據(jù)agent首先將event寫到磁盤上,當(dāng)數(shù)據(jù)傳送成功后,再刪除;如果數(shù)據(jù)發(fā)送失敗,可以重新發(fā)送
Store on failure:這也是scribe采用的策略,當(dāng)數(shù)據(jù)接收方crash時(shí),將數(shù)據(jù)寫到本地,待恢復(fù)后,繼續(xù)發(fā)送
Best effort:數(shù)據(jù)發(fā)送到接收方后,不會(huì)進(jìn)行確認(rèn)。
-------------------------------------++++++++++++++++-------------------------------
一. flume環(huán)境搭建安裝部分介紹
flume官網(wǎng): http://flume.apache.org/download.html
建議大家使用1.6版本的,1.7版本目前存在一些小問題需要解決。后續(xù)官方可能會(huì)修復(fù)。
集群中設(shè)置3個(gè)節(jié)點(diǎn),每臺(tái)都安裝flume.
下載后解壓: tar -zxvf apache-flume-1.7.0-bin.tar.gz -C /opt/modules/flume
本次默認(rèn)已經(jīng)安裝hadoop和jdk。所以忽略安裝步驟。
修改配置文件: cp flume-env.sh.template flume-env.sh
vim flume-env.sh
export JAVA_HOME=/usr/local/java_1.7.0_25
設(shè)置系統(tǒng)環(huán)境變量:
export FLUME_HOME=/opt/modules/flume
export PATH=$PATH:$FLUME_HOME/bin:
保存退出后。source /etc/profile 立即生效。
測(cè)試: 在終端輸入 flume-ng version
出現(xiàn)以上提示說明flume搭建成功。
可以把flume分發(fā)到其他節(jié)點(diǎn)。
scp -r /opt/modules/flume/* root@slave1:/opt/modlues/flume
scp -r /opt/modules/flume/* root@slave2:/opt/modlues/flume
二. 采集數(shù)據(jù)測(cè)試。
1) Avro
Avro可以發(fā)送一個(gè)給定的文件給Flume,Avro源使用AVRO RPC機(jī)制。
創(chuàng)建agent配置文件
# > vi /opt/modules/flume/conf/avro.conf
添加以下內(nèi)容:
a1.sources = r1
a1.sinks = k1
a1.channels = c1
# Describe configure the source
a1.sources.r1.type = avro
a1.sources.r1.bind = 0.0.0.0
a1.sources.r1.port = 4141
# Describe the sink
a1.sinks.k1.type = logger
# Use a channel which buffers events in memory
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100
# Bind the source and sink to the channel
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
對(duì)以上內(nèi)容解釋:
指定名稱:a1是我們要啟動(dòng)的Agent名字
a1.sources = r1命名Agent的sources為r1
a1.sinks = k1命名Agent的sinks為k1
a1.channels = c1命名Agent的channels為c1
# Describe configure the source
a1.sources.r1.type = avro指定r1的類型為AVRO
a1.sources.r1.bind = 0.0.0.0 將Source與IP地址綁定(這里指本機(jī))
a1.sources.r1.port = 4141指定通訊端口為4141
# Describe the sink
a1.sinks.k1.type = logger指定k1的類型為L(zhǎng)ogger(不產(chǎn)生實(shí)體文件,只在控制臺(tái)顯示)
# Use a channel which buffers events in memory
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100
配置說明
指定Channel的類型為Memory
設(shè)置Channel的最大存儲(chǔ)event數(shù)量為1000
每次最大可以source中拿到或者送到sink中的event數(shù)量也是100
這里還可以設(shè)置Channel的其他屬性:
a1.channels.c1.keep-alive=1000event添加到通道中或者移出的允許時(shí)間(秒)
a1.channels.c1.byteCapacity = 800000event的字節(jié)量的限制,只包括eventbody
a1.channels.c1.byteCapacityBufferPercentage = 20
event的緩存比例為20%(800000的20%),即event的最大字節(jié)量為800000*120%
# Bind the source and sink to the channel
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
將source、sink分別與Channel c1綁定
啟動(dòng)flume agent a1
# > flume-ng agent -c . -f /home/bigdata/flume/conf/avro.conf -n a1 -Dflume.root.logger=INFO,console
-c:使用配置文件所在目錄(這里指默認(rèn)路徑,即$FLUME_HOME/conf)
-f:flume定義組件的配置文件
-n:?jiǎn)?dòng)Agent的名稱,該名稱在組件配置文件中定義
-Dflume.root.logger:flume自身運(yùn)行狀態(tài)的日志,按需配置,詳細(xì)信息,控制臺(tái)打印
在節(jié)點(diǎn)2啟動(dòng)flume 進(jìn)程
flume-ng agent -c . -f /opt/modules/flume/conf/avro.conf -n a1 -Dflume.root.logger=INFO,console //啟動(dòng)命令
創(chuàng)建文件發(fā)送過去
echo "china 51cto">>/home/avro_log
flume-ng avro-client -c . -H master -p 4141 -F /home/avro_log
注:Flume框架對(duì)Hadoop和zookeeper的依賴只是在jar包上,并不要求flume啟動(dòng)時(shí)必須將Hadoop和zookeeper服務(wù)也啟動(dòng)。
就先講解一個(gè)模式吧。其他的數(shù)據(jù)采集方式后續(xù)分享。
分享名稱:大數(shù)據(jù)flume日志采集系統(tǒng)詳解
文章轉(zhuǎn)載:http://aaarwkj.com/article48/gjceep.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗(yàn)、品牌網(wǎng)站設(shè)計(jì)、建站公司、企業(yè)建站、、網(wǎng)站排名
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)