大数据采集工具——Flume简介安装配置使用教程

Flume简介&安装配置&使用教程

1、Flume简介

一:概要

Flume 是一个可配置可靠高可用大数据采集工具,主要用于将大量的数据从各种数据源(如日志文件、数据库、本地磁盘等)采集到数据存储系统(主要为Hadoop HDFS)中,用来处理日志数据,并支持在数据流中可靠、高效地移动数据。

二:Flume的基础架构

详细讲解

Flume主要由三部分组成:SourceChannelSink

1.Source:负责接收数据至 Flume Agent 组件中【入口】,常见的数据源主要有TailDirSpoolingDir

  • SpoolingDirTailDir都是Flume中的一个文件型数据源,可以实时监控指定目录下的新增和修改文件,并将这些文件的内容传输至Flume中
  • TailDir适用于实时监控日志文件并传输到其他系统的场景,特别是处理持续追加内容的日志文件情景,支持正则表达式匹配文件名。
  • SpoolingDir适用于同步新文件(完整且不变)到Flume Sink的场景,不支持直接通过正则表达式匹配文件名。

2.Channel:位于 Source 和 Sink 之间的【缓冲区】。通常是Memory【内存中的队列】,FileKafka

3.Sink:负责从Channel缓冲区中获取数据并将其存储到目标存储系统中【出口】。目标存储系统一般有HDFS,Hive,Hbase,Kafka,通常将数据存放于HDFS中。

2、Flume安装配置

# 1、将安装包放置虚拟机中的/opt/download目录下# 2、解压缩至/opt/software目录下,并改名为flume-1.9.0
解压:cd /opt/downloadtar -zxvf apache-flume-1.9.0-bin.tar.gz -C /opt/software/
重命名:cd /opt/softwaremv apache-flume-1.9.0-bin/ flume-1.9.0# 3、复制相关依赖操作
进入flume的lib目录中:cd /opt/software/flume-1.9.0/lib/# 复制 hadoop 相关依赖到flume的lib目录下cp /opt/software/hadoop-3.1.3/share/hadoop/*/*.jar ./# 复制 hive hcatelog 相关依赖到flume的lib目录下cp /opt/software/hive-3.1.2/hcatalog/share/hcatalog/*.jar ./# 复制 hive 相关依赖到flume的lib目录下cp /opt/software/hive-3.1.2/lib/hive-*.jar ./cp /opt/software/hive-3.1.2/lib/antlr*.jar ./# 4、放大堆内存
进入flume的bin目录下:cd /opt/software/flume-1.9.0/bin/vim flume-ng--------- 修改配置 -----------JAVA_OPTS="-Xmx1024m"-----------------------------# 结束!

3、Flume使用教程——交易行为日志采集

一:创建ebs_act_log目录存放源数据【入口】

此处我们的数据源是与交易相关的数据。因此,在ebs_act_log目录下创建一个transaction_log目录,用于存放与交易数据相关的文件。此处的transaction_log目录将作为【数据来源】使用,今后只需将相关数据文件放置在该目录下即可,主要用于【上传数据】

mkdir ebs_act_log
cd ebs_act_log
mkdir transaction_log

二:需在HDFS上提前创建好存放数据的目录【出口】

此处,我们将数据存放在**/external_ebs/transaction**目录下,如图所示:

三:Flume相关需求配置

为了使得构建时目录结构清晰,同时为我们之后做数仓更为便利,我将Flume相关配置统一放置在了project_ebs目录中的act_log_extract/flume_config目录下。

在flume_config目录中我们需要构建四个基本目录,分别是channel-checkpointchannel-dataconf-fileposition-file。先介绍这四个目录分别所起到的作用:

  • channel-checkpointchannel-data目录是存放任务过程文件;
  • position-file目录是存放位置记录相关文件,便于下次读取数据时无需重复读取相同内容;
  • conf-file目录是用于存放flume相关的配置文件

position-file目录中可以创建一个文件transaction_pos.log,内部可先进行以下操作【可选】:

然后,在conf-file目录下创建transaction.cnf文件【其中配置源文件source,目标文件sink,以及channel相关信息】,Flume数据采集就是通过读取此配置来实现实时监控。【◉:可修改处】

vim transaction.cnf
-----------------------------------------------------------------------
a1.sources = r1
a1.channels = c1 
a1.sinks = s1 a1.sources.r1.type = TAILDIR
a1.sources.r1.positionFile = /root/project_ebs/act_log_extract/flume_config/position-file/transaction_pos.log   # 采集数据的相关位置记录:标志读取数据位置,便于下次操作时不重复读取相同内容 ◉
a1.sources.r1.filegroups = f1
a1.sources.r1.filegroups.f1 = /root/ebs_act_log/transaction_log/part-.*	# 数据来源【数据名不可相同,否则会覆盖】◉
a1.sources.r1.fileHeader = false  # 数据没有表头,只需填写 false 即可;若有,则true
# a1.sources.r1.headers.f1.headerKey1 = store # 数据没有表头,就无需配置a1.channels.c1.type = file
a1.channels.c1.checkpointDir = /root/project_ebs/act_log_extract/flume_config/channel-checkpoint   # 检查点
a1.channels.c1.dataDirs = /root/project_ebs/act_log_extract/flume_config/channel-data   # 管道数据a1.sinks.s1.type = hdfs
a1.sinks.s1.hdfs.fileType = DataStream # 不会压缩输出文件,若不配置会进行序列化操作
a1.sinks.s1.hdfs.writeFormat = Text
a1.sinks.s1.hdfs.path = hdfs://single:9000/external_ebs/transaction  # 将数据存放到hdfs中目录下【目录路径】◉
a1.sinks.s1.hdfs.filePrefix = event-
a1.sinks.s1.hdfs.fileSuffix = .json		# 结果出来文件的后缀名
a1.sinks.s1.hdfs.rollInterval = 180		# 180s溢写一次
a1.sinks.s1.hdfs.rollSize = 134217728	# 128M溢写一次
a1.sinks.s1.hdfs.rollCount = 0# 关联sources,channels,sinks
a1.sinks.s1.channel = c1
a1.sources.r1.channels = c1
-----------------------------------------------------------------------

四:启动Flume检测

说明:其中--name a1中名为a1是因为在配置中都是以a1开头进行配置的,--conf指向flume中conf文件,--conf-file指向我们所配置的transaction.cnf文件。

/opt/software/flume-1.9.0/bin/flume-ng agent \
--name a1 \
--conf /opt/software/flume-1.9.0/conf/ \
--conf-file /root/project_ebs/act_log_extract/flume_config/conf-file/transaction.cnf \ 	# ◉
-Dflume.root.logger=INFO,console

HDFS存储结果

五:定期处理

由于channel-checkpoint和channel-data中存放与过程相关数据,可以对其进行定期的处理。

rm -rf channel-checkpoint/*
rm -rf channel-data/*

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

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

相关文章

2024-07-19 Unity插件 Odin Inspector9 —— Validation Attributes

文章目录 1 说明2 验证特性2.1 AssetsOnly / SceneObjectsOnly2.2 ChildGameObjectsOnly2.3 DisallowModificationsIn2.4 FilePath2.5 FolderPath2.6 MaxValue / MinValue2.7 MinMaxSlider2.8 PropertyRange2.9 Required2.10 RequiredIn2.11 RequiredListLength2.12 ValidateIn…

JAVA:Filer过滤器+案例:请求IP访问限制和请求返回值修改

JAVA:Filer过滤器 介绍 Java中的Filter也被称为过滤器,它是Servlet技术的一部分,用于在web服务器上拦截请求和响应,以检查或转换其内容。 Filter的urlPatterns可以过滤特定地址http的请求,也可以利用Filter对访问请求…

鸿蒙语言基础类库:【@system.sensor (传感器)】

传感器 说明: 从API Version 8开始,该接口不再维护,推荐使用新接口[ohos.sensor]。本模块首批接口从API version 4开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。该功能使用需要对应硬件支持,仅支持…

地图项目涉及知识点总结

序:最近做了一个在地图上标记点的项目,用户要求是在地图上显示百万量级的标记点,并且地图仍要可用(能拖拽,能缩放)。调研了不少方法和方案,最终实现了相对流畅的地图系统,加载耗时用…

2024可信数据库发展大会:TDengine CEO 陶建辉谈“做难而正确的事情”

在当前数字经济快速发展的背景下,可信数据库技术日益成为各行业信息化建设的关键支撑点。金融、电信、能源和政务等领域对数据处理和管理的需求不断增加,推动了数据库技术的创新与进步。与此同时,人工智能与数据库的深度融合、搜索与分析型数…

【Git】(基础篇四)—— GitHub使用

GitHub使用 经过上一篇的文章,相信大家已经对git的基本操作熟悉了,但哪些使用git的方法只是在本地仓库进行,本文介绍如何使用git和远程仓库进行连接使用。 Github和Gitee 主要用到的两个远程仓库在线平台是github和gitee GitHub GitHub …

Adobe XD中文设置指南:专业设计师的现场解答

Adobe XD是世界领先的在线合作UI设计工具。它摆脱了Sketch、Figma等传统设计软件对设备的依赖,使设计师可以随时随地使用任何设备打开网页浏览器,轻松实现跨平台、跨时空的设计合作。然后,为了提高国内设计师的使用体验,Adobe XD如…

2024-07-18 Unity插件 Odin Inspector8 —— Type Specific Attributes

文章目录 1 说明2 特定类型特性2.1 AssetList2.2 AssetSelector2.3 ChildGameObjectsOnly2.4 ColorPalette2.5 DisplayAsString2.6 EnumPaging2.7 EnumToggleButtons2.8 FilePath2.9 FolderPath2.10 HideInInlineEditors2.11 HideInTables2.12 HideMonoScript2.13 HideReferenc…

DP(6) | 完全背包 | Java | LeetCode 322, 179, 139 做题总结

322. 零钱兑换 我的错误答案 class Solution {public int coinChange(int[] coins, int amount) {int[][]dp new int [coins.length][amount1];for(int j0; j<amount; j) {if(coins[0] j){dp[0][coins[0]] 1;}}for(int i1; i<coins.length; i) {for(int j0; j<am…

带时间窗车辆路径问题丨论文复现:改进粒子群算法求解

路径优化相关文章 1、路径优化历史文章2、路径优化丨带时间窗和载重约束的CVRPTW问题-改进遗传算法&#xff1a;算例RC1083、路径优化丨带时间窗和载重约束的CVRPTW问题-改进和声搜索算法&#xff1a;算例RC1084、路径优化丨复现论文-网约拼车出行的乘客车辆匹配及路径优化5、…

[C/C++入门][进制原理]27、计算机种的进制

各种信息进入计算机&#xff0c;都要转换成“0”和“1”的二进制形式。 计算机 采用二进制的原因是&#xff1a; 物理上容易实现&#xff0c;可靠性高。&#xff08;电子元件的通电和不通电就可以表示1和0&#xff0c;所以非常方便&#xff09;运算简单&#xff0c;通用性强。…

ELK日志分析系统部署文档

一、ELK说明 ELK是Elasticsearch&#xff08;ES&#xff09; Logstash Kibana 这三个开源工具组成&#xff0c;官方网站: The Elastic Search AI Platform — Drive real-time insights | Elastic 简单的ELK架构 ES: 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它…

Java 网络编程(TCP编程 和 UDP编程)

1. Java 网络编程&#xff08;TCP编程 和 UDP编程&#xff09; 文章目录 1. Java 网络编程&#xff08;TCP编程 和 UDP编程&#xff09;2. 网络编程的概念3. IP 地址3.1 IP地址相关的&#xff1a;域名与DNS 4. 端口号&#xff08;port&#xff09;5. 通信协议5.1 通信协议相关的…

如何免费用java c#实现手机在网状态查询

今天分享手机在网状态查询接口&#xff0c;该接口适用的场景非常广泛&#xff01;首先我们先讲下什么是手机在网状态&#xff1f;简单来说&#xff0c;就是你得手机号是否还在正常使用中&#xff0c;是否能够及时接收和回复信息&#xff0c;是否能够随时接听和拨打电话。如果你…

小白新手搭建个人网盘

小白新手搭建个人网盘 序云服务器ECS重置密码远程连接ECS实例 安装OwnCloud安装Apache服务PHP运行环境NAS挂载挂载验证操作体验 序 阿里云文件存储NAS&#xff08;Apsara File Storage NAS&#xff09;是一个可大规模共享访问&#xff0c;弹性扩展的分布式文件系统。本文主要是…

Python面试宝典第15题:岛屿数量

题目 在二维网格地图上&#xff0c;1 表示陆地&#xff0c;0 表示水域。如果相邻的陆地可以水平或垂直连接&#xff0c;则它们属于同一块岛屿。请进行编码&#xff0c;统计地图上的岛屿数量。比如&#xff1a;下面的二维网格地图&#xff0c;其岛屿数量为3。 基础知识 解决这类…

简约的悬浮动态特效404单页源HTML码

源码介绍 简约的悬浮动态特效404单页源HTML码,页面简约美观,可以做网站错误页或者丢失页面,将下面的代码放到空白的HTML里面,然后上传到服务器里面,设置好重定向即可 效果预览 完整源码 <!DOCTYPE html> <html><head><meta charset="utf-8&q…

高性能、安全、低碳绿色的趋势下,锐捷网络发布三擎云办公解决方案 3.0

桌面虚拟化作为云时代的主流和热门技术&#xff0c;已经取得了广泛应用。随着生成式 AI 爆炸式发展&#xff0c;CSDN 看到&#xff0c;人工智能正在引发计算、开发、交互三大范式的全面升级&#xff0c;技术开发或将迎来一次全新的科技变革周期&#xff0c;因此 VDI 云桌面随之…

组队学习——支持向量机

本次学习支持向量机部分数据如下所示 IDmasswidthheightcolor_scorefruit_namekind 其中ID&#xff1a;1-59是对应训练集和验证集的数据&#xff0c;60-67是对应测试集的数据&#xff0c;其中水果类别一共有四类包括apple、lemon、orange、mandarin。要求根据1-59的数据集的自…

Day16_集合与迭代器

Day16-集合 Day16 集合与迭代器1.1 集合的概念 集合继承图1.2 Collection接口1、添加元素2、删除元素3、查询与获取元素不过当我们实际使用都是使用的他的子类Arraylist&#xff01;&#xff01;&#xff01; 1.3 API演示1、演示添加2、演示删除3、演示查询与获取元素 2 Iterat…