flume-ng配置文档简单说明
1、配置文件现状
1.1 Flume数据接收端
IP地址:54.0.95.67
功能:接收各个端口发来的数据。
启动方式:进入目录 /usr/local/flume/*bin 在终端运行 ./recei*.sh 启动agent。
该agent的配置文件在 /usr/local/flume/*bin/conf/receiveTest.conf 文件中。
1.2 Flume 数据搜集
目前只配置了16台主机,分别是:1. root@54.0.193.30:22,2. root@54.0.76.192:22,6. root@54.0.105.32:22,7. root@54.0.105.33:22,8. root@54.0.105.35:22 ,13. root@54.0.76.11:22,20. root@54.0.193.56:22 ,21. root@54.0.193.57:22,24. root@54.0.193.55:22 ,36. root@54.0.160.24:22,37. root@54.0.160.25:22 ,54. root@54.0.193.35:22 ,58. root@54.0.193.32:22,以及第9,第10和第11台主机。
功能:监听某个文件(自定),若文件有新增内容,agent.sources立即搜集,经channels传输至相应的sinks中。
启动方式:进入目录 /tmp/flume/*bin 在终端运行 ./cli*.sh 启动相应agent。
该agent的配置文件在 /tmp/flume/*bin/conf/cli*.conf 文件中。
2、所用配置文件介绍
2.1 Flume Sources
2.1.1 拦截器
a1.sources = r1
a1.sources.r1.interceptors = i1 i2 i3
a1.sources.r1.interceptors.i1.type = timestamp
a1.sources.r1.interceptors.i2.type = host
a1.sources.r1.interceptors.i2.hostHeader = hostname
a1.sources.r1.interceptors.i2.useIP = false
a1.sources.r1.interceptors.i3.type = static
a1.sources.r1.interceptors.i3.key = datatype
a1.sources.r1.interceptors.i3.value = TYPE_A
(1) TimeStampInterceptor:使用时间戳拦截
type = timestamp
设定timestamp,则会在flume event中添加一个键为timestamp的头,值为当前系统的datetime。设定timestamp的主要作用是当sink为hdfs格式时,可将该时间戳用在文件名或生成的文件的所在目录中。
(2) StaticInterceptor:可以自定义事件的header的value
type = static
用于向每个处理的event插入任意单个的键/值头。默认为保留已存在的具有相同键的头。
也可以理解为自定义标签。
(3) HostInterceptor:使用IP或hostname拦截
type = host
如果未指定hostHeader,则头的键就是host。useIP默认为true,即值使用IP,当设定为false,则value为hostname。preserveExisting属性代表是否覆盖消息头中已经有的IP,默认为false。
2.1.2 选择器 Selector
有两种模式:replicating、multiPlexing。
(1)replicating (默认):复制。把所有event发送到每一个channel中,也反映了sorces与channels可以是一对多的关系。
a1.sources = r1
a1.channels = c1 c2 c3
a1.source.r1.selector.type = replicating
a1.source.r1.channels = c1 c2 c3
a1.source.r1.selector.optional = c3
(2) multiPlexing:分流。这要求指定到一个通道集合的映射事件属性。Selector会在事件头检查每一个配置属性,若匹配该value,则把event发给该channels(这mapping允许每一个value有重复的channel),若都不匹配,则可以发给默认(default)的channels。
a1.sources = r1
a1.channels = c1 c2 c3 c4
a1.sources.r1.selector.type = multiplexing
a1.sources.r1.selector.header = datetype
a1.sources.r1.selector.mapping.TYPE_A = c1
a1.sources.r1.selector.mapping.TYPE_B= c2 c3
a1.sources.r1.selector.default = c4
2.2 Flume Channels
Memory-channel效率高但可能丢失数据,file-channel安全性高但性能不高。这里用的是memory-channel,但如果把capacity设置的足够小,使内存中的数据尽可能少,在意外重启或断电时丢失的数据就会很少了。
2.3 Flume Sinks
2.3.1 文件命名
当sink的type为hdfs格式时,可以指定文件的前缀与后缀,前提是消息头设置有IP和时间戳。
a1.sinks.k1.hdfs.filePrefix = %{hostname}-%y-%m-%d
a1.sinks.k1.hdfs.fileSuffix = .log
%{hostname} :取消息头中的主机名作为文件名的一部分。
%y-%m-%d :取消息头中的时间戳作为文件名的一部分,此时间格式可根据需要修改。
fileSuffix = .log 文件后缀为.log,当文件还未关闭时,此后缀的后面还有一个.tmp尾巴,通过inUseSuffix将此.tmp(默认)消去:a1.sinks.k1.hdfs.inUseSuffix =
2.3.2 rollInterval、rollSize、rollCount
在54.0.95.67主机中,sink的type为hdfs,rollInterval、rollSize以及rollCount可以很好的控制hdfs文件的大小。
(1) rollInterval 默认为30秒,即每隔30秒建立一个新的文件,此处可以根据需要设置合理的按时间间隔生成一个新文件。
(2) rollSize 默认为1024个字节,当文件数据达到此大小,则产生一个新的文件。经验证,若某个event的传入超过了rollSize,且传入之前未满,则该event依然装入该文件,下一个event则另起一个新文件。
(3) rollCount 默认为10,即一个文件装10个event。
若三个值都设定为0,则hdfs就只有一个文件,里面是变得越来越大的文件。
2.3.3 文件类型 filetype
(1)序列文件 SequenceFile (默认)
通常文件会以换行符确定每一条记录,若数据中含有换行符,使用SequenceFile可以解决问题。
(2)数据流DataStream
只输出未压缩的值。
(3)压缩流 CompressedStream
类似DataStream,但是数据写入时会被压缩。在MapReduce中只有某些压缩格式才可能进行分割。
3、注意点
3.1 JDK版本不兼容问题
JDK用1.6或1.6以上版本。
3.2 对应关系
Sources与channnels可以是一对一或者一对多关系,不可以多对一。
Channels与sinks是一对一关系或者多对一。
3.3 收到多份相同数据
若发现新增一条数据,却可以收到多份相同数据,原因是未正常关闭tail,有多个tail进程在同时跑。
3.4 HDFS目录
当sinks的type为hdfs时,文件目录需要在主机master中建立。
4、flume各组件支持的类型
4.1 flume source 支持的类型
|
Source类型 |
说明 |
|
Avro Source |
支持Avro协议(实际上是是Avro RPC) |
|
Syslog Source |
支持UDP和TCP两种协议 |
|
HTTP Source |
基于HTTP POST或get方式的数据,支持JSON,BLOB表示形式。 |
|
Spooling Dir Source |
监控指定目录内数据变更 |
|
Netcat Source |
监控某个端口 |
|
Exec Source |
基于Unix的command |
|
…… |
…… |
4.2 flume channel 支持的类型
|
Channel类型 |
说明 |
|
Memory Channel |
Event数据存储在内存中 |
|
JDBC |
数据存储在持久化存储中,当前channel 内置支持Derby |
|
File Channel |
数据存储在磁盘文件中 |
|
…… |
…… |
4.3 flume sink支持的类型
|
Sink 类型 |
说明 |
|
HDFS Sink |
数据写入HDFS |
|
Logger Sink |
数据写入日志文件 |
|
Avro sink |
数据被转换成Avro Event ,在发送到配置的RPC端口上 |
|
File Roll Sink |
存储数据到本地文件系统 |
|
Null Sink |
丢弃掉所有数据 |
|
Hbase Sink |
数据写入Hbase数据库 |
|
…… |
…… |
flume-ng配置文档简单说明的更多相关文章
- Flume NG 配置详解(转)
原文链接:[转]Flume NG 配置详解 (说明,名词对应解释 源-Source,接收器-Sink,通道-Channel) 配置 设置代理 Flume代理配置存储在本地配置文件.这是一个文本文件格式 ...
- Oracle12C安装配置文档
Oracle12C安装配置文档 Oracle12C安装配置文档 准备软件: 开始安装: 打开从官网下载下来的两个压缩包,进行解压 打开解压好的后缀为2of2的文件夹找到路径为database下的“ ...
- MYSQL服务器my.cnf配置文档详解
MYSQL服务器my.cnf配置文档详解 硬件:内存16G [client] port = 3306 socket = /data/3306/mysql.sock [mysql] no-auto-re ...
- 转!!Java代码规范、格式化和checkstyle检查配置文档
为便于规范各位开发人员代码.提高代码质量,研发中心需要启动代码评审机制.为了加快代码评审的速度,减少不必要的时间,可以加入一些代码评审的静态检查工具,另外需要为研发中心配置统一的编码模板和代码格式化模 ...
- Hibernate配置文档详解
Hibernate配置文档有框架总部署文档hibernate.cfg.xml 和映射类的配置文档 ***.hbm.xml hibernate.cfg.xml(文件位置直接放在src源文件夹即可) (在 ...
- Java代码规范、格式化和checkstyle检查配置文档
http://www.blogjava.net/amigoxie/archive/2014/05/31/414287.html 文件下载: http://files.cnblogs.com/files ...
- Spring Hibernate4 整合配置文档
1 applicationContext.xml配置文档 <?xml version="1.0" encoding="UTF-8"?><bea ...
- Kerberos主从配置文档
Kerberos主从配置文档 1. Kerberos主从同步机制 在Master上通过以下命令同步数据: kdb5_util dump /var/kerberos/krb5kdc/slave_db ...
- python常用模块-配置文档模块(configparser)
python常用模块-配置文档模块(configparser) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. ConfigParser模块用于生成和修改常见配置文档,当前模块的名称 ...
随机推荐
- hdu 4050 2011北京赛区网络赛K 概率dp ***
题目:给出1-n连续的方格,从0开始,每一个格子有4个状态,左右脚交替,向右跳,而且每一步的步长必须在给定的区间之内.当跳出n个格子或者没有格子可以跳的时候就结束了,求出游戏的期望步数 0:表示不能到 ...
- WPF线程(Step1)——Dispatcher
使用WPF开发时经常会遇上自己建立的线程需要更新界面UI内容,从而导致的跨线程问题. 异常内容: 异常类型:System.InvalidOperationException 异常描述: "S ...
- 串口编程 tcflush()函数 (转)
tcflush函数刷清(扔掉)输入缓存(终端驱动法度已接管到,但用户法度尚未读)或输出缓存(用户法度已经写,但尚未发送). int tcflush(int filedes,int quene) qu ...
- 编译器 expected unqualified-id before numeric constant 错误
今天调试代码,碰到expected unqualified-id before numeric constant 错误,代码的错误模块出现在一个函数模块上, 奇怪的是这个函数模块之前编译了很多次,也没 ...
- MySQL的多表查询(笛卡尔积原理)
先确定数据要用到哪些表. 将多个表先通过笛卡尔积变成一个表. 然后去除不符合逻辑的数据(根据两个表的关系去掉). 最后当做是一个虚拟表一样来加上条件即可. 注意:列名最好使用表别名来区别. 笛卡尔积 ...
- Html 块级元素和行级元素
转载:http://blog.csdn.net/yuyanqiao/article/details/8558118 内联元素(inline element)* a - 锚点* abbr - 缩写* a ...
- node.js整理 04网络操作
简介 var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content- ...
- 学习 Message(5): 关于 TApplicationEvents.OnMessage 的第二个参数 可以屏蔽 TWebBrowser右键菜单:
http://www.cnblogs.com/del/archive/2008/10/25/1319318.html TApplicationEvents.OnMessage 的第二个参数 Handl ...
- sql中保留到小数点后两位以及非空判断赋值为零
SELECT a.dzzmc, a.dzzdm, a.px, CONVERT(decimal(18, 2), ISNULL(b.sjpfzdf, 0) * 0.6 + (ISNULL(a.zddfzd ...
- BestCoder Round #73 (div.2)
1001 Rikka with Chess ans = n / 2 + m / 2 1002 Rikka with Graph 题意:n + 1条边,问减去至少一条使剩下的图连通的方案数. 分析:原来 ...