Flume日志采集系统的部署,实现flume负载均衡,flume故障恢复

news2024/11/24 2:47:18

目录

安装包

flume的部署

负载均衡测试

故障恢复


安装包

在这里给大家准备好了flume的安装包

通过网盘分享的文件:apache-flume-1.9.0-bin.tar.gz
链接: https://pan.baidu.com/s/1DXMA4PxdDtUQeMB4J62xoQ 提取码: euz7 
--来自百度网盘超级会员v4的分享

-----------------------------------------------------------------------------------------------

大家自行下载。那么正片开始。

flume的部署

首先,我们切换到software目录

cd /export/software

使用rz命令上传安装包

上传完成后,解压缩安装包道,servers目录

tar -zxvf apache-flume-1.9.0-bin.tar.gz -C /export/servers

解压缩完成之后!

切换到servers目录

cd /export/servers

之后,我们进行一个重命名的大动作。

mv apache-flume-1.9.0-bin flume

ok,fine,一切完成之后,让我们切换到conf目录

cd /export/servers/flume/conf

切换完成之后,开始进行下一步,

复制一下文件。

cp flume-env.sh.template  flume-env.sh 

完成之后,我们输入ll,查看一下自己是不是安装成功了。

之后我们输入。

vi flume-env.sh

进入文件,然后输入shift + g

到达文件底部,最后贴入自己java的环境变量。

export JAVA_HOME=/export/servers/jdk

大家根据自己的实际情况来进行修改哈,如果不知道自己的java环境变量是什么的话,可以冒号wq保存退出之后,在命令行输入·

vi /etc/profile

然后使用shift+g到达文件底部。

查看一下自己的环境变量,再复制粘贴到刚才的文件里。

看到这里首先不要着急的去复制。

来都来了,我们顺手配置一下flume的环境变量。

export FLUME_HOME=/export/servers/flume
export PATH=$FLUME_HOME/bin:$PATH

OK,配置完成之后,我们esc保存退出。

之后让我们来分发一下Flume吧。

scp -r /export/servers/flume/  hadoop02:/export/servers/
scp -r /export/servers/flume/  hadoop03:/export/servers/

现在你已经分发完flume了,那么接下来我们再分发一下环境变量。

scp -r /etc/profile hadoop02:/etc/
scp -r /etc/profile hadoop02:/etc/

分发完hadoop02和hadoop03环境变量,接下来我们需要分别在hadop02,和hadoop03上输入

soruce /etc/profile

来令环境变量生效。

接下来我们测试一下hadoop01的哦配置效果、

切换到hadoop01的data目录下

cd /export/data

切换完成之后,执行

netcat-logger.conf

复制下面的内容带哦文件里

a1.sources = r1
a1.sinks = k1
a1.channels = c1
a1.sources.r1.type = netcat
a1.sources.r1.bind = localhost
a1.sources.r1.port = 44444
a1.sinks.k1.type = logger
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1

输入完成之后保存退出。

输入下面的命令看下效果。

 flume-ng agent --name a1 --conf conf/ --conf-file /export/data/netcat-logger.conf -Dflume.root.logger=INFO,console

出现下面的页面,就算是成功了。

,那么让我们再次打开一个hadoop01窗口,开始进行一些操作

打开另一个窗口之后,我们

yum -y install telnet

下载一个telnet包

下载完成之后,连接一下44444端口

telnet localhost 44444

然后另一边

日志采集到这里就算是完成了。

接下来使用ctrl+c退出进行下一步。两个窗口都ctrl+c,然后随便关闭一个。

都干完之后,我们来到hadop01的flume的conf目录

cd /export/servers/flume/conf

输入

vi exec-avro.conf

然后粘贴下面的内容,粘贴完成之后,保存退出。

a1.sources  =  r1
a1.sinks = k1 k2
a1.channels = c1
a1.sources.r1.channels = c1
a1.sources.r1.type = exec
a1.sources.r1.command = tail -F /export/data/123.log
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.sinks.k1.channel = c1
a1.sinks.k1.type = avro
a1.sinks.k1.hostname = hadoop02
a1.sinks.k1.port = 53421
a1.sinks.k2.channel = c1
a1.sinks.k2.type = avro
a1.sinks.k2.hostname = hadoop03
a1.sinks.k2.port = 53421
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.maxTimeOut=10000

输入完成之后,我切换搭配hadoop02的conf目录下

vi avro-logger1.conf

染的时候输入下面的内容

a1.sources = r1
a1.sinks = k1
a1.channels = c1
a1.sources.r1.type = avro
a1.sources.r1.bind = hadoop02
a1.sources.r1.port = 53421
a1.sinks.k1.type = logger
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
 

完成之后,切换到hadoop03的虚拟机

同样是切换目录

vi avro-logger2.conf

切换完成之后,我们输入下面的内容

a1.sources = r1
a1.sinks = k1
a1.channels = c1
a1.sources.r1.type = avro
a1.sources.r1.bind = hadoop03
a1.sources.r1.port = 53421
a1.sinks.k1.type = logger
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1

配置完成之后,我们在hadoop02上执行下面的命令,来启动agent

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

完成之后切换到hadoop03,执行下面的命令

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

下面放上hadoop01和hadoop02启动成功的画面

之后,我们切换回hadoop01

切换到conf目录

cd /export/servers/flume/conf

之后输入下面的命令

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

启动成功之后如下图所示。

ok,一切完成之后,我们开始一个负载均衡测试。

负载均衡测试

我们再次打开一个hadop01的窗口

像data目录下写入,flume flume...

下面的命令每隔两秒会向日志追加一条flume flume...

while true;do echo "flume flume..." >> /export/data/123.log;sleep 2;done

hadoop01和hadoop03会如下图所示

接下来我们就可以开心的开始下一项’

故障恢复

下面文件里的内容,一定要和自己的主机名搭配起来!!!!

来到hadoop01的conf目录下

cd /export/servers/flume/conf

输入

vi exec-avro-failover.conf

输入下面的内容

a1.sources = r1
a1.sinks = k1 k2
a1.channels = c1
a1.sources.r1.channels = c1
a1.sources.r1.type = exec
a1.sources.r1.command = tail -F /export/data/456.log
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.sinks.k1.channel = c1
a1.sinks.k1.type = avro
a1.sinks.k1.hostname = hadoop02
a1.sinks.k1.port = 53422
a1.sinks.k2.channel = c1
a1.sinks.k2.type = avro
a1.sinks.k2.hostname = hadoop03
a1.sinks.k2.port = 53422
a1.sinkgroups = g1
a1.sinkgroups.g1.sinks = k1 k2
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

那么好 ,接下来切换到hadoop02

vi avro-logger3.conf

写入以下内容

a1.sources = r1
a1.sinks = k1
a1.channels = c1
a1.sources.r1.type = avro
a1.sources.r1.bind = hadoop02
a1.sources.r1.port = 53422
a1.sinks.k1.type = logger
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1

然后wq保存退出

那么再切换到hadoop03

vi avro-logger4.conf

写入下面的内容

a1.sources = r1
a1.sinks = k1
a1.channels = c1
a1.sources.r1.type = avro
a1.sources.r1.bind = hadoop03
a1.sources.r1.port = 53422
a1.sinks.k1.type = logger
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1

接下来切换到hadoop02,输入

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

接下来切换到hadoop03

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

接下来切换到hadoop01的conf目录下。

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

全部启动成功之后,我们切换到

hadoop01就可以提开始发挥了

while true;do echo "flume flume..." >> /export/data/456.log;sleep 2;done

音位hadoop03的优先级会比hadoop02高

所以是hadoop03会比hadoop02先写入日志

这个时候,就要及时止损,

ctrl+c退出,静等一会儿,你就会发现

hadoop02上出现了hadoop03上终止的信息。日志记录不会被停止‘

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2246385.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

P2TR(Taproot 交易)和Musig2

目录 P2TR(Taproot 交易)和Musig2 P2TR(Taproot 交易) Musig2 总结 P2TR(Taproot 交易)和Musig2 都是比特币和区块链技术中的先进功能,它们各自具有独特的特点和应用场景。以下是两者的区别及举例说明: P2TR(Taproot 交易) 定义: P2TR是一种比特币交易类型,旨…

Web 入门

HTTP 一、概念 Hyper Text Transfer Protocol,超文本传输协议,规定了浏览器和服务器之间数据传输的规则。 二、特点 基于TCP协议:面向连接,安全。基于请求-响应模型的:一次请求对应一次响应。HTTP协议是无状态的协…

Docker+Nginx | Docker(Nginx) + Docker(fastapi)反向代理

在DockerHub搜 nginx,第一个就是官方镜像库,这里使用1.27.2版本演示 1.下载镜像 docker pull nginx:1.27.2 2.测试运行 docker run --name nginx -p 9090:80 -d nginx:1.27.2 这里绑定了宿主机的9090端口,只要访问宿主机的9090端口&#…

Postman之变量操作

系列文章目录 1.Postman之安装及汉化基本使用介绍 2.Postman之变量操作 3.Postman之数据提取 4.Postman之pm.test断言操作 5.Postman之newman Postman之变量操作 1.pm.globals全局变量2.pm.environment环境变量3.pm.collectionVariables集合变量4.pm.variables5.提取数据-设置变…

鸿蒙动画开发08——帧动画

1、概 述 帧动画通过应用onFrame逐帧回调的方式,让开发者在应用侧的每一帧都可以设置属性值,从而实现设置了该属性值对应组件的动画效果。 相比于属性动画,开发者可感知动画的过程,实时修改UI侧的值,具有事件可实时响…

《Python基础》之字符串格式化输出

目录 方式一 1、带索引 {0} 2、不带索引 { } 3、{自定义变量} 方式二 方式三 控制浮点数精度 方式一 使用.format( )进行格式化 1、带索引 {0} name boy age 18 high 183.55555 gender man print(姓名是:{0},年龄是:{1},身高是:{2},性别是:{3},身高是…

OpenCV相机标定与3D重建(3)校正鱼眼镜头畸变的函数calibrate()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 cv::fisheye::calibrate 函数是 OpenCV 中用于校正鱼眼镜头畸变的一个重要函数。该函数通过一系列棋盘格标定板的图像来计算相机的内参矩阵和畸变…

Redis五大基本类型——Set集合命令详解(命令用法详解+思维导图详解)

目录 一、Set集合类型介绍 二、常见命令 1、SADD 2、SMEMBERS 3、SISMEMBER 4、SCARD 5、SRANDMEMBER 6、SPOP 7、SMOVE 8、SREM ​编辑 9、集合间操作 (1)SINTER (2)SINTERSTORE (3)SUNION…

CCE-基础

背景: 虚拟化产生解决物理机资源浪费问题,云计算出现实现虚拟化资源调度和管理,容器出现继续压榨虚拟化技术产生的资源浪费,用命名空间隔离(namespace) 灰度升级(升级中不影响业务&#xff09…

Chrome离线安装包下载

1、问Chrome的官网:https://www.google.cn/chrome/ 直接下载的是在线安装包,安装需要联网。 2、如果需要在无法联网的设备上安装Chrome,需要在上面的地址后面加上?standalone1。 Chrome离线安装包下载地址:https://www.google.c…

二进制 分析工具:Radare2、r2frida、Binutils、file、string、as、nm、ldd、objdump、readelf、strip

1、二进制 分析工具 工欲善其事,必先利其器,在二进制安全的学习中,​使用工具尤为重要。遇到一个不熟悉的文件时, 首先要确定 "这是什么类型的文件",回答这个问题的首要原则是,绝不要根据文件的扩…

快速图像识别:落叶植物叶片分类

1.背景意义 研究背景与意义 随着全球生态环境的变化,植物的多样性及其在生态系统中的重要性日益受到关注。植物叶片的分类不仅是植物学研究的基础,也是生态监测、农业管理和生物多样性保护的重要环节。传统的植物分类方法依赖于人工观察和专家知识&…

Chrome 浏览器 131 版本新特性

Chrome 浏览器 131 版本新特性 一、Chrome 浏览器 131 版本更新 1. 在 iOS 上使用 Google Lens 搜索 自 Chrome 126 版本以来,用户可以通过 Google Lens 搜索屏幕上看到的任何图片或文字。 要使用此功能,请访问网站,并点击聚焦时出现在地…

Windows系统编程 - 注册表

文章目录 前言注册表介绍打开和关闭注册表RegOpenKeyExRegCloseKey测试案例 创建删除子键RegCreateKeyEx创建子键RegDeleteKey删除子键 写入删除键值RegQueryValueExRegSetValueExRegDeleteValue测试案例 子键和项的枚举RegEnumKeyExRegEnumValueRegQueryInfoKey测试案例 总结 …

Jenkins + gitee 自动触发项目拉取部署(Webhook配置)

目录 前言 Generic Webhook Trigger 插件 下载插件 ​编辑 配置WebHook 生成tocken 总结 前言 前文简单介绍了Jenkins环境搭建,本文主要来介绍一下如何使用 WebHook 触发自动拉取构建项目; Generic Webhook Trigger 插件 实现代码推送后,触…

Failed to start Docker Application Container Engine

说明: 1)访问应用业务,读取不到数据,show databases;查看数据库报错 2)重启docker服务,服务启动失败,查看日志报错如下图所示 3)报错信息:chmod /data/docker: read-only…

1、HCIP之RSTP协议与STP相关安全配置

目录 RSTP—快速生成树协议 STP STP的缺点: STP的选举(Listening状态中): RSTP P/A(提议/同意)机制 同步机制: 边缘端口的配置: RSTP的端口角色划分: ensp模拟…

Kafka 生产者优化与数据处理经验

Kafka:分布式消息系统的核心原理与安装部署-CSDN博客 自定义 Kafka 脚本 kf-use.sh 的解析与功能与应用示例-CSDN博客 Kafka 生产者全面解析:从基础原理到高级实践-CSDN博客 Kafka 生产者优化与数据处理经验-CSDN博客 Kafka 工作流程解析&#xff1a…

Hello-Go

Hello-Go 环境变量 GOPATH 和 GOROOT :不同于其他语言,go中没有项目的说法,只有包,其中有两个重要的路径,GOROOT 和 GOPATH Go开发相关的环境变量如下: GOROOT:GOROOT就是Go的安装目录&…

android 实现答题功能

一、效果 二、实现思路 1、界面实现 实现起来其实不难,首先我们可以看到,界面是由答题进度、题目、选项ABCD组成,现在就是要考虑实现方式,答题进度可以使用Textviewprogressbar实现,题目直接使用Textview,…