Flume 日志采集系统

Flume 日志采集系统

  • 一、Flume 概述
  • 二、Flume 架构设计
    • 2.1 架构图
    • 2.2 Flume Source 类型
    • 2.3 Flume Channel 类型
    • 2.4 Flume Sink 类型
  • 三、Flume 安装部署
    • 3.1 下载解压
    • 3.2 上传解压
    • 3.3 修改配置文件
    • 2.4 启动 Flume Agent
  • 四、案例实践:Flume 分布式集群搭建
    • 4.1 Flume 集群架构图
    • 4.2 配置 Flume 采集服务
    • 4.3 配置 Flume 聚合服务
    • 4.4 添加配置文件中的目录
    • 4.5 Flume 集群测试
      • 4.5.1 启动聚合服务
      • 4.5.2 启动采集服务
      • 4.5.3 准备测试数据

一、Flume 概述

Flume是Cloudera开发的一个分布式的、可靠的、高可用的系统,它能够将不同数据源的海量日志数据进行高效收集、聚合、移动,最后存储到一个中心化的数据存储系统中。随着互联网的发展,特别是移动互联网的兴起,产生了海量的用户日志信息,为了实时分析和挖掘用户需求,需要使用Flume高效快速采集用户日志,同时对日志进行聚合避免小文件的产生,然后将聚合后的数据通过管道移动到存储系统进行后续的数据分析和挖掘。

二、Flume 架构设计

2.1 架构图

在这里插入图片描述

2.2 Flume Source 类型

在这里插入图片描述

2.3 Flume Channel 类型

在这里插入图片描述

2.4 Flume Sink 类型

在这里插入图片描述

三、Flume 安装部署

3.1 下载解压

下载地址:https://archive.apache.org/dist/flume/

本次下载的是1.9.0版本

3.2 上传解压

生成到 /usr/local ,解压脚本如下:

[root@hadoop1 local]# tar zxvf /usr/local/apache-flume-1.9.0-bin.tar.gz

创建软连接

[root@hadoop1 local]# ln -s apache-flume-1.9.0-bin flume

在这里插入图片描述

3.3 修改配置文件

拷贝配置文件

[root@hadoop1 flume]# cp /usr/local/flume/conf/flume-conf.properties.template /usr/local/flume/conf/flume-conf.properties

可以使用默认配置,不修改

[root@hadoop1 flume]# vim /usr/local/flume/conf/flume-conf.properties

在这里插入图片描述

2.4 启动 Flume Agent

[root@hadoop1 flume]# /usr/local/flume/bin/flume-ng agent -n agent -c conf -f /usr/local/flume/conf/flume-conf.properties -Dflume.root.logger=INFO,console

打印消息到控制台
在这里插入图片描述

四、案例实践:Flume 分布式集群搭建

4.1 Flume 集群架构图

在这里插入图片描述
蓝色部分为日志采集,通常在需要采集日志的服务器部署,绿色的 channel 为聚合服务器,对采集的数据进行聚合,并做了负载

4.2 配置 Flume 采集服务

[root@hadoop1 flume]# vim /usr/local/flume/conf/taildir-file-selector-avro.properties

添加如下内容:

#定义source、channel、sink的名称
agent1.sources = taildirSource
agent1.channels = fileChannel
agent1.sinkgroups = g1
agent1.sinks = k1 k2
# 定义和配置一个TAILDIR Source
agent1.sources.taildirSource.type = TAILDIR
agent1.sources.taildirSource.positionFile = /usr/local/data/flume/taildir_position.json
agent1.sources.taildirSource.filegroups = f1
agent1.sources.taildirSource.filegroups.f1 = /usr/local/data/flume/logs/sogou.log
agent1.sources.taildirSource.channels = fileChannel
# 定义和配置一个file channel
agent1.channels.fileChannel.type = file
agent1.channels.fileChannel.checkpointDir = /usr/local/data/flume/checkpointDir
agent1.channels.fileChannel.dataDirs = /usr/local/flume/dataDirs
#定义和配置一个 sink组
agent1.sinkgroups.g1.sinks = k1 k2
#为sink组定义一个处理器,load_balance表示负载均衡  failover表示故障切换
agent1.sinkgroups.g1.processor.type = load_balance
agent1.sinkgroups.g1.processor.backoff = true
#定义处理器数据发送方式,round_robin表示轮询发送  random表示随机发送
agent1.sinkgroups.g1.processor.selector = round_robin
agent1.sinkgroups.g1.processor.selector.maxTimeOut=10000
#定义一个sink将数据发送给hadoop2节点
agent1.sinks.k1.type = avro
agent1.sinks.k1.channel = fileChannel
agent1.sinks.k1.batchSize = 1
agent1.sinks.k1.hostname = hadoop2
agent1.sinks.k1.port = 1234
#定义另一个sink将数据发送给hadoop3节点
agent1.sinks.k2.type = avro
agent1.sinks.k2.channel = fileChannel
agent1.sinks.k2.batchSize = 1
agent1.sinks.k2.hostname = hadoop3
agent1.sinks.k2.port = 1234

4.3 配置 Flume 聚合服务

聚合前,先把 /usr/local/flume 文件夹内容同步到 hadoop2和hadoop3

[root@hadoop1 flume]# deploy.sh /usr/local/flume /usr/local/ slave

在 hadoop2 和 hadoop3 进行如下相同的配置:

[root@hadoop2 flume]# vim /usr/local/flume/conf/avro-file-selector-logger.properties

添加内容:

#定义source、channel、sink的名称
agent1.sources = r1
agent1.channels = c1
agent1.sinks = k1
# 定义和配置一个avro Source
agent1.sources.r1.type = avro
agent1.sources.r1.channels = c1
agent1.sources.r1.bind = 0.0.0.0
agent1.sources.r1.port = 1234
# 定义和配置一个file channel
agent1.channels.c1.type = file
agent1.channels.c1.checkpointDir = /usr/local/data/flume/checkpointDir
agent1.channels.c1.dataDirs = /usr/local/data/flume/dataDirs
# 定义和配置一个logger sink
agent1.sinks.k1.type = logger
agent1.sinks.k1.channel = c1

4.4 添加配置文件中的目录

在 hadoop1、hadoop2和hadoop3分别执行如下操作

[root@hadoop1 ~]# mkdir -p /usr/local/data/flume/logs
[root@hadoop1 ~]# touch /usr/local/data/flume/logs/sogou.log

4.5 Flume 集群测试

4.5.1 启动聚合服务

在 hadoop2 和 hadoop3 分别启动如下脚本:

[root@hadoop2 flume]# /usr/local/flume/bin/flume-ng agent -n agent1 -c conf -f /usr/local/flume/conf/avro-file-selector-logger.properties -Dflume.root.logger=INFO,console

在这里插入图片描述

4.5.2 启动采集服务

在 hadoop1 服务器执行如下命令:

[root@hadoop1 flume]# /usr/local/flume/bin/flume-ng agent -n agent1 -c conf -f /usr/local/flume/conf/taildir-file-selector-avro.properties -Dflume.root.logger=INFO,console

在这里插入图片描述

4.5.3 准备测试数据

在 hadoop1 执行如下插入数据脚本:

[root@hadoop1 flume]# echo '00:00:100971413028304674[火炬传递路线时间]1 2www.olympic.cn/news/beijing/2008-03-19/1417291.html' >> /usr/local/data/flume/logs/sogou.log

在这里插入图片描述
hadoop2 和 hadoop3 聚合日志

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

hadoop1 打印采集的日志
在这里插入图片描述

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

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

相关文章

基于SpringBoot的准妈妈孕期交流平台

你好呀,我是计算机学姐码农小野!如果有相关需求,可以私信联系我。 开发语言:Java 数据库:MySQL 技术:SpringBoot框架 工具:IDEA/Eclipse、Navicat 系统展示 首页 管理员登录 用户管理 早教…

利用CubeMX复现正点原子TFTLCD驱动例程

来源:正点原子 FMC的工作原理暂时先欠着,先记录一下CRUD的过程。 第一步准备一个us级别延时函数,不会的参考拙作:STM32的定时器简介-CSDN博客 第二部开启FMC外设: ①进入 Pinout->FMC 配置栏,配置 …

如何做好网络安全

随着互联网技术的飞速发展,网站已成为企业对外展示、交流和服务的重要窗口。然而,随之而来的网站安全问题也日益凸显,给企业的业务发展和用户数据安全带来了巨大威胁。因此,高度重视网站安全已成为网络安全的首要任务。今天我们就…

使用ffmpeg在视频中绘制矩形区域

由于项目需要对视频中的人脸做定位跟踪, 我先使用了人脸识别算法,对视频中的每个帧识别人脸、通过人脸库比对,最终记录坐标等信息。 然后使用ffmpeg中的 drawbox 滤镜功能,选择性的绘制区域。从而实现人脸定位跟踪 1、drawbox …

用于协作代码开发的 10 大 GitHub 集成

GitHub 是开发人员的天堂。开发人员在分布式 GitHub 存储库中存储和管理其源代码,允许多个贡献者同时处理项目。这种协作行动将生产力提高了 22%,将修复漏洞的速度提高了 7 倍,并将入职时间缩短了 80%。 作为一个版本控制系统,它允许开发人员跟踪和审查更改、管理分支和合…

【Sceneform-EQR】通过sceneform-eqr实现一个视频播放器(使用安卓MediaPlayer实现视频播放)

在前一篇文档中介绍了如何在AR\三维场景创建几种背景 【Sceneform-EQR】scenefrom-eqr中的几种背景实现(不仅用于AR、三维场景,在图片、视频播放器中也适用) 本文将侧重介绍如何使用安卓MediaPlayer实现视频播放。 ↓↓↓↓↓↓↓↓↓↓↓↓ 以下正文 ↓↓↓↓↓↓…

李彦宏内部讲话曝光,谈大模型三大认知误区:智能体还是非共识

“外界对大模型有相当多的误解,”近日据媒体报道,李彦宏的一则内部讲话曝光。在最近一次和员工交流中,李彦宏谈及三个大模型认知误区,涵盖了大模型竞争、开源模型效率、智能体趋势等热点话题。 李彦宏认为未来大模型之间的差距可…

DWI扩散磁共振成像和结构连接组学指南

扩散磁共振成像和结构连接组学指南 引言流程概述扩散磁共振成像(dMRI)dMRI基础ADC( apparent diffusion coefficient, 表观扩散系数)MD(mean diffusivity, 平均扩散率)FA( fractional anisotropy, 分数各向异性&#x…

“左侧文字横向”的QTabWidget

左侧用 QToolButton 组, 右侧用 QStackedWidget,信号槽绑定切换页面 可定制化高 QButtonGroup* btnGp new QButtonGroup(this);btnGp->addButton(ui->btn1, 0);btnGp->addButton(ui->btn2, 1);btnGp->addButton(ui->btn3, 2);connect…

MongoDB的Map-Reduce操作与聚合管道操作的两个实例相互转换

一、插入集合 comment 的文档的内容 二、题目要求 将集合 comment 中的文档进行聚合操作,即将字段 state为1的文档查询出来,然后按字段 nickname 进行分组,最后计算出每个评论者的评论条数。 三、mapReduce 操作代码 db.comment.mapReduce(// Map函数&…

linux搭建深度学习平台

linux搭建深度学习平台(Ubuntu) /home/guangyao/anaconda3 我服务器的anaconda地址 ~/anaconda3 1 首先就是打开浏览器,我实验室的是火狐,搜索anaconda下载,找到下载目录,cd进去, 2安装 bas…

鸿蒙界面开发——组件(6):属性字符串(StyledString)文本输入

属性字符串StyledString/MutableStyledString MutableStyledString继承于StyledString,以下统一简称StyledString。 是功能强大的标记对象,可用于字符或段落级别设置文本样式。 通过将StyledString附加到文本组件, 可以通过多种方式更改文本…

爆改YOLOv8|利用SCConv改进yolov8-即轻量又涨点

1,本文介绍 SCConv(空间和通道重构卷积)是一种高效的卷积模块,旨在优化卷积神经网络(CNN)的性能,通过减少空间和通道的冗余来降低计算资源的消耗。该模块由两个核心组件构成: 空间重…

ELK在Linux上部署教程

Docker Compose搭建ELK Elasticsearch默认使用mmapfs目录来存储索引。操作系统默认的mmap计数太低可能导致内存不足,我们可以使用下面这条命令来增加内存 sysctl -w vm.max_map_count262144创建Elasticsearch数据挂载路径 mkdir -p /echola/elasticsearch/data对…

【截图服务 +打包】pkg打包 puppeteer

目录 最后结论 windows打包成服务 定制executablePath 用程序来查找chrome.exe 代替上面的写配置文件 服务遇到的问题 使用java开一个线程启动 遇到的问题与解决 版本匹配问题 打出包后的运行报错问题 linux下的安装 安装n 库缺少 程序运行后的报错 制作 运行报…

IT前端好用的工具集

在线抠图网站 https://www.remove.bg/ 将iconfont转成css显示 https://transfonter.org/ 免费的在线图片压缩 https://tinypng.com/ JSON在线格式化工具 https://www.sojson.com/ 国内人工智能kimi.moonshot工具 https://kimi.moonshot.cn/chat/crft7a6sdv14grouufs0 自动…

当人工智能聊天机器人出现问题时

在快速发展的人工智能领域,出现了一项新的挑战。“人工智能私语者”正在通过说服行为良好的聊天机器人打破自己制定的规则来探索人工智能伦理的界限。 这些漏洞被称为即时注入或“越狱”,它们暴露了人工智能系统的漏洞,引发了人们对其安全性…

基于SpringBoot+Vue+MySQL的教学资源共享平台

系统展示 用户前台界面 管理员后台界面 系统背景 随着信息技术的迅猛发展,教育领域对高效、便捷的教学资源需求日益增长。传统教学模式已难以满足当前教育的多样化需求,特别是在资源共享与利用方面存在明显不足。因此,构建一个基于SpringBoot…

OPENAIGC开发者大赛企业组AI黑马奖 | 包你面-AI面试助手

在第二届拯救者杯OPENAIGC开发者大赛中,涌现出一批技术突出、创意卓越的作品。为了让这些优秀项目被更多人看到,我们特意开设了优秀作品报道专栏,旨在展示其独特之处和开发者的精彩故事。 无论您是技术专家还是爱好者,希望能带给您…

HashTable哈希表

概念 散列表(Hash Table),又称哈希表。是一种数据结构,特点是:数据元素的关键字与其存储地址直接相关 在顺序结构以及树型结构中,数据元素的关键字与其存储位置没有对应的关系,因此在查找一个元素时,必须要经过关键码…