Flume--常用Channel

1、功能:

  • 将Source发送过来的数据【每个Event】临时的存储,sink会到Channel中取对应的数据,发送到目标地
  • 一个用于传递数据的管道,用于衔接source和sink

2、memory channel

http://archive.cloudera.com/cdh5/cdh/5/flume-ng-1.6.0-cdh5.14.0/FlumeUserGuide.html#memory-channel

  • 功能:将数据临时存储在内存
  • 应用场景
    • 适合于小数据量要求采集速度性能比较高的场景

需求1:参考 hive-mem-console.properties

  • 重要的配置
#指定内存中存储的最多的Event的个数,能使用的最大的内容容量
#在工作中要自己计算,例如分配1GB内存给mem channel,一个event大概1KB,1GB / 1KB = 个数
a1.channels.c1.capacity = 1000
#每次source能往channel中放或者每次sink能从channel取多少个event,这个值不允许超过capacity,一般建议给capacity的十分之一
a1.channels.c1.transactionCapacity = 100

3、file channel

http://archive.cloudera.com/cdh5/cdh/5/flume-ng-1.6.0-cdh5.14.0/FlumeUserGuide.html#file-channel

  • 功能:将数据临时存储在磁盘文件
  • 应用场景
    • 适合于大数据量要求采集速度性能不高的场景

需求2:读取Hive的log日志,将数据临时缓存在文件中,最后打印在控制台

  • 创建测试路径
cd /export/datas/flume/
mkdir -p filechannel/datadir
mkdir -p filechannel/chkdir
  • 拷贝一个程序
cp hive-mem-console.properties hive-file-console.properties    
  • 修改程序
# define sourceName/channelName/sinkName for the agent 
a1.sources = s1
a1.channels = c1
a1.sinks = k1

# define the s1
a1.sources.s1.type = exec
a1.sources.s1.command  = tail -f /export/servers/hive-1.1.0-cdh5.14.0/logs/hive.log


# define the c1
a1.channels.c1.type = file
#指定缓存的数据存储在什么位置
a1.channels.c1.dataDirs = /export/datas/flume/filechannel/datadir
#指定检查点目录,用于记录数据的校验信息
a1.channels.c1.checkpointDir = /export/datas/flume/filechannel/chkdir

# def the k1
a1.sinks.k1.type = logger

#source、channel、sink bond
a1.sources.s1.channels = c1
a1.sinks.k1.channel = c1
  • 运行程序
bin/flume-ng agent -c conf/ -f userCase/hive-file-console.properties  -n a1 -Dflume.root.logger=INFO,console

4、kafka channel

  • 可以将数据临时缓存在Kafka中
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值