flume的案列测试之收集socket端数据,并显示到logger端

Posted lyr999736

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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进行写出,官网具有详细的配置方案。 











以上是关于flume的案列测试之收集socket端数据,并显示到logger端的主要内容,如果未能解决你的问题,请参考以下文章

函数式接口作为参数和作为返回值类型的案列

利用反射和配置文件结合的方式,动态切换方法运行的案列

日志收集系统之Apache Flume

大数据日志收集框架之Flume入门

大数据集群组件之Flume的配置及其使用

日志系统之Flume日志收集