Flume實時監控Hive輸出的日誌信息並且讀取吧到Hdfs文件系統

爲了方便理解Flume如何實時監控Hivelog日誌信息到Hdfs上面,先貼一張圖供大家理解。

1,首先創建複合條件的flume配置文件,然後開啓監控功能,flume會實時的監控Hive的日誌文件,不斷讀取更新的日誌文件到Hdfs文件系統。

第一步:既然Flume想要輸出數據到Hdfs文件系統,必然會依賴Hadoop相關的jar包,所以我們首先把Flume依賴的jar包導入flume安裝目錄下的lib文件夾內,下面是依賴的jar包文件。

commons-configuration-1.6.jar、
hadoop-auth-2.7.2.jar、
hadoop-common-2.7.2.jar、
hadoop-hdfs-2.7.2.jar、
commons-io-2.4.jar、
htrace-core-3.1.0-incubating.jar
拷貝到/opt/module/flume/lib文件夾下

第二步:創建配置文件,此處創建的配置文件儘量在Flume下面建立一個文件夾放進去,應爲後面需要用到創建的配置文件夾路徑,以防丟失。

Notes:注:要想讀取Linux系統中的文件,就得按照Linux命令的規則執行命令。由於Hive日誌在Linux系統中所以讀取文件的類型選擇:exec即execute執行的意思。表示執行Linux命令來讀取文件。

# Name the components on this agent
a2.sources = r2
a2.sinks = k2
a2.channels = c2

# Describe/configure the source
a2.sources.r2.type = exec//表明執行linusx命令來讀取文件
a2.sources.r2.command = tail -F /opt/module/hive/logs/hive.log//此處是hive日誌文件的路徑
a2.sources.r2.shell = /bin/bash -c

# Describe the sink
a2.sinks.k2.type = hdfs
a2.sinks.k2.hdfs.path = hdfs://hadoop102:9000/flume/%Y%m%d/%H
#上傳文件的前綴
a2.sinks.k2.hdfs.filePrefix = logs-
#是否按照時間滾動文件夾
a2.sinks.k2.hdfs.round = true
#多少時間單位創建一個新的文件夾
a2.sinks.k2.hdfs.roundValue = 1
#重新定義時間單位
a2.sinks.k2.hdfs.roundUnit = hour
#是否使用本地時間戳
a2.sinks.k2.hdfs.useLocalTimeStamp = true
#積攢多少個Event才flush到HDFS一次
a2.sinks.k2.hdfs.batchSize = 1000
#設置文件類型,可支持壓縮
a2.sinks.k2.hdfs.fileType = DataStream
#多久生成一個新的文件
a2.sinks.k2.hdfs.rollInterval = 60
#設置每個文件的滾動大小
a2.sinks.k2.hdfs.rollSize = 134217700
#文件的滾動與Event數量無關
a2.sinks.k2.hdfs.rollCount = 0

# Use a channel which buffers events in memory
a2.channels.c2.type = memory
a2.channels.c2.capacity = 1000
a2.channels.c2.transactionCapacity = 100

# Bind the source and sink to the channel
a2.sources.r2.channels = c2
a2.sinks.k2.channel = c2

 第三步:執行監控的配置文件

 bin/flume-ng agent -c conf/ -n a2 -f /opt/module/flume-1.7.0/job/flume-hive-hdfs.conf 
//命令說明:-c代表配置文件,-n代表agent進程的名字,-f代表配置文件所在的目錄,
//注意:根據自己的配置文件所在的目錄做相應的修改

 第四步:第三步我們已經啓動了Flume,下面我們在開啓hive進程即可,現在查看我們的Hdfs文件系統上面,是不是多出來了一個名字叫做flume的文件夾呢?這個文件夾就是我們在配置文件裏面配置過的文件夾,當然也可以做相應的修改,點擊進去就可以查看到Hive輸出的日誌文件了。

尖叫提示:在啓動的時候要先啓動flume進程,然後在啓動Hive進程,否則有可能看不到輸出的日誌文件,只有先讓flume監聽log文件夾,文件夾內已有文件,他纔會輸出到Hdfs文件系統。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章