[hadoop]Flume的安裝、配置 及其依賴Flume實時監控特定文件夾上傳到HDFS

一、簡單理解

作用

  1. Flume提供一種分佈式的,可靠地,對大量數據的日誌進行高效處理,聚集,移動的服務。flume只能在Unix的環境下運行。
  2. Flume基於流式框架,容錯性強,也靈活簡單。
  3. Flume,Kafka用來進行數據收集的,Spart,Storm用來實時處理數據,impala用來實時查詢。

基本構成

  1. Source 用於採集數據,Source是產生數據流的地方,同時Source會將產生的數據流傳輸到Channel。
  2. Channel 用於橋接Sources和Sinks,類似於一個隊列。
  3. Sink 從Channel收集數據,將數據寫到目標源(可以是下一個Source,也可以是HDFS或者HBase)。
  4. Event 傳輸單元,Flume數據傳輸的基本單元,以事件的形式將數據從源頭送至目的地。

二、Flume的安裝及使用

本篇文章默認安裝好了hadoop集羣。前提是啓動hdfs。

flume安裝包的官方網址,直接下載即可。(apache-flume-1.9.0-bin.tar.gz)
http://flume.apache.org/download.html

本人是利用Xftp將壓縮包傳入虛擬機。

安裝及配置

  • tar -zxvf [安裝包名] 解壓。
  • 配置profile(別忘了source)
export SQOOP_HOME=/opt/sqoop/sqoop.bin ##這裏我是把壓縮好的文件夾改了一下名字
export PATH=$PATH:$SQOOP_HOME/bin

驗證成功與否是 sqoop version 出現版本號即可

  • 進入安裝好的目錄進入conf下,如果你的集羣是HA(高可用)那麼必須把core-site.xml 和 hdfs-site.xml放入此目錄下。
  • 然後你會發現properties文件 那是例子。 你可以直接複製一個去改參數,也可以直接vi 複製下面代碼。

寫properties文件

vi fzy_hdfs (後面啓動時要用到此文件名稱)

a1.sources = r1
a1.sinks = k1
a1.channels = c1
# Describe/configure the source
a1.sources.r1.type = spooldir
#下面這一行就是需要監聽本地的文件夾路徑!!!!!!!
a1.sources.r1.spoolDir = /home/fzy_flume/fzy_test
a1.sources.r1.fileHeader = true
# Describe the sink
a1.sinks.k1.type = hdfs
#下面這一行就是你的hdfs的路徑  它可以自動創建沒有的目錄
#注意master:後面的端口號是你在core-site.xml設置的fs.defaultFS
a1.sinks.k1.hdfs.path = hdfs://master:8020/flume/upload/%Y%m%d/%H
a1.sinks.k1.hdfs.filePrefix = upload-
a1.sinks.k1.hdfs.round = true
a1.sinks.k1.hdfs.roundValue = 1
a1.sinks.k1.hdfs.roundUnit = hour
a1.sinks.k1.hdfs.useLocalTimeStamp = true
a1.sinks.k1.hdfs.batchSize = 1000
a1.sinks.k1.hdfs.fileType = DataStream
a1.sinks.k1.hdfs.rollInterval = 600
a1.sinks.k1.hdfs.rollSize = 134217700
a1.sinks.k1.hdfs.rollCount = 0
a1.sinks.k1.hdfs.minBlockReplicas = 1
# Use a channel which buffers events in memory
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 1000
# Bind the source and sink to the channel
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1

上面代碼裏有三行註釋必須要看。

啓動flume

flume-ng agent --conf conf --conf-file fzy_hdfs --name a1

再強調一遍 fzy_hdfs是剛纔一堆代碼的文件名稱

三、啓動之後

  • 如果你的界面是xshell你需要再點連接,重新連接一個你的master(相當於一共打開了兩個終端)
  • 去你配置文件裏寫的監控文件夾。隨便創建文件寫點東西,你就會發現第一個終端有變化。
  • hadoop dfs -ls / 查看一下有沒有flume文件夾,裏面是否有你剛剛寫的新文件即可

上個圖康一康吧~
在這裏插入圖片描述

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