1.8-1.10 大数据仓库的数据收集架构及监控日志目录日志数据,实时抽取之hdfs系统上...
一、數據倉庫架構
二、flume收集數據存儲到hdfs
文檔:http://flume.apache.org/releases/content/1.9.0/FlumeUserGuide.html#hdfs-sink三、監控日志目錄日志數據,實時抽取之hdfs系統上-實驗
1、Source:Spooling Directory
在使用exec來監聽數據源雖然實時性較高,但是可靠性較差,當source程序運行異常或者Linux命令中斷都會造成數據丟失, 在恢復正常運行之前數據的完整性無法得到保障。Spooling Directory Paths通過監聽某個目錄下的新增文件,并將文件的內容讀取出來,實現日志信息的收集。實際生產中會結合log4j來使用。 被傳輸結束的文件會修改后綴名,添加.COMPLETED后綴(可修改)。2、
監控目錄 >日志目錄,抽取完整的日志文件,寫的日志文件不抽取使用FileChannel >本地文件系統緩沖,比內存安全性更高數據存儲HDFS >存儲對應hive表的目錄或者hdfs目錄3、配置flume agent
##agent 配置文件:flume-app.conf 如下:# The configuration file needs to define the sources,
# the channels and the sinks.
####define agent
a3.sources = r3
a3.channels = c3
a3.sinks = k3
###define sources
a3.sources.r3.type = spooldir
a3.sources.r3.spoolDir = /opt/cdh-5.3.6/flume-1.5.0-cdh5.3.6/spoollogs
a3.sources.r3.ignorePattern = ^(.)*\.log$
a3.sources.r3.fileSuffix = .delete
###define channel
a3.channels.c3.type = file
a3.channels.c3.checkpointDir = /opt/cdh-5.3.6/flume-1.5.0-cdh5.3.6/filechannel/checkpoint
a3.channels.c3.dataDirs = /opt/cdh-5.3.6/flume-1.5.0-cdh5.3.6/filechannel/data
###define sink
a3.sinks.k3.type = hdfs
a3.sinks.k3.hdfs.path = hdfs://hadoop-senior.ibeifeng.com:8020/user/root/flume/splogs/
a3.sinks.k3.hdfs.fileType = DataStream
a3.sinks.k3.hdfs.writeFormat = Text
a3.sinks.k3.hdfs.batchSize = 10
###bind the soures and sink to the channel
a3.sources.r3.channels = c3
a3.sinks.k3.channel = c3
對agent配置文件的解釋:
##define sources字段: type : spooldir //通過監聽某個目錄下的新增文件,并將文件的內容讀取出來,實現日志信息的收集 spoolDir //從哪個目錄中讀取數據 ignorePattern //排除哪些文件,用正則匹配 fileSuffix //給讀取完的文件,加上一個后綴名##define channel type = file //channel存到文件中,而不是內存,這樣不易丟失數據 checkpointDir //存儲檢查點文件的存放目錄 dataDirs //逗號分隔的目錄列表,用于存儲日志文件。在單獨的磁盤上使用多個目錄可以提高文件通道的性能##define sink type = hdfs //抽取完的數據存到hdfs上 hdfs.path //在hdfs上的存儲路徑 hdfs.fileType //hdfs上的存儲的文件格式,DataStream不會壓縮輸出文件 writeFormat //序列文件記錄的格式,應該設置為Text,否則這些文件不能被Apache Impala(孵化)或Apache Hive讀取 batchSize //number of events written to file before it is flushed to HDFS4、運行agent
##先準備一些數據 mkdir -p /opt/cdh-5.3.6/flume-1.5.0-cdh5.3.6/spoollogs #創建待抽取數據存放目錄[root@hadoop-senior spoollogs]# ls #準備三個數據文件 emp.txt hivef.log hivef.sqlmkdir -p /opt/cdh-5.3.6/flume-1.5.0-cdh5.3.6/filechannel/{checkpoint,data} #創建channel數據存放目錄bin/hdfs dfs -mkdir -p /user/root/flume/splogs/ #在hdfs上創建此目錄##運行agent bin/flume-ng agent \ -c conf \ -n a3 \ -f conf/flume-app.conf \ -Dflume.root.logger=DEBUG,console##此時查看/opt/cdh-5.3.6/flume-1.5.0-cdh5.3.6/spoollogs中的數據,emp.txt hivef.sql后綴加上了.delete ##hivef.log沒有加后綴,因為我們排除了.log的文件 [root@hadoop-senior spoollogs]# ls emp.txt.delete hivef.log hivef.sql.delete##查看hdfs上有沒有數據,已經有了 [root@hadoop-senior hadoop-2.5.0-cdh5.3.6]# bin/hdfs dfs -ls -R /user/root/flume/splogs/ -rw-r--r-- 3 root supergroup 463 2019-05-09 09:37 /user/root/flume/splogs/FlumeData.1557365835585 -rw-r--r-- 3 root supergroup 228 2019-05-09 09:37 /user/root/flume/splogs/FlumeData.1557365835586轉載于:https://www.cnblogs.com/weiyiming007/p/10837175.html
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的1.8-1.10 大数据仓库的数据收集架构及监控日志目录日志数据,实时抽取之hdfs系统上...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: zabbix--分布式监控proxy
- 下一篇: java信息管理系统总结_java实现科