實訓14 用Flume采集數(shù)據(jù)到HDFS_第1頁
實訓14 用Flume采集數(shù)據(jù)到HDFS_第2頁
實訓14 用Flume采集數(shù)據(jù)到HDFS_第3頁
實訓14 用Flume采集數(shù)據(jù)到HDFS_第4頁
實訓14 用Flume采集數(shù)據(jù)到HDFS_第5頁
全文預覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

實訓6.2用Flume采集數(shù)據(jù)到HDFS1.實訓目的加深對Flume結(jié)構(gòu)和概念的理解;熟悉Flume的使用。2.實訓內(nèi)容通過本實訓,了解Flume的系統(tǒng)架構(gòu),熟悉Flume與HDFS的結(jié)合流程,相關(guān)配置的意義。3.實訓要求以小組為單元進行實訓,每小組5人,小組自協(xié)商選一位組長,由組長安排和分配實訓任務,具體參考實訓操作環(huán)節(jié)。小組成員需要確保Flume與Hadoop環(huán)境部署正確,對Flume三大組件有所認識。4.準備知識(1)Flume的版本說明Flume有FlumeOG與FlumeNG兩種版本,我們的實訓是使用NG這個版本。對于FlumeOG,可以說他是一個分布式日志收集系統(tǒng),有Mater概念,依賴于ZooKeeper,Agent用于采集數(shù)據(jù),Agent是Flume中產(chǎn)生數(shù)據(jù)流的地方,同時,Agent會將產(chǎn)生的數(shù)據(jù)流傳輸?shù)紺ollector。對應的,Collector用于對數(shù)據(jù)進行聚合,往往會產(chǎn)生一個更大的流。而對于FlumeNG,它摒棄了Master和ZooKeeper,Collector也沒有了,Web配置臺也沒有了,只剩下Source,Sink和Channel,此時一個Agent的概念包括Source、Channel和Sink,完全由一個分布式系統(tǒng)變成了傳輸工具。不同機器之間的數(shù)據(jù)傳輸不再是OG那樣由Agent對接Collector,而是由一個Agent端的Sink流向另一個Agent的Source。(2)Flume組件之Source①NetCatSource:綁定的端口(TCP、UDP),將流經(jīng)端口的每一個文本行數(shù)據(jù)作為Event輸入;type:Source的類型必須是netcat。bind:要監(jiān)聽的(本機的)主機名或者IP。此監(jiān)聽不是過濾發(fā)送方。一臺電腦不是說只有一個IP。有多網(wǎng)卡的電腦,對應多個IP。port:綁定的本地的端口。②AvroSource:監(jiān)聽一個Avro服務端口,采集Avro數(shù)據(jù)序列化后的數(shù)據(jù);type:Avrosource的類型必須是avro。bind:要監(jiān)聽的(本機的)主機名或者ip,此監(jiān)聽不是過濾發(fā)送方,一臺電腦不是說只有一個IP。有多網(wǎng)卡的電腦,對應多個IP。port:綁定的本地的端口。③ExecSource:于Unix的command在標準輸出上采集數(shù)據(jù)。type:Source的類型必須是mand:要執(zhí)行命令。④SpoolingDirectorySource:監(jiān)聽一個文件夾里的文件的新增,如果有則采集作為Source。type:Source的類型必須是spooldir。spoolDir:監(jiān)聽的文件夾【提前創(chuàng)建目錄】。fileSuffix:上傳完畢后文件的重命名后綴,默認為.COMPLETED。deletePolicy:上傳后的文件的刪除策略never和immediate,默認為never。fileHeader:是否要加上該文件的絕對路徑在header里,默認是false。basenameHeader:是否要加上該文件的名稱在header里,默認是false。(3)Flume組件之Channel①MemoryChannel使用內(nèi)存作為數(shù)據(jù)的存儲。type:channel的類型必須為memory。capacity:channel中的最大Event數(shù)目。transactionCapacity:channel中允許事務的最大event數(shù)目。②FileChannel使用文件作為數(shù)據(jù)的存儲。type:channel的類型必須為file。checkpointDir:檢查點的數(shù)據(jù)存儲目錄【提前創(chuàng)建目錄】。dataDirs:數(shù)據(jù)的存儲目錄【提前創(chuàng)建目錄】。transactionCapacity:channel中允許事務的最大Event數(shù)目。③SpillableMemoryChannel使用內(nèi)存作為channel超過了閥值就存在文件中type:channel的類型必須為SPILLABLEMEMORY。memoryCapacity:內(nèi)存的容量event數(shù)。overflowCapacity:數(shù)據(jù)存到文件的event閥值數(shù)。checkpointDir:檢查點的數(shù)據(jù)存儲目錄。dataDirs:數(shù)據(jù)的存儲目錄。(4)Flume組件之Sink①HDFSSink:將數(shù)據(jù)傳輸?shù)紿DFS集群中。type:Sink的類型必須是HDFS。hdfs.path:HDFS的上傳路徑。hdfs.filePrefix:HDFS文件的前綴,默認是:FlumeData。hdfs.rollInterval:間隔多久產(chǎn)生新文件,默認是30秒,0表示不以時間間隔為準。hdfs.rollSize:文件到達多大再產(chǎn)生一個新文件,默認是1024(bytes),0表示不以文件大小為準。hdfs.rollCount:event達到多大再產(chǎn)生一個新文件,默認是10(個),0表示不以event數(shù)目為準。hdfs.batchSize:每次往HDFS里提交多少個Event,默認是100。hdfs.fileType:HDFS文件的格式主要包括:SequenceFile、DataStream、CompressedStream,如果使用了CompressedStream就要設(shè)置壓縮方式。hdfs.codeC:壓縮方式:gzip,bzip2,lzo,lzop,snappy。注:%{host}可以使用header的Key,以及%Y%m%d來表示時間,但關(guān)于時間的表示需要在header里有timestamp這個Key。②LoggerSink將數(shù)據(jù)作為日志處理(根據(jù)flume中的設(shè)置的日志方式來顯示)要在控制臺顯示在運行Agent的時候加入:-Dflume.root.logger=INFO,console。type:sink的類型必須是logger。maxBytesToLog:打印body的最長的字節(jié)數(shù)默認是16。③AvroSink:數(shù)據(jù)被轉(zhuǎn)換成AvroEvent,然后發(fā)送到指定的服務端口上。type:Sink的類型必須是avro。hostname:指定發(fā)送數(shù)據(jù)的主機名或者ip。port:指定發(fā)送數(shù)據(jù)的端口。④FileRollSink:數(shù)據(jù)發(fā)送到本地文件。type:Sink的類型必須是file_roll。sink.directory:存儲文件的目錄【提前創(chuàng)建目錄】。batchSize:一次發(fā)送多少個event。默認是100。sink.rollInterval:多久產(chǎn)生一個新文件,默認是30秒。0為不產(chǎn)生新文件(即使沒有數(shù)據(jù)也會產(chǎn)生文件)。5.實訓步驟(1)Flume數(shù)據(jù)到HDFS①編寫conf文件編輯hdfs.conf:cd/opt/software/apache-flume-1.10.1-bin/confvimhdfs.conf#1、定義agent中各組件名稱agent1.sources=source1agent1.sinks=sink1agent1.channels=channel1#2、source1組件的配置參數(shù)agent1.sources.source1.type=exec#手動生成/home/source.log手動生成mand=tail-n+0-F/home/source.log#3、channel1的配置參數(shù)agent1.channels.channel1.type=memoryagent1.channels.channel1.capacity=1000agent1.channels.channel1.transactionCapactiy=100#4、sink1的配置參數(shù)agent1.sinks.sink1.type=hdfsagent1.sinks.sink1.hdfs.path=hdfs://master:8020/flume/dataagent1.sinks.sink1.hdfs.fileType=DataStream#時間類型agent1.sinks.sink1.hdfs.useLocalTimeStamp=trueagent1.sinks.sink1.hdfs.writeFormat=TEXT#文件前綴agent1.sinks.sink1.hdfs.filePrefix=%Y-%m-%d-%H-%M#60秒滾動生成一個文件agent1.sinks.sink1.hdfs.rollInterval=60#HDFS塊副本數(shù)agent1.sinks.sink1.hdfs.minBlockReplicas=1#不根據(jù)文件大小滾動文件agent1.sinks.sink1.hdfs.rollSize=0#不根據(jù)消息條數(shù)滾動文件agent1.sinks.sink1.hdfs.rollCount=0#不根據(jù)多長時間未收到消息滾動文件agent1.sinks.sink1.hdfs.idleTimeout=0#5、將source和sink綁定到channelagent1.sources.source1.channels=channel1agent1.sinks.sink1.channel=channel1②新建HDFS上flume/data文件夾:hdfsdfs-mkdir-p/flume/data③拷貝Hadoop的jar包到$FLUME_HOME/lib下:cd/opt/software/hadoop-3.3.4/share/hadoop/commoncp-r*.jarlib/*.jar$FLUME_HOME/lib/拷貝過程中,如遇相同jar包提示覆蓋,直接按回車即可。(2)執(zhí)行Flume①啟動Flume(啟動前需要先啟動HDFS),啟動之后阻塞狀態(tài),并非卡死。如圖6-26所示。flume-ngagent--conf$FLUME_HOME/conf--conf-file$FLUME_HOME/conf/hdfs.conf--nameagent1-Dflume.root.logger=DEBUG,console圖6-26Flume啟動狀態(tài)(3)測試與查看結(jié)果①新打開一個終端,創(chuàng)建/home/source.log并寫入文件,操作如圖6-27所示。touch/home/source.logechohadoop>>/home/source.logechohello>>/home/source.logechohi>>/home/source.log圖6-27創(chuàng)建文件并寫入內(nèi)容②查看HDFS上的采集結(jié)果,可以看到已經(jīng)生成了文件。如圖6-28所示。hdfsdfs-ls/flume/data圖6-28查看data文件夾的文件說明:因為文件名的生成策略原因,每次文件名會不同。再稍等片刻,則可以發(fā)現(xiàn),臨時文件已經(jīng)變成了非臨時文件,即沒有了文件后綴tmp。如圖6-29所示。圖6-29臨時文件名變化后示意圖此時,繼續(xù)查看此

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論