zoukankan      html  css  js  c++  java
  • Flume安装

     什么是Flume?

      Apache Flume是一个分布式、可靠、高可用的海量日志聚合系统,支持在系统中定制各种数据源发送给指定的数据接收方;同时Flume还提供简单的数据处理的方法。

     Flume的三大组成

      (1)source

        完成数据的收集,分成 transtion和 event将数据传送到Channel;

        Flume提供了丰富的数据收集方法的实现,如: AvroSource、Exce Source、Spooling Directory Source、NetCat Source、Syslog Source、Syslog TCP Source、Syslog UDP Source、HTTP Source、HDFS Source等等;

        如: Exce Source:以运行Linux命令的方式,持续的输出最新的数据,如tail -f文件名指令,在这种方式下,取出的文件名必须是指定的;

           Spool Source:是监控配置目录下新增的文件,并将文件中的内容读取出来

      (2)Sink

        Sink的作用是取出Channel中的数据,推送到相应的文件或数据存储系统(如Kafka、Hadoop的HDFS)、数据库、或者提交到远程服务器;

        Flume Sink也提供了各种sink的实现,包括HDFS sink、Logger sink、Avro sink、File Roll sink、Null sink、HBase sink等等;

        Flume Sink在设置存储数据时,可以向文件系统、数据库、Hadoop中存储数据,在日志数据较小时,可以将数据存储在文件中,并且设定一定的时间间隔保存数据。在日志数据较多时,可以将相应的日志数据存储到Hadoop中,便于日后对数据进行分析。

      (3)Channel

         Flume Channel主要提供一个队列的能力,对Source中的数据进行简单的缓存;

         Flume对Channel则提供了Memory Channel、JDBC Channel、File Channel;

         Memory Channel:可以实现高吞吐量,但是无法保证数据的完整行;

         File Channel:保证数据的完整性和一致性。在具体配置FileChannel时,建议FileChannel设置的目录和程序日志文件保存的目录在不同磁盘,从而提高效率。

      Flume的安装

      (1)确保系统已经安装了JDK1.7+,并且配置了Java的环境变量;

      (2)下载二进制安装包,地址:http://flume.apache.org/download.html

      (3)创建Flume用户,上传Flume到用户目录,解压,重命名;

      (4)复制flume-env.sh.template到flume-env.sh,复制flume-conf.properties.template到flume-conf.properties

       Flume数据收集测试

      利用netcat,发送数据,测试flume是否能收到数据:

      Flume的配置如下:

    agent.sources = r1
    agent.channels = memoryChannel
    agent.sinks = k1
    
    # For each one of the sources, the type is defined
    agent.sources.r1.type = netcat
    agent.sources.r1.bind = localhost
    agent.sources.r1.port = 8888
    agent.sources.r1.channels = memoryChannel
    
    # Each sink's type must be defined
    agent.sinks.k1.type = logger                 #sink的type是logger,收集的数据会进行日志打印
    agent.sinks.k1.channel = memoryChannel # Each channel's type is defined. agent.channels.memoryChannel.type = memory agent.channels.memoryChannel.capacity = 100 agent.channels.transactionCapacity = 100

      从配置文件可以看出,此处的flume代理的名字是agent,采集的数据类型是 localhost 的netcat,端口是8888,数据存储类型是内存存储。

      启动flume:

    flume-ng agent -n agent -c conf -f /home/flume/flume/conf/flume-conf.properties -Dflume.root.logger=INFO,console

      命令参数说明:

      -n: 是-name的缩写,是指代理的名称,在上面的flume中,我们的代理名称是agent;

      -c: 是-conf的缩写,是指配置文件flume-conf.properties所在的目录;

      -f: 是-file的缩写,是指配置文件flume-conf.properties的路径;

      -Dflume.root.logger=INFO,console 设置日志等级

      同时利用netcat发送信息,我们看flume 的输出信息:

     

      我们可以看到Flume成功收集到我们nc发送的信息。

      

  • 相关阅读:
    OpenCV-Python 霍夫直线检测-HoughLinesP函数参数
    2017 年度读书总结
    检查服务是否正在运行,如果未运行则启动
    添加MIME类型
    IIS功能查看、配置
    IIS下的身份验证方式管理
    PowerShell管理IIS(新建站点、应用程序池、应用程序、虚拟目录等)
    虚拟目录和应用程序的区别
    远程重启服务器
    逐行读取txt
  • 原文地址:https://www.cnblogs.com/parryyang/p/8436367.html
Copyright © 2011-2022 走看看