zoukankan      html  css  js  c++  java
  • 02_Flume1.6.0安装及单节点Agent实践

    Flume1.6.0的安装
    1、上传Flume-1.6.0-tar.gz到待部署的所有机器
         以我的为例: /usr/local/src/

    2、解压得到flume文件夹
          # tar -xzvf flume-1.6.0-tar.gz

    3、修改文件夹名称,属主,及权限
         # mv flume-1.6.0 flume
         # chown -R root:root flume
        # chmod 755 flume

    4、安装完毕,解压后可以直接使用,通过flume/conf下的配置文件修改就可以各种调戏了~


    实践1 - 单节点Agent

     

    1、配置文件

    # 01-flume-netcat-test
    # agent name: a1
    # source: netcat
    # channel: memory
    # sink: logger, local console
    
    # 01 define source,channel,sink name
    a1.sources = r1
    a1.channels = c1
    a1.sinks = k1
    
    # 02 define source
    a1.sources.r1.type = netcat
    a1.sources.r1.bind = localhost # ip地址也OK
    a1.sources.r1.port = 4444
    
    # 03 define sink
    a1.sinks.k1.type = logger      # flume sink将拉取到的信息,event形式打印到自己被启动时的终端
    
    # 04 define channel
    a1.channels.c1.type = memory
    # number of events in memory queue 内存队列中的最大event数值
    a1.channels.c1.capacity = 1000 
    # number of events for 1 commit(每次向memory queuet放入event,取出event的最大值),所以肯定是比内存队列中的event小
    a1.channels.c1.transactioncapacity = 100
    
    # 05 bind source,sink to channel
    a1.sources.r1.channels = c1 # 1个source可以有多个channel
    a1.sinks.k1.channel = c1      # 1个sink只能从1个channel取数据

    2、启动本节点上的flume agent

    # bin/flume-ng agent --conf conf --conf-file ./conf/flume-netcat.properties --name a1 -Dflume.root.logger=INFO,console

     解读:使用conf目录下的flume-netcat.properties文件,启动agent, agent的名称为a1;
                flume向console打印INFO级别及以上的日志信息



    3、观察Flume agent的启动

    flume启动过程中会向当前console打印INFO及以上级别的日志,在日志的最后可以看到a1启动,并且netcat source启动了1个serversocket,监听本机的4444端口

    4、测试该Agent

    再开启1个到telnet到Agent所在机器的命令行窗口,连接建立后输入数据,查看flume是否向console打印出了输入数据


    1) telnet输入

    2) Flume输出event到console

    3) telnet输入16个以上字符

    4) Flume的logger sink, 输出event只有16个字符

    telnet退出:ctrl+], 然后quit

    通过flume的Git源码发现,默认情况下logger sink能够输出的最大字符数为16,该问题已经被提交修改,但flume-1.6.0版本并没有解决该问题

     

    实践2 - 单节点Agent

    exec source:执行配置文件中给定的命令,监听命令的输出,输出的每一行被作为一个event

    1、停止前一个flume agent进程
    # ps -aux | grep flume 找到该进程的pid
    # kill pid 不要kill -9 pid

    2、配置文件

    3、在agent运行的主机上创建测试用log文件,和配置文件中的路径及名称保持一致:/root/flume_test/server.log

    4、启动本节点上的flume agent

    # bin/flume-ng agent --conf conf --conf-file ./conf/flume-exec.properties --name a1 -Dflume.root.logger=INFO,console

    解读:
    使用conf目录下的flume-exec.properties文件,启动agent, agent的名称为a1;
    flume向console打印INFO级别及以上的日志信息

    5、根据flume agent启动时的日志,判断exec agent是否正常启动,执行给定命令,并监听输出(一行为一个event)

    6、向flume agent机器上的测试log日志,写入内容,查看flume是否将新的输出转换为event,最终输出到终端


    1)管道追加方式向server.log文件写入数据

    2)flume输出event到自身被启动时的终端

    3)再追加一次

    4)查看flume是否输出event到自身被启动时的终端

    5)查看server.log的文件结构,验证是否一行数据对应一个event

    管道方式追加,在文件中生成了2行记录,分别对应一个flume event (命令执行结果的每一行输出,对应一个event)


    实践3 - 单节点Agent


    1、停止前一个flume agent进程
    # ps -aux | grep flume    找到该进程的pid
    # kill pid                          不要kill -9 pid

    2、配置文件

    3、在HDFS上创建event落地的目录
    # hadoop fs -mkdir /flume_hdfs_sink

    4、启动本节点上的flume agent

    # bin/flume-ng agent --conf conf --conf-file ./conf/flume-hdfs.properties --name a1 -Dflume.root.logger=INFO,console

    解读:
    使用conf目录下的flume-hdfs.properties文件,启动agent, agent的名称为a1;
    flume向console打印INFO级别及以上的日志信息

    5. 再开启1个到telnet到Agent所在机器的命令行窗口,连接建立后输入数据,查看flume是否在HDFS目录上生成文件,将event写入
    1) telnet输入

     

    2) Flume输出

     

    HDFS上此时存在临时文件,数据还没有真正写入

    3) telnet多次输入,第11次写入时,HDFS上落地生成新文件(rollCount=10此时满足)

     


    查看HDFS文件的内容
    落地到HDFS文件中的内容,将只保留实际数据,不再是event形式

     

    HDFS Sink的配置项参考(来自flume官网用户手册)

  • 相关阅读:
    Codechef EDGEST 树套树 树状数组 线段树 LCA 卡常
    BZOJ4319 cerc2008 Suffix reconstruction 字符串 SA
    Codechef STMINCUT S-T Mincut (CodeChef May Challenge 2018) kruskal
    Codeforces 316G3 Good Substrings 字符串 SAM
    Codechef CHSIGN Change the Signs(May Challenge 2018) 动态规划
    BZOJ1396 识别子串 字符串 SAM 线段树
    CodeForces 516C Drazil and Park 线段树
    CodeForces 516B Drazil and Tiles 其他
    CodeForces 516A Drazil and Factorial 动态规划
    SPOJ LCS2
  • 原文地址:https://www.cnblogs.com/shay-zhangjin/p/7936384.html
Copyright © 2011-2022 走看看