余老师带你学习大数据框架全栈第十二章Flume第十一节企业开发案例之负载均衡和故障转移

负载均衡和故障转移

企业开发案例2

实验目的:使用 Flume1 监控一个端口,其 sink 组中的 sink 分别对接 Flume2 和 Flume3,采用FailoverSinkProcessor,实现故障转移的功能。
实验分析:
在这里插入图片描述

实验步骤:
实验前准备:
安装 netcat 工具
1)先查看是否装有nc工具
命令:nc –helpnetcat –help
在这里插入图片描述

图示为未装。
2)安装nc工具
命令:sudo yum install -y nc
在这里插入图片描述

切换到/hadoop/Flume/apache-flume-1.9.0-bin 目录下创建job2 文件夹
命令:cd /hadoop/Flume/apache-flume-1.9.0-bin
mkdir job2
在这里插入图片描述

开始实验:
1.切换到job2目录下
命令:cd job2
2.创建 f1.conf配置文件
配置 1 个 netcat source 和 1 个 channel、1 个 sink group(2 个 sink),分别输送给 flumeflume-console1 和 flume-flume-console2。
命令:vi f1.conf
输入a或i进行编辑,在文件中添加以下内容。

# Name the components on this agent
a1.sources = r1
a1.channels = c1
a1.sinkgroups = g1
a1.sinks = k1 k2
# Describe/configure the source
a1.sources.r1.type = netcat
a1.sources.r1.bind = localhost
a1.sources.r1.port = 44444
a1.sinkgroups.g1.processor.type = failover
a1.sinkgroups.g1.processor.priority.k1 = 5
a1.sinkgroups.g1.processor.priority.k2 = 10
a1.sinkgroups.g1.processor.maxpenalty = 10000
# Describe the sink
a1.sinks.k1.type = avro
a1.sinks.k1.hostname = app-12
a1.sinks.k1.port = 4141
a1.sinks.k2.type = avro
a1.sinks.k2.hostname = app-12
a1.sinks.k2.port = 4142
# Describe the channel
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.sinkgroups.g1.sinks = k1 k2
a1.sinks.k1.channel = c1
a1.sinks.k2.channel = c1

在这里插入图片描述

3.创建 f2.conf配置文件
配置上级 Flume 输出的 Source,输出是到本地控制台。
命令:vi f2.conf
输入a或i进行编辑,在文件中添加以下内容。

# Name the components on this agent
a2.sources = r1
a2.sinks = k1
a2.channels = c1
# Describe/configure the source
a2.sources.r1.type = avro
a2.sources.r1.bind =app-12 
a2.sources.r1.port = 4141
# Describe the sink
a2.sinks.k1.type = logger
# Describe the channel
a2.channels.c1.type = memory
a2.channels.c1.capacity = 1000
a2.channels.c1.transactionCapacity = 100
# Bind the source and sink to the channel
a2.sources.r1.channels = c1
a2.sinks.k1.channel = c1

4.创建 f3.conf配置文件
配置上级 Flume 输出的 Source,输出是到本地控制台。
命令:vi f3.conf
输入a或i进行编辑,在文件中添加以下内容。

# Name the components on this agent
a3.sources = r1
a3.sinks = k1
a3.channels = c2
# Describe/configure the source
a3.sources.r1.type = avro
a3.sources.r1.bind =app-12
a3.sources.r1.port = 4142
# Describe the sink
a3.sinks.k1.type = logger
# Describe the channel
a3.channels.c2.type = memory
a3.channels.c2.capacity = 1000
a3.channels.c2.transactionCapacity = 100
# Bind the source and sink to the channel
a3.sources.r1.channels = c2
a3.sinks.k1.channel = c2

5.执行配置文件
重新开2个命令终端,在hadoop用户下切换到/hadoop/Flume/apache-flume-1.9.0-bin目录下,分别启动对应的 flume 进程:flume-flume-console2,flume-flume-console1,flume-netcatflume。
命令:cd /hadoop/Flume/apache-flume-1.9.0-bin

flume-ng agent --name a3 --conf-file job2/f3.conf -Dflume.root.logger=INFO,console

flume-ng agent --name a2 --conf-file job2/f2.conf -Dflume.root.logger=INFO,console

flume-ng agent --name a1 --conf-file job2/f1.conf

6.使用 netcat 工具向本机的 44444 端口发送内容
命令:nc localhost 44444
在这里插入图片描述
输入hello
7.查看 Flume2 及 Flume3 的控制台打印日志
在这里插入图片描述
因为f3的优先级比f2要高,所以日志打印在f3
8.将 Flume2 kill,观察 Flume3 的控制台打印情况。
ctrl+c结束
在这里插入图片描述
9.以上为故障转移
10.负载均衡
命令:cp -r job2/ job3
在这里插入图片描述
因为是针对一个sink组的不同策略,所以只需改动f1.conf

a1.sinkgroups.g1.processor.type = load_balance  #负载均衡
a1.sinkgroups.g1.processor.backoff = true
a1.sinkgroups.g1.processor.selector = random   #随机

在这里插入图片描述

执行配置文件

flume-ng agent --name a3 --conf-file job3/f3.conf -Dflume.root.logger=INFO,console

flume-ng agent --name a2 --conf-file job3/f2.conf -Dflume.root.logger=INFO,console

flume-ng agent --name a1 --conf-file job3/f1.conf

此时没有优先级的概念,所以日志可能打印在1,2,3任何地方
11.使用 netcat 工具向本机的 44444 端口发送内容
命令:nc localhost 44444
在这里插入图片描述

输入hello2
在这里插入图片描述

输入hello3在这里插入图片描述
注:使用 jps -ml 查看 Flume 进程。

详细学习内容可观看Spark快速大数据处理扫一扫~~~或者引擎搜索Spark余海峰
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_45810046/article/details/113743434