<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Flume1 初識(shí)Flume和虛擬機(jī)搭建Flume環(huán)境

      前言:

            工作中需要同步日志到hdfs,以前是找運(yùn)維用rsync做同步,現(xiàn)在一般是用flume同步數(shù)據(jù)到hdfs。以前為了工作簡(jiǎn)單看個(gè)flume的一些東西,今天下午有時(shí)間自己利用虛擬機(jī)搭建了flume環(huán)境,并簡(jiǎn)單做了幾個(gè)練習(xí)。學(xué)習(xí)過(guò)程中還是比較順利的,現(xiàn)在將學(xué)習(xí)的過(guò)程記錄與此,供以后自己查閱,如果能幫助到其他人,自然是更好的。

      ===============================================================長(zhǎng)長(zhǎng)的分割線====================================================================

      正文:

        關(guān)于flume的理論介紹,網(wǎng)上可以搜到到很多的資料,大家可以自行搜索,我這里就不在重復(fù)贅述。

            本文中主要涉及三塊內(nèi)容: 第一,fume概念簡(jiǎn)介;第二,搭建flume環(huán)境并運(yùn)行hello word;第三,在第二點(diǎn)的基礎(chǔ)上,再介紹一種“源”的使用方式。

       

        第一步,flume簡(jiǎn)介(這部分資料參考了網(wǎng)上文章的資料):

          (1). flume基本組件            

         a. Event:消息的基本單位,由headers和body組成
         b. Agent:JVM進(jìn)程,負(fù)責(zé)將外部來(lái)源產(chǎn)生的消息轉(zhuǎn)發(fā)到外部的目的地 
          ? Source:從外部來(lái)源讀入event,并寫入channel 
          ? Channel:event暫存組件,source寫入后,event將會(huì)一直保存,直到被sink成功消費(fèi)。 
          ? Sink:從channel讀入event,并寫入目的地

            (2). flume數(shù)據(jù)流,對(duì)照下面的兩幅數(shù)據(jù)流圖片,需要我們記住如下概念:

             a. 源將事件寫到一個(gè)或多個(gè)通道中

             b. 通道作為事件從源到接收器傳遞的保留區(qū)

             c. 接收器只從一個(gè)通道接收事件

             d. 代理可能會(huì)有多個(gè)源、通道與接收器。

            

             

          

            第二步,搭建flume環(huán)境并運(yùn)行hello world:

            (1). 從flume官網(wǎng)上下載 http://flume.apache.org/download.html  flume安裝包,可以下載源碼包自己編譯,但是我當(dāng)初直接下載了編譯好的apache-flume-1.5.2-bin.tar.gz。

            (2). 將apache-flume-1.5.2-bin.tar.gz這個(gè)壓縮包通過(guò)tar -xzvf apache-flume-1.5.2-bin.tar.gz 命令解壓縮。為了便于后邊的講解說(shuō)一下我解壓縮后的目錄: /myself_settings/flume1.5.2/apache-flume-1.5.2-bin

            (3). 直接進(jìn)入conf目錄,配置example0001.conf 配置文件,配置內(nèi)容如下: 我們定義了一個(gè)名叫agent1的Agent。其中包含了名為src1的源、名為channel1的通道以及名為sink1的接收器。

       1 # example0001.conf: A single-node Flume Configuration
       2 
       3 # Name the components on this agent
       4 agent1.sources = src1
       5 agent1.sinks = sink1
       6 agent1.channels = channel1
       7 
       8 # Describe/configure the source
       9 agent1.sources.src1.type = netcat
      10 agent1.sources.src1.bind = 127.0.0.1
      11 agent1.sources.src1.port = 44444
      12 
      13 #Describe the sink
      14 agent1.sinks.sink1.type = logger
      15 
      16 # Use a channel which buffers events in memory
      17 agent1.channels.channel1.type = memory
      18 agent1.channels.channel1.capacity = 1000
      19 agent1.channels.channel1.transactionCapacity = 100
      20 
      21 # Bind the source and sink to the channel
      22 agent1.sources.src1.channels = channel1
      23 agent1.sinks.sink1.channel = channel1 

            (4). 在安裝目錄的根目錄,比如我的目錄: /myself_settings/flume1.5.2/apache-flume-1.5.2-bin  執(zhí)行命令: ./bin/flume-ng agent -n agent1 -c conf -f conf/example0001.conf -Dflume.root.logger=INFO,console ,啟動(dòng)成功如下圖:

           

         (5). 在啟動(dòng)成功后,我們執(zhí)行telnet命令: telnet localhost 44444,正確連接telnet后,依次輸入hello、hello world和hello flume,這時(shí)我們可以看到剛才啟動(dòng)agent的控制臺(tái)中就成功接收并輸出了你剛才輸入的內(nèi)容,詳細(xì)看上圖矩形框選中的部分。

       

            第三步,exec源的使用。這個(gè)主要是如果我想實(shí)時(shí)的接收業(yè)務(wù)系統(tǒng)的日志,那么可以設(shè)置這種源。

         (1). 直接進(jìn)入conf目錄,配置example0002.conf 配置文件,配置內(nèi)容如下: 我們定義了一個(gè)名叫agent2的Agent。其中包含了名為src2的源、名為channel2的通道以及名為sink2的接收器。

       1 # example0001.conf: A single-node Flume Configuration
       2 
       3 # Name the components on this agent
       4 agent2.sources = src2
       5 agent2.sinks = sink2
       6 agent2.channels = channel2
       7 
       8 # Describe/configure the source
       9 agent2.sources.src2.type = exec
      10 agent2.sources.src2.command = tail -F /test/test.log
      11 
      12 #Describe the sink
      13 agent2.sinks.sink2.type = logger
      14 
      15 # Use a channel which buffers events in memory
      16 agent2.channels.channel2.type = memory
      17 agent2.channels.channel2.capacity = 1000
      18 agent2.channels.channel2.transactionCapacity = 100
      19 
      20 # Bind the source and sink to the channel
      21 agent2.sources.src2.channels = channel2
      22 agent2.sinks.sink2.channel = channel2 

            (2). 結(jié)合上面的配置文件,我們會(huì)發(fā)現(xiàn)和我們之前的定義的example1.conf的例子不同主要在與9、10行標(biāo)紅的定義源的類型和方式。結(jié)合命令來(lái)說(shuō),就是如果/test/test.log文件中內(nèi)容發(fā)生變化,那么就會(huì)把新增的數(shù)據(jù)傳入到當(dāng)前agent2中。

            (3). 為了測(cè)試上邊的這個(gè)例子,在啟動(dòng)agent2之前,我們定義一個(gè)crontab任務(wù):  */1 * * * * date >> /test/test.log ,每隔一分鐘往/test/test.log中插入一條當(dāng)前服務(wù)器的時(shí)間。 

            (4). 在上邊crontab任務(wù)執(zhí)行后,我們開始啟動(dòng)agent2:  ./bin/flume-ng agent -n agent2 -c conf -f conf/example0002.conf -Dflume.root.logger=INFO,console。

            (5). 隨著每隔一分鐘test.log中新增的一條時(shí)間記錄,agent2的控制臺(tái)也會(huì)相應(yīng)的接收并輸出一條記錄,如下圖:

              

             

       

            綜上所述,我們一起完成了對(duì)flume的初步認(rèn)識(shí),我個(gè)人任務(wù)如果你是開發(fā),這些基本的了解對(duì)你來(lái)說(shuō)是必要的,當(dāng)然如果從這篇文章中看,貌似flume比較簡(jiǎn)單,但是我個(gè)人覺得單看flume確實(shí)沒有太多可說(shuō)的,但是我們?nèi)绻裬afka、flume、storm等實(shí)時(shí)計(jì)算工具融合起來(lái)的話,還是要好好研究研究的。

       

      posted on 2016-03-19 23:27  Sky_YiBai  閱讀(1947)  評(píng)論(0)    收藏  舉報(bào)

      主站蜘蛛池模板: 免费看欧美全黄成人片| 亚洲AV成人片不卡无码| 大战丰满无码人妻50p| 精品国产中文字幕av| 一区二区三区无码免费看| 吃奶还摸下面动态图gif| 国产视频最新| 国产无人区码一区二区| 桃园县| 亚洲色最新高清AV网站| 把女人弄爽大黄A大片片| 天堂V亚洲国产V第一次| 真实国产老熟女无套内射| 亚洲国产成人精品无码一区二区 | 青青草久热这里只有精品| 久久99热精品这里久久精品| 美女黄网站人色视频免费国产| 亚洲国产精品无码一区二区三区| 潜江市| 精品国产乱码久久久久久浪潮| 国产精品午夜福利91| 蜜桃av无码免费看永久| 四虎成人精品永久网站| 亚洲精品一区二区动漫| 曰韩高清砖码一二区视频| 亚洲sm另类一区二区三区| 无遮挡午夜男女xx00动态| 免费激情网址| 亚洲国产另类久久久精品| 色偷偷www.8888在线观看| 精品国产高清中文字幕| 日韩成人无码影院| gogogo高清免费观看| 国产精品七七在线播放| 亚洲 制服 丝袜 无码| 武安市| 国产av仑乱内谢| 717午夜伦伦电影理论片| 久久综合亚洲色一区二区三区| 农村老熟女一区二区三区| 欧美三级a做爰在线观看|