zoukankan      html  css  js  c++  java
  • 日志收集框架flume的安装及简单使用

    flume介绍

    Flume是一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系统。

    Flume可以采集文件,socket数据包等各种形式源数据,又可以将采集到的数据输出到HDFShbasehive、kafka等众多外部存储系统中

    一般的采集需求,通过对flume的简单配置即可实现

    Flume针对特殊场景也具备良好的自定义扩展能力,因此,flume可以适用于大部分的日常数据采集场景

    flume运行机制

    1、 Flume分布式系统中核心的角色是agentflume采集系统就是由一个个agent所连接起来形成

    2、 每一个agent相当于一个数据传递员,内部有三个组件:

      a) Source:采集源,用于跟数据源对接,以获取数据

      b) Sink:下沉地,采集数据的传送目的,用于往下一级agent传递数据或者往最终存储系统传递数据

      c) Channelangent内部的数据传输通道,用于从source将数据传递到sink

     

    flume采集系统结构

    单个agent采集数据:

    多个agent串联采集数据:

     

     flume的安装部署(前提:已有hadoop集群环境)

    1、上传安装包到数据源所在节点上(这里是hadoop1)

     在SecureCRT中,开启集群环境。

    cd /usr/local/

    ALT + P,进入到sftp中,然后拖动安装包,就上传到了/usr/local/目录下。

    2、解压tar -zxvf apache-flume-1.6.0-bin.tar.gz

       删除安装包rm -rf apache-flume-1.6.0-bin.tar.gz

       重命名mv apache-flume-1.6.0-bin  flume

    3、在conf/flume-env.sh里面配置JAVA_HOME

    cp flume-env.sh.template flume-env.sh

    vi flume-env.sh

       export JAVA_HOME=/usr/local/jdk

    4、根据数据采集的需求配置采集方案,描述在配置文件中(文件名可自定义)

    5、指定采集方案配置文件,在相应的节点上启动flume agent

    示例测试环境是否正常?(监听网络端口接收数据

     1、先在flume/conf/目录下新建一个配置文件 vi netcat-logger.conf

    # 定义这个agent中各组件的名字

    a1.sources = r1

    a1.sinks = k1

    a1.channels = c1

    # 描述和配置source组件:r1

    #netcat可以设置读取一行数据的长度,否则这样的话,一行数据太长,只会读取到前一部分

    a1.sources.r1.type = netcat

    a1.sources.r1.bind = localhost

    a1.sources.r1.port = 44444

    # 描述和配置sink组件:k1

    a1.sinks.k1.type = logger

    # 描述和配置channel组件,此处使用是内存缓存的方式

    #capacity:默认该通道中最大的可以存储的event数量

    #trasactionCapacity:每次最大可以从source中拿到或者送到sink中的event数量

    a1.channels.c1.type = memory

    a1.channels.c1.capacity = 1000

    a1.channels.c1.transactionCapacity = 100

    # 描述和配置source  channel   sink之间的连接关系

    a1.sources.r1.channels = c1

    a1.sinks.k1.channel = c1

     2、启动agent去采集数据(在flume目录下执行这个命令)

    bin/flume-ng   agent    -c conf    -f conf/netcat-logger.conf    -n a1    -Dflume.root.logger=INFO,console

    -c conf   指定flume自身的配置文件所在目录

    -f conf/netcat-logger.conf  指定我们所描述的采集方案

    -n a1  指定我们这个agent的名字

     注意:

    本人在启动的时候出现了错误。有两处改动一下就行了。可以查看flume-ng,查看相关用法。(在bin目录下执行    将配置文件的路径改为全路径)

    flume-ng   agent    -c  conf    -f   /usr/local/flume/conf/netcat-logger.conf    -n  a1    -Dflume.root.logger=INFO,console

     3、测试

    先要往agent采集监听的端口上发送数据,让agent有数据可采

    随便在一个能跟agent节点联网的机器上

    可以本地hadoop1向自己发送数据(亲自操作成功)

    也可以在别的机器上hadoop2或者hadoop3hadoop1发送数据(没有操作成功,出现连接拒绝!!!

    telnet agent-hostname  port   telnet localhost 44444

    注意:

    在hadoop2上,使用telnet命令时,出现错误,提示没有这个命令!!!

    rpm -qa | grep telnet*     发现没有安装Telnet。所以需要在Linux安装Telnet。

    安装Telnet的方法:

    1、安装xinetd:yum install xinetd(安装之前要先安装#yum install xinetd (注意在root下安装)因为,telnet要依靠xinetd服务启动,所以要先安装该服务)

    2、安装Telnet服务端:yum install telnet-server

    3、安装Telnet客户端:yum install telnet.*

    4、配置Telnet:

      vi /etc/xinetd.d/telnet

      将里面的disable=yes改为disable=no

    注意:Telnet服务只允许非root用户登录!!!

     

  • 相关阅读:
    Path类
    C#集合
    阿里巴巴2013年实习生笔试题B
    阿里巴巴2013年实习生笔试题A
    腾讯2014年校园招聘笔试试题
    腾讯技术类校园招聘笔试试题
    腾讯2013年实习生笔试题
    腾讯2012年实习生笔试题
    hdu1505
    hdu1506
  • 原文地址:https://www.cnblogs.com/ahu-lichang/p/6828120.html
Copyright © 2011-2022 走看看