CentOS7下安装Flume

Flume 天涯孤鸟 3721℃ 0评论

一、Flume简介

Flume一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(kakfa,hdfs等)(可定制)的能力。其处理流程如下图:

Flume三个核心组件:

  • Source:source组件是专门用来收集数据的,可以处理各种类型、各种格式的日志数据,包括avro、thrift、exec、jms、spooling directory、netcat、sequence generator、syslog、http、legacy、自定义。
  • Channel:source组件把数据收集来以后,临时存放在channel中,即channel组件在agent中是专门用来存放临时数据的——对采集到的数据进行简单的缓存,可以存放在memory、jdbc、file等等。
  • Sink:sink组件是用于把数据发送到目的地的组件,目的地包括hdfs、logger、avro、thrift、ipc、file、null、Hbase、solr、自定义。

二、Flume的运行机制

flume的核心就是一个agent,这个agent对外有两个进行交互的地方,一个是接受数据的输入——source,一个是数据的输出sink,sink负责将数据发送到外部指定的目的地。source接收到数据之后,将数据发送给channel,chanel作为一个数据缓冲区会临时存放这些数据,随后sink会将channel中的数据发送到指定的地方—-例如HDFS等,注意:只有在sink将channel中的数据成功发送出去之后,channel才会将临时数据进行删除,这种机制保证了数据传输的可靠性与安全性。

三、Flume安装

  • 1、下载apache-flume-1.6.0-bin.tar.gz
  • 2、解压 tar -zxvf apache-flume-1.6.0-bin.tar.gz
    mv apache-flume-1.6.0 flume
  • 3、进入conf目录,复制flume-conf.properties.template为flume-conf.properties,进行以下的配置文件是指定Flume监听 192.168.66.43:44444

定义Flume三个组件,然后再对每个组件分别进行定义

定义Source,根据需要可以定义不同类型的Source,这里采用的是netcat,监听网络端口44444

定义Sink,根据需要可以定义不同类型的Sink,这里采用的是Logger

定义Channel,根据需要订阅不同类型,这里才有的是memory channel,Flume采集的数据线缓存在内存中,再由Sink消费

  • 4、启动Flume



 其中–conf指定配置文件路径,–conf-file指定配置文件,–name指定配置文件里的要启动agent名字(一个配置文件里可以有多个agent的定义),-Dflume.root.logger指定Flume运行时输出的日志的级别和地方。

Flume OutOfMemoryError错误:
显然是采集的数据太大了,导致Flume的JVM内存不够用。

用 ps -aux | grep flume查找Flume进程也能看到Flume使用了多少内存。

解决方法:

1、 vim bin/flume-ng

  在里面找到JAVA_OPTS=”-Xmx20m”,它默认启动时最大可用内存为20,只要将其调大一点就可以了。

2、在Flume conf目录下找到flume-env.sh.template文件

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

  vim flume-env.sh

  把下面这句配置的注释删掉就可了

  export JAVA_OPTS=”-Xms100m -Xmx2000m -Dcom.sun.management.jmxremote”

Flume非正常关闭,导致无法重启解决方法:

转载请注明:猫头鹰工作室 » CentOS7下安装Flume

喜欢 (1)or分享 (0)
Avatar
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址