一、简介:
采集、收集数据
二、安装
1. 解压
2. 在conf下复制一份flume-conf.properties.template就可以开始玩flume了
三、概念
source:源数据(你从哪里来)
sink:源数据落地点(要到哪里去)
channel:信道,用于连接source和sink(来时的路)
四、几个应用场景介绍
1. 多级agent串联
(1) 场景:为什么要串联?因为我有两台机器,机器a和机器b,a是hdfs集群中的datanode之一,b属于客户,b不能访问hdfs集群(哎!为了安全忍了),因此flume为b到a传输数据架起桥梁。
(2) 串联结构:
机器b(客户机):
source: 配置源数据(我需要接收mysql和oracle数据库的数据)
sink: avro(向a的相应端口发送数据)
channel:内存与磁盘混合模式
机器a(datanode):
source: avro(接受b发来的数据,注意,端口要与a发来时的端口相同,理由嘛,你懂得)
sink:hdfs(到达hdfs集群的怀抱)
channel:内存(集群里的机器配置好,直接上内存)
(3) 客户机b的配置:
#起名字
agent.channels = ch1
agent.sinks = k1
agent.sources = sql-source
#channels配置:使用内存和磁盘混合
agent.channels.ch1.type = SPILLABLEMEMORY
agent.channels.ch1.byteCapacity = 80000
agent.channels.ch1.checkpointDir = /xxx /flume_check
agent.channels.ch1.dataDirs=/xxx/flume_data
#sources配置:mysql,注意,只要是“你的”都要修改哦
agent.sources.sql-source.channels = ch1
#flume-ng-sql提供的的type
# agent.sources.sql-source.type = org.keedio.flume.source.SQLSource
#我自己扩展的type
agent.sources.sql-source.type = org.keedio.flume.source.SQLSourceExt
agent.sources.sql-source.hibernate.connection.url = jdbc:mysql://你的ip:3306/你的数据库
agent.sources.sql-source.hibernate.connection.user = 你的用户名
agent.sources.sql-source.hibernate.connection.password = 你的密码
agent.sources.sql-source.hibernate.dialect =org.hibernate.dialect.MySQLInnoDBDialect
agent.sources.sql-source.table = 你的表
#这两个参数也是我扩展的,请在使用SQLSourceExt的时候配置,否则不需要这两只
agent.sources.sql-source.header = true
agent.sources.sql-source.headerKey = 你的表
agent.sources.sql-source.batch.size = 5000
agent.sources.sql-source.max.rows = 1000
agent.sources.sql-source.start.from = 你的增量字段的开始值
#这个是自定义sql,如果你不需要那就使用下面那条,直接*
agent.sources.sql-source.custom.query = select ID AS INCREMENTALfrom 你的table WHERE INCREMENTAL > $@$ ORDER BY INCREMENTAL ASC
#agent.sources.sql-source.columns.to.select = *
agent.sources.sql-source.run.query.delay=5000
agent.sources.sql-source.status.file.path = /xxx/flume_file
agent.sources.sql-source.status.file.name = sql-source.status
#官方说生产环境最好配着,我是听话的好孩子
agent.sources.sql-source.hibernate.connection.provider_class =org.hibernate.connection.C3P0ConnectionProvider
agent.sources.sql-source.hibernate.c3p0.min_size=1
agent.sources.sql-source.hibernate.c3p0.max_siz