二百一十七、Flume——Flume拓扑结构之聚合的开发案例(亲测,附截图)

一、目的

对于Flume的聚合拓扑结构,进行一个开发测试

二、聚合

(一)结构含义

这种模式是我们最常见的,也非常实用。日常web应用通常分布在上百个服务器,大者甚至上千个、上万个服务器产生的日志,处理起来也非常麻烦。

(二)结构特征

用flume的这种组合方式能很好的解决这一问题,每台服务器部署一个 flume 采集日志,传送到一个集中收集日志的flume,再由此flume上传到hdfs、hive、hbase等,进行日志分析。

三、需求案例

(一)案例需求

hurys22 上的 Flume-1 监控文件/opt/flume/group.log,

hurys23 上的 Flume-2 监控某一个端口的数据流,

Flume-1 与 Flume-2 将数据发送给 hurys24 上的 Flume-3,Flume-3 将最终数据打印到控制台。

(二)需求分析

四、前期准备

(一)在hurys22、hurys23、hurys24上安装好Flume

(二)在hurys22、hurys23、hurys24上创建测试任务的文件夹group3

[root@hurys22 ~]# cd /usr/local/hurys/dc_env/flume/flume190/conf/
[root@hurys22 conf]# mkdir group3

(三)在hurys22上创建Flume-1的 监控文件 /opt/flume/group.log

[root@hurys22 opt]# cd ./flume/
[root@hurys22 flume]# touch group.log
[root@hurys22 flume]# ll
总用量 0
-rw-r--r-- 1 root root 0 12月 13 10:47 group.log

(四)hurys22、hurys23都可以ssh连接hurys24(192.168.0.24)

1、hurys22  ssh连接192.168.0.24

[root@hurys22 ~]# ssh -p22 root@192.168.0.24
Last login: Wed Dec 13 10:54:57 2023 from 192.168.9.123

2、hurys23  ssh连接192.168.0.24

[root@hurys23 ~]# ssh -p22 root@192.168.0.24
Last login: Wed Dec 13 11:10:32 2023 from 192.168.0.22

五、在group3中创建flume的任务文件

(一)在hurys22创建任务文件 a1    flume1-logger-flume.conf

配置 Source 用于监控 group.log 文件,配置 Sink 输出数据到下一级 Flume。

[root@hurys22 group3]# vi  flume1-logger-flume.conf

# Name the components on this agent
a1.sources = r1
a1.sinks = k1
a1.channels = c1

# Describe/configure the source
a1.sources.r1.type = exec
a1.sources.r1.command = tail -F /opt/flume/group.log
a1.sources.r1.shell = /bin/bash -c

# Describe the sink
a1.sinks.k1.type = avro
a1.sinks.k1.hostname = 192.168.0.24
a1.sinks.k1.port = 4141

# 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.sinks.k1.channel = c1

注意

1、配置文件中的各项参数需要调式,这里只是为了演示,实现目的、打通路径即可!实际在项目中操作时需要调试参数。

2、a1.sources.r1.command = tail -F /opt/flume/group.log                   为监控文件的group.log路径

(二)在hurys23创建任务文件 a2   flume2-netcat-flume.conf

配置 Source 监控端口 44444 数据流,配置 Sink 数据到下一级 Flume

[root@hurys23 group3]# vi flume2-netcat-flume.conf

# Name the components on this agent
a2.sources = r1
a2.sinks = k1
a2.channels = c1

# Describe/configure the source
a2.sources.r1.type = netcat
a2.sources.r1.bind = hurys23
a2.sources.r1.port = 44444

# Describe the sink
a2.sinks.k1.type = avro
a2.sinks.k1.hostname = 192.168.0.24
a2.sinks.k1.port = 4141

# Use a channel which buffers events in memory
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

(三)在hurys24创建任务文件 a3   flume3-flume-logger.conf

配置 source 用于接收 flume1 与 flume2 发送过来的数据流,最终合并后 sink 到控制台。

[root@hurys24 group3]# vi  flume3-flume-logger.conf

# Name the components on this agent
a3.sources = r1
a3.sinks = k1
a3.channels = c1

# Describe/configure the source
a3.sources.r1.type = avro
a3.sources.r1.bind = hurys24
a3.sources.r1.port = 4141

# Describe the sink
a3.sinks.k1.type = logger

# Describe the channel
a3.channels.c1.type = memory
a3.channels.c1.capacity = 1000
a3.channels.c1.transactionCapacity = 100

# Bind the source and sink to the channel
a3.sources.r1.channels = c1
a3.sinks.k1.channel = c1

六、分别启动Flume任务文件

(一)首先在hurys24启动 a3任务    flume3-flume-logger.conf

[root@hurys24 flume190]# bin/flume-ng agent -n a3  -f /usr/local/hurys/dc_env/flume/flume190/conf/group3/flume3-flume-logger.conf

(二)其次在hurys23启动 a2任务   flume2-netcat-flume.conf

[root@hurys23 flume190]# bin/flume-ng agent -n a2  -f /usr/local/hurys/dc_env/flume/flume190/conf/group3/flume2-netcat-flume.conf

(三)其次在hurys22启动 a1任务    flume1-logger-flume.conf

[root@hurys22 flume190]# bin/flume-ng agent -n a1  -f /usr/local/hurys/dc_env/flume/flume190/conf/group3/flume1-logger-flume.conf

七、Flume任务运行执行状况

(一)hurys22   a1任务运行截图

(二)hurys23   a2任务运行截图

(三)hurys24   a3任务运行截图

八、hurys22上向/opt/flume/目录下的 group.log 追加内容,观察hurys24的控制台打印情况

(一)hurys22上向/opt/flume/目录下的 group.log 追加内容

[root@hurys22 group3]# cd /opt/flume/
[root@hurys22 flume]# echo 'hello' > group.log
[root@hurys22 flume]# echo 'hello java' > group.log

(二)观察hurys24的控制台打印情况

九、hurys23上用netcat 工具向 44444 端口发送数据,观察hurys24的控制台打印情况

(一)hurys23上用netcat 工具向 44444 端口发送数据

[root@hurys23 flume3]# telnet hurys23 44444
Trying fe80::65e8:aec4:9ddc:391%eth0...
telnet: connect to address fe80::65e8:aec4:9ddc:391%eth0: Connection refused
Trying 192.168.0.23...
Connected to hurys23.
Escape character is '^]'.
zhao qian
OK
sun li
OK
zhou wu
OK
zheng wang
OK

(二)观察hurys24的控制台打印情况

Flume的聚合结构案例就到这里吧,有点明白了。

把2个Flume的数据聚合到第3个Flume里面,然后一起输出,这样省的一个个输出。节省功夫

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

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

相关文章

孩子还是有一颗网安梦——Bandit通关教程:Level 10 → Level 11

🕵️‍♂️ 专栏《解密游戏-Bandit》 🌐 游戏官网: Bandit游戏 🎮 游戏简介: Bandit游戏专为网络安全初学者设计,通过一系列级别挑战玩家,从Level0开始,逐步学习基础命令行和安全概念…

Backtrader 文档学习-Platform Concepts

Backtrader 文档学习-Platform Concepts 1.开始之前 导入backtrader ,以及backtrader 的指示器、数据反馈的模块 。 import backtrader as bt import backtrader.indicators as btind import backtrader.feeds as btfeeds看看btind模块下有什么方法和属性&#x…

51单片机控制1602LCD显示屏输出两行文字一

51单片机控制1602LCD显示屏输出两行文字一 1.概述 这篇文章介绍1602型号显示屏的基础知识,以及使用单片机控制它输出两行内容。 2.1602基础知识 1602 液晶显示模块是一种通用的工业液晶显示模块,专门用来显示字母、数字、符号等的点阵型液晶显示模块…

VLAN详细学习

文章目录 VLAN概念VLAN种类端口VLAN工作原理以太网的三种链路类型配置 VLAN概念 一种讲局域网设备从逻辑上划分为一个个网段,从而实现虚拟网络的一种技术,这一技术主要应用于交换机中。Vlan技术是技术在以太网帧的基础上增加vlan头,用VLAN I…

云计算与大数据技术应用知识及案列

云计算与大数据技术应用知识及案列 简述什么是云计算? 答:云计算是一种动态扩展的计算模式,通过网络将虚拟化的资源作为服务提供;云计算是一种无处不在的、便捷的通过互联网访问一个可定制的IT资源(IT资源包括网络、服…

R2O语义分割: Refine and Represent: Region-to-Object Representation Learning

paper: arxiv.org/pdf/2208.11821v2.pdf repo link: KKallidromitis/r2o: PyTorch implementation of Refine and Represent: Region-to-Object Representation Learning. (github.com) 摘要: 在本文中提出了区域到对象表示学习(Region-to-Object Rep…

shell编程-cut命令详解(超详细)

前言 cut 命令是一个在命令行中使用的用于提取文件内容的工具。它可以根据指定的字段或字符位置来截取文件中的数据,并将结果输出到标准输出或指定的文件中。本文将详细介绍 cut 命令的常用选项和参数,帮助您更好地理解和使用 cut 命令。 一、cut命令介…

js 转换为数组并返回(Array.of())

Array提供了方法直接将一组值转换为数组并返回 Array.of()方法 Array.of(1,2,3) 结果

【NSX-T】2. 搭建NSX-T环境 —— 配置 NSX-T 基本设置

目录 2. 配置 NSX-T 基本设置2.1 访问 NSX Manager UI2.2 添加和查看 NSX Manager 许可证2.3 设置用户界面模式 参考资料 2. 配置 NSX-T 基本设置 2.1 访问 NSX Manager UI 打开跳板机浏览器,在URL中输入:https://192.168.1.23/ 或 https://manager32.…

【教程】 Vue混淆加密与还原

目录 引言 混淆 使用ipaguard来对程序进行加固 还原 总结 参考资料 引言 Vue是一种流行的JavaScript框架,用于构建用户界面。它简单易用且功能强大,备受开发者喜爱。然而,在传输和存储过程中,我们需要保护Vue代码的安全性。混…

centos7中的管道和重定向

重定向 0 标准输入 1 标准输出 2 标准错误 3 进程在执行的过程中打开的其他文件 & 标准正确和标准错误的混合输出 输出重定向 &g…

【Linux】锁的简单封装以及原理解析

文章目录 一、锁的原理过程1:过程2过程3过程4 二、 锁的简单封装1.LockGuard.hpp2.使用1.正常锁的使用2.使用封装后的 总结 一、锁的原理 为了实现互斥锁操作,大多数体系结构都提供了swap或exchange指令,该指令的作用是把寄存器和内存单元的数据相交换,由于只有一条…

算法Day31 房间收纳

房间收纳 Description 对于零落的玩具,你需要进行收纳,为了将最多的玩具进行收纳,请你合理分配收纳柜和房间数量。 请你将一些玩具收纳在一个房间中,给你一个二维数组 roomTypes,其中的roomTypes[i] {numberOfBoxes_…

Narak

靶场下载 https://download.vulnhub.com/ha/narak.ova 信息收集 # nmap -sn 192.168.1.0/24 -oN live.nmap Starting Nmap 7.94 ( https://nmap.org ) at 2023-12-09 22:18 CST Nmap scan report for 192.168.1.1 (192.168.1.1) Host is up (0.…

AI智能视界,视频监控技术的革新与突破

智能视频监控概述 TSINGSEE青犀智能监控系统是通过摄像头采集视频数据,经过压缩技术处理后传输至服务器,再由服务器进行存储和管理并汇聚到EasyCVR视频融合平台之中,进行统一的分发处理。采用先进的视频压缩技术,确保视频质量&am…

锂电池基础知识及管理方式总结

这两天在排查一个锂电池无法充电的问题,用的是电池管理芯片BQ25713,网上相关的资料也很少,查看数据手册时,里面也有很多术语参数等不是很理解,所以,在此对锂电池的基础知识做个简单的总结,方面后…

如何通过控制台排查定位EasyCore?

过去当数据库出现了问题,我们只能通过日志去查看问题,可能是数据库有了重启、主节点发生了漂移或查询语句太复杂,这一整套逻辑走下来只能winsen, karel。 我们经常说数据库负载过高,请求很多,但我们却不能直接告诉哪个…

MacOS系统使用ESP8266(CP2102)开发板

开发板实物 连接开发板到macos 终端输入lsusb查看,开发板硬件成功识别 打开Arduino IDE并选择开发板 开发板连接成功 编译代码 上传成功 打开串口监视器,按一下RST键,可看到WIFI名输出及WIFI的IP输出 WIFI热点功能启用

Python 自动化之修理PDF文件(二)

PDF文件_合并与拆分PDF文档Pro版本 文章目录 PDF文件_合并与拆分PDF文档Pro版本前言一、要做成什么样子二、主要用到的函数三、基本思路1.引入库2.创建用户输入模块3.确定主框架 四、文档合并代码模块1.用户输入和函数调用2.引导用户输入文档信息3.合并文档内容4.命名新文档生成…

传输层协议:TCP协议和UDP协议

文章目录 传输层协议:TCP协议和UDP协议一、TCP协议介绍(面向连接,稳定,慢)1、TCP特性2、TCP报文格式3、TCP三次握手4、TCP四次挥手5、常用的TCP端口号及其功能 二、UDP协议介绍(无连接,不稳定&a…