Flume日志采集框架(大数据学习21)

 1.Flume介绍

  1.1 概述

  1. Flume是一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系统。
  2. Flume可以采集文件,socket数据包等各种形式源数据,又可以将采集到的数据输出到HDFS、hbase、hive、kafka等众多外部存储系统中
  3. 一般的采集需求,通过对flume的简单配置即可实现
  4. Flume针对特殊场景也具备良好的自定义扩展能力,因此,flume可以适用于大部分的日常数据采集场景

  1.2 运行机制

  1. Flume分布式系统中最核心的角色是agent,flume采集系统就是由一个个agent所连接起来形成
  2. 每一个agent相当于一个数据传递员,内部有三个组件:
      1. Source:采集源,用于跟数据源对接,以获取数据
      2. Sink:下沉地,采集数据的传送目的,用于往下一级agent传递数据或者往最终存储系统传递数据
      3. Channel:agent内部的数据传输通道,用于从source将数据传递到sink.

   1.3 Flume采集系统结构图

     单个agent采集数据

          

     多级agent之间串联

         

  2.Flume实战案例

  2.1 Flume的安装部署

   安装包:https://pan.baidu.com/s/1V20k3NoYDwwdGftg8HLYdQ   提取码: hzed

    放到HDFS下进行解压,然后进入flume的目录,修改conf下的flume-env.sh,在里面配置JAVA_HOME  

tar -zxvf apache-flume-1.6.0-bin.tar.gz  -C apps/

然后进入到flume 的conf目录下  

   用一个最简单的例子来测试一下程序环境是否正常

   先在flume的conf目录下新建一个文件   vi   netcat-logger.conf

#Name the components on this agent          
a1.sources = r1               //给采集源起名 叫 r1
a1.sinks = k1                  //给下沉地起名 叫 k1
a1.channels = c1               //给传输通道起名 叫 c1

#Describe/configure the source
a1.sources.r1.type = netcat             //采集源的类型为网络端口 netcat
a1.sources.r1.bind = localhost          //采集源绑定的地址IP  
a1.sources.r1.port = 44444               //采集源绑定的地址端口

#Describe the sink
a1.sinks.k1.type = logger            //下沉地要存储的类型为logger服务器

#Use a channel which buffers events in memory
a1.channels.c1.type = memory         //传输通道的类型 
a1.channels.c1.capacity = 1000        //传输通道的容量  指的是1000个事件(event)
a1.channels.c1.transactionCapacity = 100  //每次最大可以从source拿到或者送到sink中的event数量

#Bind the source and sink to the channel
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1

  上述保存之后,在flume目录下执行下面命令

[hadoop@mini1 apache-flume-1.6.0-bin]$ bin/flume-ng agent --conf conf --conf-file conf/netcat-logger.conf --name a1  -Dflume.root.logger=INFO,console

上面命令的具体含义:

1  bin/flume-ng   //   flume-ng 为 flume/bin/安装目录下的一个命令

2 agent   --conf  conf  //    执行flume-ng命令,让启动一个agent ,agent下有一些配置文件 --conf   它所在的目录为conf    

3 --conf-file conf/netcat-logger.conf   //     --conf-file为采集方案的配置 ,放在conf目录下的netcat-logger.conf里面

4 --name a1    //   --name  a1 指的是启动的agent 的名字 为 a1

5 -Dflume.root.logger=INFO,console  //   flume 传的参数

重新开启一个mini1窗口,然后输入 命令  如果命令没成功 说明你的虚拟机上没有安装telnet     直接输入yum install telnet 进行安装即可。  进去之后 你就可以在里面 先随便输些数据,查看之前启动的服务器的变化 它就会采集你输入的数据

telnet localhost 44444    // localhost 指的是连接本地   44444 指的是之前配置的端口号

猜你喜欢

转载自blog.csdn.net/weixin_38201936/article/details/88642373
今日推荐