1. 程式人生 > >flume的案列測試之收集socket端資料,並顯示到logger端

flume的案列測試之收集socket端資料,並顯示到logger端

步驟:

1.在Linux下安裝netcat工具,使用者開啟socket客戶端:

  a.切換至root下

    $>su root

  b.執行安裝命令

    $>yum install -y nc

  c.切換至Alex_lei使用者下,模擬聊天室:

    $>nc

    開啟服務端 $>nc -l 55555

    開啟客戶端 $>nc localhost 55555

2.建立Agent

  編寫agent配置資訊,在{FLUME_HOME/conf}目錄下,新建example.conf,新增以下程式碼:

  a1.sources = s1

  a1.channels = c1
  a1.sinks = k1

  #定義agent的source屬性
  a1.sources.s1.type = netcat
  a1.sources.s1.bind = master
  a1.sources.s1.port = 55555

  #配置agent的sink屬性
  a1.sinks.k1.type = logger

  #配置agent的channel的屬性
  a1.channels.c1.type = memory

  a1.sources.s1.channels = c1
  a1.sinks.k1.channel = c1 //注意:a1.sinks.k1.channel後不用有s

3.開啟flume程序

$>flume-ng agent --name a1 --conf /home/Alex_lei/soft/flume/conf/ --conf-file /home/hyxy/soft/flume/conf/example.conf -Dflume.root.logger=INFO,consol

4.開啟nc客戶端

  $>nc master 55555

  hello world

  zhang san

5.結果

  在flume的會話視窗中,顯示以下資訊:
  Event: { headers:{} body: 68 65 6C 6C 6F 20 77 6F 72 6C 64 hello world }


  Event: { headers:{} body: 7A 68 61 6E 67 20 73 61 6E zhang san }

 

總結:agent包含三個元件為Source,Channel,Sink,分別代表的意思是資料來源,中間管道,起到橋樑的作用,寫到什麼地方。上述Source為Console,Channel預設為memory記憶體,Sink為logger。

  若我們要寫到hdfs或者hive,我們可以去flume的官網檢視相關配置檔案的資訊,根據自己的需要選擇,選擇hdfs,我們就去Flume sink下zhaodao hdfs選項檢視相關的配置資訊進行配置就可以。 

  當然還可以將多個flume串聯進行配置,也可以多個flume並聯最後輸入到一個flume的agent進行寫出,官網具有詳細的配置方案。