Flume 日志采集系统

news2024/9/25 15:27:28

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.coloradmin.cn/o/2110129.html

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

相关文章

使用 StatisticalOutlierRemoval 过滤器删除离群值

下载数据集 table_scene_lms400.pcd 并将其保存到磁盘的某个位置。 然后&#xff0c;创建一个文件&#xff0c;比如说&#xff0c;在你的收藏夹中 编辑器&#xff0c;并将以下内容放入其中&#xff1a;statistical_removal.cpp #include <iostream> #include <pcl/i…

安科瑞光伏三相电子式导轨电表ADL400N-CT双向计量防逆流自带互感器电表

概述 ADL系列导轨式多功能电能表&#xff0c;是主要针对于光伏并网系统、微逆系统、储能系统、交流耦合系统等新能源发电系统而设计的一款智能仪表&#xff0c;产品具有精度高、体积小、响应速度快、安装方便等优点。具有对电力参数进行采样计量和监测&#xff0c;逆变器或者能…

rancher搭建k8s及jenkins自动化部署

1、准备环境 角色IP用途k8s-rancher-master192.168.3.63master节点k8s-rancher-node01192.168.3.64node节点k8s-rancher-node02192.168.3.66node节点k8s-rancher-server192.168.2.33rancher-server节点注: 服务器名需要配置不同,相同服务器名不能加入node节点 在所有节点进行…

WebStorm用Debug模式调试Vue等前端项目

问题说明 开发前端时&#xff0c;一直很苦恼调试前端代码的麻烦。 简单的内容可以通过console.log()在控制台打印变量值&#xff0c;来验证预期结果。 涉及到稍复杂的逻辑&#xff0c;就需要在代码中侵入增加debugger&#xff0c;或者在浏览器中找到js文件&#xff0c;再手动添…

稀土废水回收硫酸铵树脂技术

稀土废水回收硫酸铵的过程主要涉及到化学沉淀法、离子交换法和蒸发结晶法等技术。这些方法可以有效地从稀土废水中回收硫酸铵&#xff0c;同时降低废水中的氨氮含量&#xff0c;实现资源的循环利用。以下是具体的技术介绍&#xff1a; 稀土废水回收硫酸铵的技术 ● 化学沉淀…

C++笔记18•数据结构:AVL树•

AVL树 简介&#xff1a; 当搜索二叉树退化为单支树时&#xff0c;搜索效率极低&#xff0c;为了使搜索效率高&#xff0c;建立平衡搜索二叉树就需要AVLTree这样的平衡树来解决。如果在一棵原本是平衡的AVL树中插入一个新节点&#xff0c;可能造成不平衡&#xff0c;此时必须调整…

领夹麦克风哪个好,领夹麦哪个牌子音质好,音质最好的麦克风推荐

在数字化内容创作的浪潮中&#xff0c;无线领夹麦克风以其便携高效的特点&#xff0c;成为了音频捕捉领域的热门选择。然而&#xff0c;每款产品都有其两面性&#xff0c;无线领夹麦克风在提供便利的同时&#xff0c;也潜藏着一些不容忽视的使用困扰。今天&#xff0c;我们就来…

【AI】张量的秩(阶)与矩阵的秩和阶的区别

在阅读MindSpore文档时&#xff0c;笔者对这段话不太理解&#xff0c;遂求助ChatGPT. 矩阵的秩是矩阵中线性无关的行或者列&#xff0c;矩阵的阶就是矩阵中的行数和列数。 而张量的秩和阶是一个概念&#xff0c;指的是张量的维度&#xff08;是1维的&#xff0c;二维的还是高维…

CRM软件的演进:从传统到连接型CRM

1、CRM定义与分类 1.1CRM的定义 CRM,英文Customer Relationship Management的缩写&#xff0c;中文全称为客户关系管理。通常情况下&#xff0c;人们通常用CRM直接表达客户关系管理软件系统——一个以客户为中心的专门用于管理与客户关系的软件工具&#xff0c;以确保与客户…

AI算力池化平台加速智能驾驶技术发展

1886年&#xff0c;世界上第一辆汽车诞生。在随后的一百多年时间里&#xff0c;汽车成为广泛用于社会经济生活多种领域的重要交通运输工具&#xff0c;极大地推动了人类社会经济的发展。进入新世纪&#xff0c;汽车的电动化、智能化日趋明显。 在汽车智能化方面&#xff0c;最…

YOLOv8改进 | 模块缝合 | C2f 融合RFAConv增强感受野空间特征 【完整代码 + 自研创新】

秋招面试专栏推荐 &#xff1a;深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 &#x1f4a1;&#x1f4a1;&#x1f4a1;本专栏所有程序均经过测试&#xff0c;可成功执行&#x1f4a1;&#x1f4a1;&#x1f4a1; 专栏目录 &#xff1a;《YOLOv8改进有效…

龙胆草:恰似神秘星辰般的独特花语与奇幻传说

龙胆草&#xff0c;宛如大自然中一颗璀璨的神秘星辰。其不仅拥有着如诗般“恋上不快乐得你”的独特花语&#xff0c;背后更隐藏着中国和日本等充满奇幻色彩的传说故事。从曾童与蛇娘的传奇到日本兔子掘草根救人的奇闻&#xff0c;龙胆草承载着深厚的文化底蕴。快来一同探寻龙胆…

探索全光网技术 | 全光网产品解决方案整理-(宇洪科技)

探索全光网技术 |全光网产品解决方案整理-宇洪科技 目录 一、数据中心场景1、方案概述2、方案需求3、相关产品4、产品推荐5、方案价值 二、教育场景1、方案概述2、方案需求3、相关产品4、方案价值 三、医疗场景1、方案概述2、方案需求3、相关产品4、方案价值 注&#xff1a;本文…

LeetCode题练习与总结:天际线问题--218

一、题目描述 城市的 天际线 是从远处观看该城市中所有建筑物形成的轮廓的外部轮廓。给你所有建筑物的位置和高度&#xff0c;请返回 由这些建筑物形成的 天际线 。 每个建筑物的几何信息由数组 buildings 表示&#xff0c;其中三元组 buildings[i] [lefti, righti, heighti…

Peet‘s Coffee与观测云跨界合作,为伙伴们呈现双重喜悦

随着中秋佳节的临近&#xff0c;国内监控观测行业的领军企业观测云&#xff0c;携手国际知名咖啡品牌 Peets Coffee&#xff0c;共同打造了一款专为中秋佳节定制的特别礼盒&#xff0c;这份礼盒不仅是对传统节日的现代诠释&#xff0c;更是对雅致生活的深情致敬。 Peets Coffe…

【专题】2024年8月医药行业报告合集汇总PDF分享(附原数据表)

原文链接&#xff1a;https://tecdat.cn/?p37621 在科技飞速发展的当今时代&#xff0c;医药行业作为关乎人类生命健康的重要领域&#xff0c;正处于前所未有的变革浪潮之中。数智医疗服务的崛起&#xff0c;为医疗模式带来了全新的转变&#xff0c;开启了医疗服务的新时代。…

伴奏提取消除人声如何操作?轻松几步玩转音乐世界

你是否梦想着独自演绎一曲&#xff0c;或是进行个性化的混音创作&#xff0c;却又希望摆脱原唱声音的干扰&#xff1f;那么&#xff0c;学会免费伴奏提取就显得尤为关键。 在这篇文章中&#xff0c;我将为你展示四种简单易学的方法&#xff0c;让你能够轻松地从歌曲中提取出伴…

手机上将mp4转换成amv怎么转?视频转换,3个方法拿捏

在这个社交媒体时代&#xff0c;视频已经成为人们传递信息、表达情感的重要方式之一。然而&#xff0c;不同的设备和平台对视频格式的要求不尽相同&#xff0c;这就需要我们不时地进行视频格式转换&#xff0c;以便在不同的场景中更好地展示和分享我们的作品。 对视频格式转换…

物联网之ESP32控制GPIO输出点亮LED、网页控制LED开关

MENU 前言原理GPIO引脚LED 硬件电路设计软件设计1、点亮一颗LED2、闪烁的LED3、网页控制LED开关 前言 不论学习什么单片机&#xff0c;最简单的外设莫过于IO口的高低电平控制LED&#xff0c;本文介绍如何使用Arduino控制ESP32的GPIO输出。通过本文的学习&#xff0c;掌握一定的…

Qt26代理delegate

代理delegate mainwindowmainwindow.hmainwindow.cpp datedelegatedatedelegate.hdatedelegate.cpp combodelegatecombodelegate.hcombodelegate.cpp spindelegatespindelegate.hspindelegate.cpp main.cpp运行图 mainwindow mainwindow.h #ifndef MAINWINDOW_H #define MAIN…