Flume实践

本文详细介绍了Apache Flume在数据采集中的应用,特别是如何通过多级Agent串联实现数据从源到目标的传输。文章提供了从MySQL和Oracle数据库到HDFS的实例,包括配置文件的详细设置,如source、sink和channel的定义,以及在不同环境下的注意事项。此外,还讨论了如何扩展Flume的SQLSource以传递额外信息,并给出了多级Agent配置的示例。
摘要由CSDN通过智能技术生成

一、简介:

采集、收集数据

二、安装

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值