【大数据各平台组件搭建使用精进】flume日志采集-可靠性保证-负载均衡,故障恢复(10)

目录

Flume的可靠性保证-负载均衡

搭建并配置flume集群

配置采集方案

hadoop001上配置第一级采集方案

在hadoop02和hadoop03上配置第二级方案

启动flume

负载均衡的测试

查看结果

Flume的可靠性保证-故障恢复

配置采集方案

启动flume

故障恢复


flume环境配置和测试在前两章讲到了,大家可以移步主页

Flume的可靠性保证-负载均衡

配置的采集方案是通过唯一一个Sink作为接收器接收后续需要的数据,但会出现当前Sink故障或数据收集请求量较大的情况,这时单一Sink配置可能就无法保证Flume开发的可靠性。因此,Flume 提供Flume Sink Processors解决上述问题。

Sink处理器允许定义Sink groups,将多个sink分组到一个实体中,Sink处理器就可通过组内多个sink为服务提供负载均衡功能。

搭建并配置flume集群

三台服务器的flume集群:hadoop01、hadoop02、hadoop03

分发hadoop01上的flume文件到hadoop02和hadoop03上

分发环境变量配置文件

环境变量起作用

配置采集方案

查看官方文档的示例

hadoop001上配置第一级采集方案

两级的配置方案

 Avro

# Name the components on this agent
# 定义代理的名字a1及各个组件sources、sinks和channels

a1.sources = r1
a1.sinks = k1 k2
a1.channels = c1


#定义组的属性
a1.sinkgroups = g1
a1.sinkgroups.g1.sinks = k1 k2
a1.sinkgroups.g1.processor.type = load_balance

定义负载均衡
a1.sinkgroups.g1.processor.backoff = true
a1.sinkgroups.g1.processor.selector = random
a1.sinkgroups.g1.processor.selector.maxTimeOut = 30000





# Describe/configure the source


# 定义数据源,监控文件的变化

a1.sources.r1.type = exec
a1.sources.r1.command = tail -F /var/log/test1.log





# Describe the sink
# 定义数据的目的地(下沉)
a1.sinks.k1.type = avro
a1.sinks.k1.channel = c1
a1.sinks.k1.hostname = hadoop002
a1.sinks.k1.port = 4545


# Describe the sink
# 定义数据的目的地(下沉)
a1.sinks.k2.type = avro
a1.sinks.k2.channel = c1
a1.sinks.k2.hostname = hadoop003
a1.sinks.k2.port = 4545




# Use a channel which buffers events in memory
# 定义管道,缓冲数据
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100



# 启动命令
# flume-ng agent --conf conf --conf-file conf/exec-avro.conf --name a1 -Dflume.root.logger=INFO,console

在hadoop02和hadoop03上配置第二级方案

hadoop002

# example.conf: A single-node Flume configuration

# Name the components on this agent
# 定义代理的名字a1及各个组件sources、sinks和channels

a1.sources = r1
a1.sinks = k1
a1.channels = c1

# Describe/configure the source
# 定义数据源

a1.sources.r1.type = avro
a1.sources.r1.bind = hadoop002
a1.sources.r1.port = 4545









# Describe the sink
# 定义数据的目的地(下沉)
a1.sinks.k1.type = hdfs
a1.sinks.k1.hdfs.path = /flume/events/%y-%m-%d/%H%M/%S
a1.sinks.k1.hdfs.filePrefix = events-
# 是否循环创建文件夹
a1.sinks.k1.hdfs.round = true
# 循环创建文件夹的时间间隔是十分钟
a1.sinks.k1.hdfs.roundValue = 10
a1.sinks.k1.hdfs.roundUnit = minute
# 使用本地时间个数
a1.sinks.k1.hdfs.useLocalTimeStamp = true
// 列编辑模式,按住alt选择多列

# 时间间隔
a1.sinks.k1.hdfs.rollInterval = 3
# 大小间隔
a1.sinks.k1.hdfs.rollSize = 20
# event的个数,这三个参数谁先满足就出发循环滚动
a1.sinks.k1.hdfs.rollCount = 5
# 批处理数量
a1.sinks.k1.hdfs.batchSize = 1 
# 文件格式 表示普通文本文件
a1.sinks.k1.hdfs.fileType = DataStream


# Use a channel which buffers events in memory
# 定义管道
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100

# Bind the source and sink to the channel
# 组装组件
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1

# 启动命令
# flume-ng agent --conf conf --conf-file conf/avro-hdfs.conf --name a1 -Dflume.root.logger=INFO,console

启动flume

在hadoop002和hadoop003上flume

从最后一级开始启动flume

Hadoop002

 Hadoop003


 

在hadoop01上启动flume

 

启动成功后,提示连接信息

同时在hadoop02和hadoop03上也提示连接成功

 

 

负载均衡的测试

克隆hadoop01的一个会话,编写脚本并运行

 

 

 

查看结果

出现错误,没反应

检查

 重新运行

 

 Hadoop002

 Hadoop003

 

Hadoop的web ui上

 

 停止的时候也要从前往后

到这里flume的负载均衡测试就测试完成了

总的来说就是flume把任务平均分给每个节点,来保证所有节点不会负载太多

Flume的可靠性保证-故障恢复

 

 

配置采集方案

只需要改动第一级采集方案部分内容

改为故障恢复:

第二级采集方案不用修改

 

启动flume

flume-ng agent --conf conf --conf-file conf/avro-hdfs.conf --name a1 -Dflume.root.logger=INFO,console

从最后一级开始启动flume

再启动测试脚本

flume-ng agent --conf conf --conf-file conf/exec-avro-failover.conf --name a1 -Dflume.root.logger=INFO,console

 03工作02待机

 

故障恢复

把hadoop03的flume关闭,等待十秒钟(超时时间,在采集方案中进行的定义)

 

flume的学习到这里就告一段落了,下一文章(11)就是sqoop数据迁移的简单介绍了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星欲冷hx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值