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

目录

安装包

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.mzph.cn/diannao/61717.shtml

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

相关文章

centos7 安装helm v3

文章目录 1. 安装 Helm v3步骤 1:下载 Helm 安装包步骤 2:解压安装包步骤 3:将 Helm 移动到 /usr/local/bin步骤 4:验证安装 2. 使用 Helm 配置 Kubernetes步骤 1:安装并配置 kubectl步骤 2:初始化 Helm步骤…

Hive基础面试-如何理解复用率的

1. 模型的复用率你们是怎么做的? 简单直白的说就是你的模型复用率如何,在业务方是否认可该模型,也是衡量模型建设的一个标准,复用率数:数仓模型涉及的核心是追求模型的复用和共享,引用系数越高,…

eduSRC挖洞思路

声明 学习视频来自 B 站UP主泷羽sec,如涉及侵权马上删除文章。 笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负。 ✍🏻作者简介:致…

Banana Pi BPI-CanMV-K230D-Zero 采用嘉楠科技 K230D RISC-V芯片设计

概述 Banana Pi BPI-CanMV-K230D-Zero 采用嘉楠科技 K230D RISC-V芯片设计,探索 RISC-V Vector1.0 的前沿技术,选择嘉楠科技的 Canmv K230D Zero 开发板。这款创新的开发板是由嘉楠科技与香蕉派开源社区联合设计研发,搭载了先进的勘智 K230D 芯片。 K230…

昆山网站建设在移动互联网时代的作用

在当今的移动互联网时代,昆山网站建设的重要性愈加凸显。随着智能手机和移动设备的普及,用户获取信息和进行消费的方式发生了根本性的变革。企业在此背景下,必须重新审视自己的在线形象和运营策略,以适应这一变化带来的挑战和机遇…

AI赋能 Python编程之2. 从构思到优化:用AI快速实现Python项目

AI赋能 Python编程 2. 从构思到优化:用AI快速实现Python项目 利用AI生成完整的Python项目,可以帮助程序员,尤其是初学者,高效完成从项目构思到实现的全过程。本文以开发一个简单的计算器应用为例,分享了如何借助AI的…

Spring ApplicationListener

【JavaWeb】Spring ApplicationListener-CSDN博客

MFC 下拉框显示问题和控件自适应窗口大小

在mfc开发过程中,遇到了下拉框的两个问题,现在记录一下 1、把下拉框点开显示不全我放进去的多条文本 解决办法:把鼠标放到下拉框的倒三角去点一下,鼠标就会变成双向箭头,或者先选中一下下拉框再把鼠标移动到倒三角上去…

【Python-办公自动化】实现自动化输出模板表格报告

import pandas as pd import numpy as np# 定义时间范围 date_range = pd.date_range(start=2023-11-01, end=2024-10-31, freq=M

规则引擎aviatorEvaluator注意点

规则引擎aviatorEvaluator注意点 官方文档&#xff1a;AviatorScript 编程指南&#xff08;5.0&#xff09; 语雀 1、依赖 <!--规则引擎--><dependency><groupId>com.googlecode.aviator</groupId><artifactId>aviator</artifactId><…

接上一主题,C++14中如何设计类似于std::any,使集合在C++中与Python一样支持任意数据?

这篇文章的重点是C多态的应用&#xff0c;但是如果你是C新手&#xff0c; 你需要了解以下C知识&#xff1a; 类 构造函数 拷贝构造函数 虚拟函数 纯虚拟函数 析构函数 类的继承 运算符重写 模板类 模板参数 数组 数组的传递 指针与动态内存分配 Python&#xff1a; s …

SpringBoot3与JUnit5集成测试

你可以在 Spring Boot 3 中轻松设置和运行 JUnit 集成测试。合理使用 Spring 提供的注解和工具&#xff0c;可以确保测试的高效性和可靠性。以下是集成测试的步骤和示例&#xff1a; 1. 添加依赖 在 pom.xml 中添加 Spring Boot Starter Test 依赖&#xff0c;它包含 JUnit 5 …

【系统架构设计师】真题论文: 论网络安全体系设计(包括解题思路和素材)

更多内容请见: 备考系统架构设计师-专栏介绍和目录 文章目录 真题题目(2014年 试题4)解题思路论文素材参考网络安全体系设计目标与原则网络安全体系的主要组成部分网络安全体系设计流程真题题目(2014年 试题4) 随着社会信息化的普及,计算机网络已经在各行各业得到了广泛…

5.STM32之通信接口《精讲》之USART通信---实验串口接收程序

根据上节&#xff0c;我们一已经完成了串口发送程序的代码&#xff0c;并且深入的解析探索了串口的原理&#xff0c;接下来&#xff0c;Whappy小编将带领大家进入串口接收程序的探索与实验&#xff0c;并将结合上一节串口发送一起来完成串口的发送和接收实验。 上来两张图 上图…

微服务即时通讯系统的实现(服务端)----(1)

目录 1. 项目介绍和服务器功能设计2. 基础工具安装3. gflags的安装与使用3.1 gflags的介绍3.2 gflags的安装3.3 gflags的认识3.4 gflags的使用 4. gtest的安装与使用4.1 gtest的介绍4.2 gtest的安装4.3 gtest的使用 5 Spdlog日志组件的安装与使用5.1 Spdlog的介绍5.2 Spdlog的安…

macos 使用 nvm 管理 node 并自定义安装目录

系统环境&#xff1a;MacOS Version 参考文章&#xff1a; Github 地址&#xff1a;https://github.com/nvm-sh/nvm 安装的方式是很简单的&#xff0c;直接执行下面的命令即可&#xff1a; curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bas…

数字IC后端实现时钟树综合系列教程 | Clock Tree,Clock Skew Group之间的区别和联系

Q: Clock&#xff0c;Clock Tree和Skew Group有何区别&#xff1f;Innovus CCOPT引擎是如何使用这些的&#xff1f; Clock是时序约束SDC中的时钟定义点。 create_clock -name clk_osc -period $period_24m [get_ports xin_osc0_func] 时钟树综合(Clock Tree Synthesis)之前应…

tcpdump抓包 wireShark

TCPdump抓包工具介绍 TCPdump&#xff0c;全称dump the traffic on anetwork&#xff0c;是一个运行在linux平台可以根据使用者需求对网络上传输的数据包进行捕获的抓包工具。 tcpdump可以支持的功能: 1、在Linux平台将网络中传输的数据包全部捕获过来进行分析 2、支持网络层…

安装支持ssl的harbor 2.1.4 docker 19.03.8 docker-compose 1.24.0

版本&#xff1a; docker 19.03.8 docker-compose 1.24.0 harbor: harbor-offline-installer-v2.1.4.tgz 1、先在/root下生成证书 #生成ca根证书 openssl genrsa -out ca.key 4096#创建ca证书 openssl req -x509 -new -nodes -sha512 -days 3650 \-subj "/CCN/STShenzh…

青少年编程等级考试C++一级,硬币反转问题

代码 #include<iostream>using namespace std;bool a[300];int main(){ int n,m; cin >> n >> m; for(int i 1;i < m;i) { for (int j 1;j < n;j) { if( j % i 0) { a[j] !a[j];…