我是靠谱客的博主 心灵美歌曲,最近开发中收集的这篇文章主要介绍Flume-----自动容灾和负载均衡,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

自动容灾和负载均衡

自动容灾
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-----自动容灾和负载均衡所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部