概述
自动容灾和负载均衡
自动容灾
1 配置下游的两个采集方案
1)hadoop02上配一个下游
[root@hadoop02 ~]# mkdir flumeconf
[root@hadoop02 ~]# vim ./flumeconf/processorDown1.properties
#定义三大组件的名称
和关联
a1.sources = r1
a1.channels = c1
a1.sinks = k1
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
#定义Source的相关属性
a1.sources.r1.type = avro
#绑定本机的ip或者是hostname
a1.sources.r1.bind = hadoop02
#要监听的本机上的某一个端口号,
当程序启动时,该端口号就会被使用
a1.sources.r1.port = 10086
#定义channel的相关属性
a1.channels.c1.type = memory
#内存存储容量 event的最大数量
a1.channels.c1.capacity=1000
#从内存中出来时,一次性提交的event的数量
a1.channels.c1.transactionCapacity=100
#定义Sink的相关属性
a1.sinks.k1.type=logger
a1.sinks.k1.maxBytesToLog = 16
2)hadoop03上配一个下游
[root@hadoop03 ~]# mkdir flumeconf
[root@hadoop03 ~]# vim ./flumeconf/processorDown2.properties
#定义三大组件的名称
和关联
a1.sources = r1
a1.channels = c1
a1.sinks = k1
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
#定义Source的相关属性
a1.sources.r1.type = avro
#绑定本机的ip或者是hostname
a1.sources.r1.bind = hadoop03
#要监听的本机上的某一个端口号,
当程序启动时,该端口号就会被使用
a1.sources.r1.port = 10087
#定义channel的相关属性
a1.channels.c1.type = memory
#内存存储容量 event的最大数量
a1.channels.c1.capacity=1000
#从内存中出来时,一次性提交的event的数量
a1.channels.c1.transactionCapacity=100
#定义Sink的相关属性
a1.sinks.k1.type=logger
a1.sinks.k1.maxBytesToLog = 16
**2 配置上游的一个采集方案**
1)hadoop01上配一个上游
[root@hadoop01 ~]# vim flumeconf/processorup.properties
#list name of three core
a1.sources=r1
a1.channels=c1
a1.sinks=s1 s2
a1.sources.r1.channels=c1
a1.sinks.s1.channel=c1
a1.sinks.s2.channel=c1
#设置每个组件的接口以及属性
a1.sources.r1.type=syslogtcp
a1.sources.r1.host=hadoop01
a1.sources.r1.port=10086
a1.sources.r1.eventSize=2500
a1.channels.c1.type=memory
a1.channels.c1.capacity=1000
a1.channels.c1.transactionCapacity=100
a1.sinkgroups = g1
a1.sinkgroups.g1.sinks = s1 s2
a1.sinkgroups.g1.processor.type = failover
a1.sinkgroups.g1.processor.priority.s1 = 5
a1.sinkgroups.g1.processor.priority.s2 = 10
a1.sinks.s1.type=avro
a1.sinks.s1.hostname=hadoop02
a1.sinks.s1.port=10086
a1.sinks.s2.type=avro
a1.sinks.s2.hostname=hadoop03
a1.sinks.s2.port=10087
3 测试
1)先启动下游的两个采集方案,再启动上游的采集方案
[root@hadoop02 ~]# flume-ng agent
-f ./flumeconf/processorDown1.properties -n a1
-Dflume.root.logger=INFO,console
[root@hadoop03 ~]# flume-ng agent
-f ./flumeconf/processorDown2.properties -n a1
-Dflume.root.logger=INFO,console
[root@hadoop01 ~]# flume-ng agent
-f ./flumeconf/processorup.properties -n a1
-Dflume.root.logger=INFO,console
2 测试:
另开一个窗口,向上游方案发送数据
[root@hadoop03 ~]# echo "aaaaaa" | nc hadoop01 10086
此时:应该是hadoop03上的采集方案收到数据
再次测试,将hadoop03上的采集方案kill掉,再发送数据,应该就是hadoop02的采集方案收到数据
[root@hadoop03 ~]# echo "aaaaaa" | nc hadoop01 10086
负载均衡
负载均衡的配置有两个,分别是round_robin和random
1 配置两个下游方案
1)hadoop01上配一个下游
[root@hadoop01 ~]# vim ./flumeconf/processor-load-balance-1.properties
#定义三大组件的名称
和关联
a1.sources = r1
a1.channels = c1
a1.sinks = k1
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
#定义Source的相关属性
a1.sources.r1.type = avro
#绑定本机的ip或者是hostname
a1.sources.r1.bind = hadoop01
#要监听的本机上的某一个端口号,
当程序启动时,该端口号就会被使用
a1.sources.r1.port = 10086
#定义channel的相关属性
a1.channels.c1.type = memory
#内存存储容量 event的最大数量
a1.channels.c1.capacity=1000
#从内存中出来时,一次性提交的event的数量
a1.channels.c1.transactionCapacity=100
#定义Sink的相关属性
a1.sinks.k1.type=logger
a1.sinks.k1.maxBytesToLog = 16
2)hadoop02上配一个下游
[root@hadoop02 ~]# vim ./flumeconf/processor-load-balance-2.properties
#定义三大组件的名称
和关联
a1.sources = r1
a1.channels = c1
a1.sinks = k1
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
#定义Source的相关属性
a1.sources.r1.type = avro
#绑定本机的ip或者是hostname
a1.sources.r1.bind = hadoop02
#要监听的本机上的某一个端口号,
当程序启动时,该端口号就会被使用
a1.sources.r1.port = 10086
#定义channel的相关属性
a1.channels.c1.type = memory
#内存存储容量 event的最大数量
a1.channels.c1.capacity=1000
#从内存中出来时,一次性提交的event的数量
a1.channels.c1.transactionCapacity=100
#定义Sink的相关属性
a1.sinks.k1.type=logger
a1.sinks.k1.maxBytesToLog = 16
3)hadoop03上配一个下游
[root@hadoop03 ~]# vim ./flumeconf/processor-load-balance-3.properties
#定义三大组件的名称
和关联
a1.sources = r1
a1.channels = c1
a1.sinks = k1
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
#定义Source的相关属性
a1.sources.r1.type = avro
#绑定本机的ip或者是hostname
a1.sources.r1.bind = hadoop03
#要监听的本机上的某一个端口号,
当程序启动时,该端口号就会被使用
a1.sources.r1.port = 10086
#定义channel的相关属性
a1.channels.c1.type = memory
#内存存储容量 event的最大数量
a1.channels.c1.capacity=1000
#从内存中出来时,一次性提交的event的数量
a1.channels.c1.transactionCapacity=100
#定义Sink的相关属性
a1.sinks.k1.type=logger
a1.sinks.k1.maxBytesToLog = 16
2 配置上游的一个采集方案
1)hadoop01上配一个上游
[root@hadoop01 ~]# vim flumeconf/processor-load-balance-0.properties
#list name of three core
a1.sources=r1
a1.channels=c1
a1.sinks=s1 s2 s3
a1.sources.r1.channels=c1
a1.sinks.s1.channel=c1
a1.sinks.s2.channel=c1
a1.sinks.s3.channel=c1
#设置每个组件的接口以及属性
a1.sources.r1.type=syslogtcp
a1.sources.r1.host=hadoop01
a1.sources.r1.port=10085
a1.sources.r1.eventSize=2500
a1.channels.c1.type=memory
a1.channels.c1.capacity=1000
a1.channels.c1.transactionCapacity=100
a1.sinks.s1.type=avro
a1.sinks.s1.hostname=hadoop01
a1.sinks.s1.port=10086
a1.sinks.s2.type=avro
a1.sinks.s2.hostname=hadoop02
a1.sinks.s2.port=10086
a1.sinks.s3.type=avro
a1.sinks.s3.hostname=hadoop03
a1.sinks.s3.port=10086
a1.sinkgroups = g1
a1.sinkgroups.g1.sinks = s1 s2 s3
a1.sinkgroups.g1.processor.type = load_balance
a1.sinkgroups.g1.processor.backoff=true
a1.sinkgroups.g1.processor.selector=round_robin
3) 测试
1)先启动下游的三个采集方案,再启动上游的采集方案
[root@hadoop01 ~]# flume-ng agent
-f ./flumeconf/processor-load-balance-1.properties -n a1
-Dflume.root.logger=INFO,console
[root@hadoop02 ~]# flume-ng agent
-f ./flumeconf/processor-load-balance-2.properties -n a1
-Dflume.root.logger=INFO,console
[root@hadoop03 ~]# flume-ng agent
-f ./flumeconf/processor-load-balance-3.properties -n a1
-Dflume.root.logger=INFO,console
[root@hadoop01 ~]# flume-ng agent
-f ./flumeconf/processor-load-balance-0.properties -n a1
-Dflume.root.logger=INFO,console
2 测试:
另开一个窗口,向上游方案发送数据
[root@hadoop03 ~]# echo "aaaaaa" | nc hadoop01 10085
注意:round_robin并不会完全的轮询进行
最后
以上就是心灵美歌曲为你收集整理的Flume-----自动容灾和负载均衡的全部内容,希望文章能够帮你解决Flume-----自动容灾和负载均衡所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复