共計 1460 個字符,預計需要花費 4 分鐘才能閱讀完成。
這篇文章給大家分享的是有關 Flume 框架的示例分析的內容。丸趣 TV 小編覺得挺實用的,因此分享給大家做個參考,一起跟隨丸趣 TV 小編過來看看吧。
Flume 是一個分布式的海量數據收集框架.
Flume 框架流程圖
Channel 是緩存的數據,如果 Sink 傳送給了 HDFS,Channel 中緩存的數據就會刪除,如果沒有傳送成功,Channel 相當于做了備份,Sink 重復從 Channel 中取數據.
在 hadoop0 上部署一個 Flume agent
1、把 apache-flume-1.4.0-bin.tar.gz 和 apache-flume-1.4.0-src.tar.gz 在 hadoop0 上解壓縮.
2、把解壓縮后的 apache-flume-1.4.0-src 文件夾中的內容全部復制到 apache-flume-1.4.0.-bin 文件夾中.
3、修改 conf 目錄下的兩個文件的名稱,一個是 flume-env.sh,一個是 flume-conf.properties.
其中在 flume-env.sh 中設置了 JAVA_HOME 值.
4、實例: 把磁盤文件夾中文件通過 flume 上傳到 HDFS 中.
4.1 在 conf 目錄下創建一個文件,叫做 test.conf,文件內容如下:
# 配置代理
#a1 是一個代理名稱,s1 是 source 的名稱,sink1 是 sink 的名稱,c1 是 channel 的名稱
a1.sources = s1
a1.sinks = sink1
a1.channels = c1
# 配置一個專用于從文件夾中讀取數據的 source
a1.sources.s1.type = spooldir
a1.sources.s1.spoolDir = /apache_logs # 值 apache_logs 表示數據文件的目錄
a1.sources.s1.fileSuffix=.abc # 值.abc 表示數據文件被處理完后,被重命名的文件名后綴
a1.sources.s1.channels = c1 # 值 c1 表示 source 接收數據后送到的 channel 的名稱
# 配置一個專用于把輸入寫入到 hdfs 的 sink
a1.sinks.sink1.type = hdfs
a1.sinks.sink1.hdfs.path=hdfs://hadoop0:9000/apache_logs # 值表示目的地
a1.sinks.sink1.hdfs.fileType=DataStream # 值 DataStream 表示文件類型,是不經過壓縮的
a1.sinks.sink1.hdfs.writeFormat=Text # 值表示寫出文件原內容
a1.sinks.sink1.channel = c1 # 值 c1 表示 sink 處理數據的來源
# 配置一個內存中處理的 channel
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100
運行:[root@hadoop conf]# ../bin/flume-ng agent –conf conf –conf-file test.conf –name a1 -Dflume.root.looger=DEBUG,console
感謝各位的閱讀!關于“Flume 框架的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!