Flume使用案例之Flume与Flume之间数据传递,多Flume汇总数据到单Flume

楼高1年前技术文章478

目标:flume11监控文件hive.logflume-22监控某一个端口的数据流,flume11flume-22将数据发送给flume-33flume33将最终数据写入到HDFS

分步实现:

1. 创建flume11.conf,用于监控hive.log文件,同时sink数据到flume-33

# 1 agent

a1.sources = r1

a1.sinks = k1

a1.channels = c1

 

# 2 source

a1.sources.r1.type = exec

a1.sources.r1.command = tail -F /opt/Andy

a1.sources.r1.shell = /bin/bash -c

 

# 3 sink

a1.sinks.k1.type = avro

a1.sinks.k1.hostname = dtstack_hdfs

a1.sinks.k1.port = 4141

 

# 4 channel

a1.channels.c1.type = memory

a1.channels.c1.capacity = 1000

a1.channels.c1.transactionCapacity = 100

 

# 5. Bind

a1.sources.r1.channels = c1

a1.sinks.k1.channel = c1

 2. 创建flume-22.conf,用于监控端口44444数据流,同时sink数据到flume-33

# 1 agent

a2.sources = r1

a2.sinks = k1

a2.channels = c1

 

# 2 source

a2.sources.r1.type = netcat

a2.sources.r1.bind = dtstack_hdfs

a2.sources.r1.port = 44444

 

#3 sink

a2.sinks.k1.type = avro

a2.sinks.k1.hostname = dtstack_hdfs

a2.sinks.k1.port = 4141

 

# 4 channel

a2.channels.c1.type = memory

a2.channels.c1.capacity = 1000

a2.channels.c1.transactionCapacity = 100

 

# 5 Bind

a2.sources.r1.channels = c1

a2.sinks.k1.channel = c1

 3.  创建flume33.conf,用于接收flume11flume22发送过来的数据流,最终合并后sinkHDFS

# 1 agent

a3.sources = r1

a3.sinks = k1

a3.channels = c1

 

# 2 source

a3.sources.r1.type = avro

a3.sources.r1.bind = dtstack_hdfs

a3.sources.r1.port = 4141

 

# 3 sink

a3.sinks.k1.type = hdfs

a3.sinks.k1.hdfs.path = hdfs://dtstack_hdfs:9000/flume3/%H

#上传文件的前缀

a3.sinks.k1.hdfs.filePrefix = flume3-

#是否按照时间滚动文件夹

a3.sinks.k1.hdfs.round = true

#多少时间单位创建一个新的文件夹

a3.sinks.k1.hdfs.roundValue = 1

#重新定义时间单位

a3.sinks.k1.hdfs.roundUnit = hour

#是否使用本地时间戳

a3.sinks.k1.hdfs.useLocalTimeStamp = true

#积攒多少个EventflushHDFS一次

a3.sinks.k1.hdfs.batchSize = 100

#设置文件类型,可支持压缩

a3.sinks.k1.hdfs.fileType = DataStream

#多久生成一个新的文件

a3.sinks.k1.hdfs.rollInterval = 600

#设置每个文件的滚动大小大概是128M

a3.sinks.k1.hdfs.rollSize = 134217700

#文件的滚动与Event数量无关

a3.sinks.k1.hdfs.rollCount = 0

#最小冗余数

a3.sinks.k1.hdfs.minBlockReplicas = 1

 

# 4 channel

a3.channels.c1.type = memory

a3.channels.c1.capacity = 1000

a3.channels.c1.transactionCapacity = 100

 

# 5 Bind

a3.sources.r1.channels = c1

a3.sinks.k1.channel = c1

 4. 执行测试:分别开启对应flume-job(依次启动flume-33flume-22flume11),同时产生文件变动并观察结果

$ bin/flume-ng agent --conf conf/ --name a3 --conf-file jobconf/flume33.conf

$ bin/flume-ng agent --conf conf/ --name a2 --conf-file jobconf/flume22.conf

$ bin/flume-ng agent --conf conf/ --name a1 --conf-file jobconf/flume11.conf

数据发送

1) telnet dtstack_hdfs 44444    打开后发送java

2) /opt/Andy 中追加python

相关文章

MySQL运维实战(6)用户认证插件caching_sha2_password

MySQL用户认证可以使用几种不同的方式,创建用户时可以制定认证方式:create user 'username'@'%' identif...

kubernetes job和cronjob

kubernetes job和cronjob

一、JobJob 负责批处理任务,即仅执行一次的任务,它保证批处理任务的一个或多个 Pod 成功结束。特殊说明:1、spec.template 格式同 Pod2、RestartPolicy 仅支持 N...

hive执行count和spark执行count结果不一致

hive执行count和spark执行count结果不一致

【组件版本】hive on mr、spark【问题现象】hive 执行count语句,结果条数为0,spark执行count语句能正常显示count数【详细描述】hive 执行count语句:显示co...

Linux运维工具

1.1 查看进程占用带宽情况 - NethogsNethogs 是一个终端下的网络流量监控工具可以直观的显示每个进程占用的带宽。1.2 硬盘读取性能测试 - IOZoneIOZone 是一款 Linu...

MySQL运维实战之ProxySQL(9.7)改写SQL

使用查询修改功能,可以在不改变应用程序的情况下,修改SQL语句。比如,我们可以使用SQL改写的功能,给SQL添加hint,以此来优化性能。delete from mysql_que...

flume性能调优

1.Source性能调优1.1 Spooldir Source使用Spooldir Source采集日志数据时,若每行日志数据<100bp,可以通过将多行合并传输来提升传输性能建议合并时根据数据...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。