這篇文章主要介紹“flume的功能是什么”,在日常操作中,相信很多人在flume的功能是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”flume的功能是什么”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!
站在用戶的角度思考問題,與客戶深入溝通,找到藍(lán)田網(wǎng)站設(shè)計與藍(lán)田網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都網(wǎng)站制作、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、主機(jī)域名、虛擬空間、企業(yè)郵箱。業(yè)務(wù)覆蓋藍(lán)田地區(qū)。
flume自帶寫hdfs的組建 hdfs sink,功能和性能都不錯,就是有些缺點不好克服。
1,收集的日志一直在寫hadoop,雖然可以訂一個規(guī)則間斷寫hadoop,例如設(shè)置batchSize等,但在大壓力下,幾乎可以認(rèn)為是每時每刻都在寫hafs.
2,容錯性差,日志收集的過程中,hadoop出現(xiàn)錯誤(例如,hdfs丟塊)等問題,就會崩潰。
3,還有4,5等等,就是hdfs sink 有些問題了,不寫了。
這里寫一個先收集日志到本地,形成文件,然后把這個文件上載到遠(yuǎn)程的hadoop上。
這樣做有好處,
1,日志收聚到本地文件。在收集日志過程中出現(xiàn)的hadoop錯誤、異常等等文件,在收集日志成文件的工程中不存在。
2,上傳到hadoop采用文件的方式,使用hadoop自己的fs API,可以有很好的效率。
3,很好的容錯機(jī)制,上傳文件的工程中出現(xiàn)hadoop問題,導(dǎo)致文件上傳失敗,沒關(guān)系,下一個工作任務(wù)再上傳就好了,只有上傳成功才刪除本地文件。
4,還有好多了,這里不寫了。
大致的架構(gòu)
這里做假單的解釋:
LocalToHDFSSink.java 就是flume sink的啟動類,在配置文件中要做配置的,a1.sinks.k1.type = com.fone.flume.sink.localFile.LocalToHDFSSink
其中如下代碼:
@Overridepublic void start() { ...... CronTriggerFileHDFS cronTriggerFileHDFS = new CronTriggerFileHDFS(); LOG.info("定時器設(shè)置,cron expression :{} .", cronExpression);try { cronTriggerFileHDFS.run(filePath, hdfsPath, cronExpression, isKeep); } catch (Exception e) { LOG.warn("向hdfs寫文件的定時器錯誤,錯誤:{}.", e); } sinkCounter.start(); ...... }
@Overridepublic void stop() { ......if (cronTriggerFileHDFS != null) {try { cronTriggerFileHDFS.shutdown(); } catch (Exception e) {// TODO Auto-generated catch block e.printStackTrace(); } } ...... }
開關(guān)定時器。
定時器設(shè)定:a1.sinks.k1.local.cronExpression = 0 */15 * * * ? 按照quartZ的設(shè)置要求進(jìn)行設(shè)置,不了解者去看quartZ cronTigger設(shè)置。
LocalToHDFSSink的文件存儲是這樣的,本地文件給定一個初始的目錄a1.sinks.k1.local.directory,日志在這個初始的目錄存儲,動態(tài)的目錄結(jié)構(gòu)通過a1.sinks.k1.local.middleDir 設(shè)置。
遠(yuǎn)程的hadoop給定一個初始的目錄a1.sinks.k1.hdfs.directory ,其它的目錄結(jié)構(gòu)和文件與本地的設(shè)置完全相同,也就是把a(bǔ)1.sinks.k1.local.directory目錄下的所有內(nèi)容,復(fù)制到a1.sinks.k1.hdfs.directory 完成工作。
日志收集文件在本地產(chǎn)生,沒有完成的時候,帶文件名后綴.tmp,完成后去掉.tmp,以此作為是否現(xiàn)在執(zhí)行復(fù)制到hadoop的標(biāo)志。
其余的看代碼吧。
到此,關(guān)于“flume的功能是什么”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
網(wǎng)站名稱:flume的功能是什么
本文來源:http://weahome.cn/article/jseddj.html