Flume 核心概念及快速入门

Flume简单介绍 一、是什么?       Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方(Socket数据包、文件、文件夹、kafka),用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(HDFS、hb 阅读详情

Flume

Flume 简介及核心概念

什么是 Flume

Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,目前是Apache的顶级项目。Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。

Flume 优点

1、可靠性
当节点出现故障时,日志能够被传送到其他节点上而不会丢失。Flume提供了三种级别的可靠性保障,从强到弱依次分别为:

  • end-to-end(收到数据agent首先将event写到磁盘上,当数据传送成功后,再删除;如果数据发送失败,可以重新发送。),
  • Store on failure(这也是scribe采用的策略,当数据接收方crash时,将数据写到本地,待恢复后,继续发送),
  • Best effort(数据发送到接收方后,不会进行确认)。

2、可扩展性
Flume采用了三层架构,分别为agent,collector和storage,每一层均可以水平扩展。
其中,所有agent和collector由master统一管理,这使得系统容易监控和维护,且master允许有多个(使用ZooKeeper进行管理和负载均衡),这就避免了单点故障问题。

3、可管理性

  • 所有agent和colletor由master统一管理,这使得系统便于维护。
  • 多master情况,Flume利用ZooKeeper和gossip,保证动态配置数据的一致性。
  • 用户可以在master上查看各个数据源或者数据流执行情况,且可以对各个数据源配置和动态加载。
  • Flume提供了web 和shell script command两种形式对数据流进行管理。

4、功能可扩展性

  • 用户可以根据需要添加自己的agent,collector或者storage。
  • 此外,Flume自带了很多组件,包括各种agent(file, syslog等),collector和storage(file,HDFS等)。

5、文档丰富,社区活跃
Flume 已经成为 Hadoop 生态系统的标配,它的文档比较丰富,社区比较活跃,方便我们学习。

flume agent

Flume agent每个agent是一个独立的Java进程,从客户端(其他agent)接收数据然后转发到下一个destination(sink(沉槽) | agent)
Agent包含三个组件:

  • A. Source(源)->生成数据的地方

从事件生成器接收数据,以event事件的形式传给一个或多个channel

  • B. Channel(通道)

从source中接受flume event,作为临时存放地,缓存到buffer中,直到sink
将其消费掉,是source和sink之间的桥梁
Channel是事务的,可以和多个source或sink协同

  • C.sink(沉槽)

存放数据到HDFS,从channel中消费event,并分发给destination,sink的
Destination 也可以是另一个agent或者HDFS,HBASE
注意:一个flume的agent,可以有多个source,channel,sink

flume核心组件介绍

Source: 完成对日志数据的收集,分成transtion 和 event 打入到channel之中, Flume提供了各种source的实现,包括Avro Source、 Exce Source、 Spooling
Directory Source、 NetCat Source、 Syslog Source、 Syslog TCP Source、Syslog UDP Source、 HTTP Source、 HDFS Source, etc。

Channel: Channel用于连接Source和Sink,Source将日志信息发送到Channel,Sink从Channel消费日志信息;Channel是中转日志信息的一个临时存储,保存有Source组件传递过来的日志信息。, flume提供了Memory Channel、 JDBC Chanel、 File Channel,etc

Sink: Flume Sink取出Channel中的数据,进行相应的存储文件系统,数据库,或者提交到远程服务器。包括HDFS sink、 Logger sink、 Avro sink、 File Roll sink、 Null sink、 HBasesink, etc。

flume安装

flume 几乎不用添加额外的配置只自定义配置好相关的配置启动即可

# 下载
$ wget http://mirrors.tuna.tsinghua.edu.cn/apache/flume/1.7.0/apache-flume-1.7.0-bin.tar.gz

# 解压
$ tar –zxvf apache-flume-1.7.0-bin.tar.gz

# 启动flume日志打印到控制台
$FLUME_HOME/bin/flume-ng agent -c conf -f conf/tail-hdfs.conf -n a1 -Dflume.root.logger=INFO,console

  • exec-hdfs.conf (监控指定文件写入到hdfs中)

# 定义 agent
a1.sources = r1
a1.sinks = k1
a1.channels = c1

# 定义 source
a1.sources.r1.type = exec
a1.sources.r1.command = tail -F /export/logs/web.log

# 定义 sink
a1.sinks.k1.type = hdfs
a1.sinks.k1.hdfs.path = hdfs://node-1:9000/hadoop-2.7.7/input1/%y-%m-%d/%H-%M
a1.sinks.k1.hdfs.filePrefix = app-log
a1.sinks.k1.hdfs.fileSuffix = .dat
a1.sinks.k1.hdfs.batchSize = 100
a1.sinks.k1.hdfs.fileType = DataStream
a1.sinks.k1.hdfs.writeFormat = Text

a1.sinks.k1.hdfs.rollSize = 102400
a1.sinks.k1.hdfs.rollCount = 10240
a1.sinks.k1.hdfs.rollInterval = 120

a1.sinks.k1.hdfs.round = true
a1.sinks.k1.hdfs.roundValue = 1
a1.sinks.k1.hdfs.roundUnit = minute

a1.sinks.k1.hdfs.useLocalTimeStamp = true

# 定义channels
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100

# 绑定source 和 sink 到channels
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1

  • exec-kafka.conf (监控指定文件写入到kafka中)

# 定义 agent
agent.sources = s1
agent.channels = c1
agent.sinks = k1

# 定义 source
agent.sources.s1.type = exec
agent.sources.s1.command = tail -F /root/logs/web.log
agent.sources.s1.channels = c1
agent.channels.c1.type = memory

# 定义 channel 
agent.channels.c1.capacity = 10000
agent.channels.c1.transactionCapacity = 100


# 定义 sink
# 设置Kafka接收器
agent.sinks.k1.type = org.apache.flume.sink.kafka.KafkaSink
# 设置Kafka的broker地址和端口号
agent.sinks.k1.brokerList = node-2:9092, node-3: 9092, node-3: 9094
# 设置Kafka的Topic
agent.sinks.k1.topic = log-topic
# 设置序列化方式
agent.sinks.k1.serializer.class = kafka.serializer.StringEncoder

# 绑定source 和 sink 到channels
agent.sinks.k1.channel = c1
agent.source.s1.channle = c1

  • spooldir-hdfs.conf (监控指定目录写入到hdfs中)
# 定义 agent
a1.sources = r1
a1.channels = c1
a1.sinks = k1

# 定义 source
a1.sources.r1.type = spooldir
# 设置要扫描的文件夹
a1.sources.r1.spoolDir = /root/logs/web
# 设置以.log结尾的文件不扫描
a1.sources.r1.ignorePattern = ^(.)*\\.log$
# 设置扫描完成的文件加一个后缀
a1.sources.r1.fileSuffix = .delete

# 定义 channels 类型可以是Memory, JDBC, File, Psuedo Transaction 比较常见的是前三种
a1.channels.c1.type = memory
# a1.channels.c1.checkpointDir = /root/filechannel/checkpoint
# a1.channels.c1.dataDirs = /root/filechannel/data

# 定义 sink
a1.sinks.k1.type = hdfs
a1.sinks.k1.hdfs.path = hdfs://node-1:9000/flume-1.7.0/logs/%Y%m%d
a1.sinks.k1.hdfs.fileType = DataStream
a1.sinks.k1.hdfs.writeFormat = Text
a1.sinks.k1.hdfs.batchSize = 100
a1.sinks.k1.hdfs.useLocalTimeStamp = true
a1.sinks.k1.hdfs.filePrefix = app-log
a1.sinks.k1.hdfs.fileSuffix = .dat

# 每隔多长时间滚动一次(秒)
a1.sinks.k1.hdfs.rollInterval = 120
# 文件多大滚动一次(bytes) 512kb
a1.sinks.k1.hdfs.rollSize = 0
# 写入多少个event数据后滚动文件(写多少行就滚动)
a1.sinks.k1.hdfs.rollCount = 0
a1.sinks.k1.hdfs.minBlockReplicas = 1


# 绑定 source 和 channel 到 agent
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1

  • spooldir-kafka.conf (监控指定目录写入到kafka中)

# 定义 agent
a1.sources = r3
a1.channels = c3
a1.sinks = k3

# 定义 source
a1.sources.r3.type = spooldir
# 设置要扫描的文件夹
a1.sources.r3.spoolDir = /root/logs/
# 设置以.log结尾的文件不扫描
a1.sources.r3.ignorePattern = ^(.)*\\.log$
# 设置扫描完成的文件加一个后缀
a1.sources.r3.fileSuffix = .delete

# 定义个 channels 类型可以是Memory, JDBC, File, Psuedo Transaction 比较常见的是前三种
a1.channels.c3.type = file
a1.channels.c3.checkpointDir = /root/filechannel/checkpoint
a1.channels.c3.dataDirs = /root/filechannel/data

# 定义 sink
a1.sinks.k3.type = org.apache.flume.sink.kafka.KafkaSink
a1.sinks.k3.brokerList = node-2:9092, node-3: 9092, node-3: 9094
a1.sinks.k3.topic = log-topic
a1.sinks.k3serializer.class = kafka.serializer.StringEncoder

# 绑定 source 和 channel
a1.sources.r3.channels = c3
a1.sinks.k3.channel = c3
【大数据学习 | flume】flume的概述与组件的介绍 Flume是cloudera(CDH版本的hadoop) 开发的一个分布式、可靠、高可用的海量日志收集系统。它将各个服务器中的数据收集起来并送到指定的地方去,比如说送到HDFS、Hbase,简单来说flume就是收集日志的。​1)Flume-og​2)Flume-ng​ Flume提供了大量内置的Source、Channel和Sink类型,不同类型的Source,Channel和Sink可以自由组合.组合方式基于用户设置的配置文件。 阅读详情

相关推荐

大数据日志收集工具Flume快速入门介绍、Flume是什么、能干什么、Flume核心概念

前言 本文主要介绍了Flume的功能用途和核心概念,是一个对Flume是什么、能干什么的快速入门介绍,来自《企业大数据处理:Spark、Druid、Flume与Kafka应用实践》读书笔记。 Flume介绍 Flume是cloudera公司开发的分布式、高可用的日志收集系统,是Hadoop生态圈内的关键组件之一,目前已开源给apache。Flume原始版本为Flume-OG,经过对整体架构的重...

wangshihuidev的博客 968

Flume简介、特点、核心概念及安装

一、什么是flume? flume是一个可分布式日志收集系统,为hadoop相关组件之一。 Flume 是可以收集例如日志,事件等数据资源,并将这些数量庞大的数据从各项数据源中集中起来存储的工具/服务。 Flume可以采集文件,socket数据包(网络端口)、文件夹、kafka、mysql数据库等各种形式源数据,又可以将采集到的数据(下沉sink)输出到HDFS、hbase、hive、kafka等众多外部存储系统中。 二、Flume特性 Flume是一个分布式、可靠、和高可用的海量日志采.

qq_30612351的博客 1万+

从零到一:树莓派OpenWrt squashfs固件扩容背后的文件系统魔法

本文深入解析树莓派OpenWrt系统中squashfs固件的扩容原理与操作。通过理解squashfs与overlayfs的协同机制,掌握分区调整和文件系统扩容技巧,解决存储空间限制问题,提升设备可用性。

hadoop5ranger的博客 1037

Flume简介

1、什么是flume flume 是由 cloudera 软件公司产出的可分布式日志收集系统,后与 2009 年被捐赠了 apache 软件基金会, 为hadoop 相关组件之一。 Flume 是一种分布式 , 可靠且可用的服务 , 用于高效地收集 , 汇总和移动大量日志数据 。 它具有基于流式数据流的简单而灵活的架构 。 它具有可靠的可靠性机制以及许多故障转移和恢复机制 , 具有强大...

Fys的博客 5803

合成孔径雷达(SAR)的常见工作模式

随着星载SAR技术研究的深入发展,单一的条带模式已经无法满足当今时代的需求,因此许多新的工作模式相继被提出。这些新模式在分辨率和测绘宽度等方面都有所提高,接下来将简要介绍几种常用的工作模式。

m0_51390495的博客 2314

Unity 升级引擎版本后构建报错:script class layout is incompatible between the editor and the player

Unity升级引擎版本后,项目报错:script class layout is incompatible between the editor and the player。

学习与分享 593

Flume的概述

包括Impala、Hue、Flume都属于专有框架,就是只干一件事。第一结构简单不复杂,第二功能比较单一。

qq_61645895的博客 1285

目标检测技术的发展:从R-CNN、YOLO到DETR、DINO

OV-DINO的出现标志着在开放域目标检测领域的重大进步,其在处理未见过的物体类别时的能力得到了显著提升。这项技术对于需要适应未知或变化环境的应用具有重要意义,如自动驾驶、机器人视觉、安防监控等。

DeepAIedu的博客 2629

Flume笔记

Flume笔记 1.Flume 概述 1.Flume 定义 Flume 是 Cloudera 提供的一个高可用的,高可靠的,分布式的**海量日志采集、聚合和传输的系统。**Flume 基于流式架构,灵活简单。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PEdLtUGl-1653125508804)(Flume笔记.assets/image-20220521132920219.png)] 2.Flume 基础架构 [外链图片转存失败,源站可能有防盗链机制,建议将图片

kevin_琪琪的博客 207

YOLOv11 改进 - 即插即用 | PST金字塔稀疏Transformer:粗粒度到细粒度推理优化特征提取,提升复杂场景适应性

本文介绍了金字塔稀疏 Transformer(PST)与 YOLOv11 的结合。主流基于注意力的特征融合方法计算复杂度高、实现难度大,作者提出 PST 模块,融合粗到细令牌选择与共享注意力参数机制,在保留空间细节的同时降低计算量。该模块通过层级化注意力机制、动态令牌选择与参数共享,实现高效多尺度特征融合

魔改工程师的博客 830

智能车图像处理12-进阶篇4--环岛辅助判断条件

主函数: 第6行: 含义是当前需要不在坡道和车库状态 第11-12行 : 寻找一下环岛的双断点(在辅助函数中) 第16-66行: 当左右线的方差满足一边很大,一边很小时,truepianfangflag /truepianfangflagforleft 置1,在环岛的判断中使用。 辅助函数: 双断点函数(左与右相似,以做为例): 第13-28行: 第一处断点 第29-40行: 第一处断点后 连续边线 第41-52行: 第一处连续后,第二处断点 第53-64行: 第二处断点后,第二处

taiyuezyh的博客 1万+

大数据之Flume:Flume组成架构、拓扑结构、内部原理、Flume下载及安装部署、多数据源汇总、监控端口、读取文件、Ganglia安装与部署、自定义MySQLSource、常见正则表达式及语法

文章目录 第1章 Flume概述 1.1 Flume概念 1.2 Flume组成架构 1.2.1 Agent 1.2.2 Source 1.2.3 Channel 1.2.4 Sink 1.2.5 Event 1.3 Flume拓扑结构 1.4 Flume Agent内部原理 第2章 快速入门 2.1 Flume安装地址 2.2 安装部署 第3章 案例实操 3.1 监控端口数据官方案例 3.2 实...

qq_43265673的博客 799

ABB机器人将实时坐标发送给西门子PLC的具体方法示例

ABB机器人将实时坐标发送给西门子PLC的具体方法示例

Robot_PLC_HMI_Automation 4914

flume简介与安装配置

一、flume简介Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。flume的核心是把数据从数据源收集过来,再送到目的地。为了保证输送一定成功,在送到目的地之前,会先缓存数据,待数据真正到达目的地后,删除自己缓存的

一路前行 1773

【100%通过率】华为OD机试真题 Python 实现【网上商城优惠活动 / 模拟商场优惠打折II】

某网上商场举办优惠活动,发布了满减、打折、无门槛3种 优惠券,分别为: 1:每满100元优惠10元,无使用数限制,如100~199元可以使用1张减10元,200~299可使用2张减20元,以此类推; 2:92折券,1次限使用1张,如100元,则优惠后为92元, 3:无门槛5元优惠券,无使用数限制,直接减5元。

MISAYAONE的博客 9370

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

SPARK STREAMING之1:编程指南(翻译v1.4.1)

SPARK STREAMING之1:编程指南(翻译v1.4.1)@(SPARK)[spark, 大数据]SPARK STREAMING之1编程指南翻译v141 概述 快速入门例子 基本概念 Linking 概述Spark Streaming是Spark核心API的一个扩展,它使得spark可扩展、高吞吐、可容错的对实时数据流进行处理。可以通过集成外部系统获取数据来源,如 Kafka, Flume,

jediael_lu的专栏 944

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

简述大数据实时处理框架

Flume入门教程-简单案例 kafka-python的API简单介绍 Spark入门(Python版) 简述大数据实时处理框架

BankxiY的博客 467

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Flume基本概念及入门

1 Flume简介 1.1 Flume概述 Flume是Cloudera(捐给了Apache)提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统。Apache Flume的使用不仅限于日志数据聚合,由于数据源是可定制的,因此Flume可用于传输大量事件数据,包括但不限于网络流量数据,社交媒体生成的数据,电子邮件消息以及几乎所有可能的数据源。Flume基于流式架构,灵活简单。 1....

yutao_Struggle的博客 538

Flume快速入门

Flume快速入门 基于尚硅谷flume公开课做的总结。 1.Flume概述 收集 聚合 传输 的分布式 日志数据 基础架构 Agent Source File:源数据:接收数据到 Flume Agent 的组件 avro exec taildir:监控文件,断点续传 spoldir natcat Channel:中间件-管道:于 Source 和 Sink 之间的缓冲区。 memory channel file channel kafka channel Sink :沉槽:轮询Chann

GOD-LEI的博客 350

Flume快速入门系列(1) | Flume的简单介绍

  在一个完整的离线大数据处理系统中,除了HDFS+MapReduce+Hive组成分析系统的核心之外,还需要数据采集、结果数据导出、任务调度等不可或缺的辅助系统,而这些辅助工具在hadoop生态体系中都有便捷的开源框架,在此,我们首先来介绍下数据采集部分所用的的开源框架——Flume。 目录1. Flume定义2. Flume的优点3. Flume采集系统结构图3.1 简单结构3.2 复杂结构...

不温卜火 9349

Apache Flume及快速安装

Apache Flume 介绍 在一个完整的离线大数据处理系统中,除了 hdfs+mapreduce+hive 组成分析系统的核心之外, 还需要数据采集、结果数据导出、任务调度等不可或缺的辅助系统,而这些辅助工具在hadoop 生态体系中都有便捷的开源框架

Maynor的博客 1030

Flume使用快速入门

1.Flume是什么 Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统 Flume支持在日志系统中定制各类数据发送方,用于收集数据; Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。 2. Flume的框架 Flume 的核心是把数据从数据源收集过来,再送到目的地。为了保证输送一定成功,在送到目的地之前,会先缓存数据...

weixin_43303297的博客 212

Apache Flume快速入门手册

介绍 apache fulme是一个分布式的高可用的框架,可以从不同的数据源大量的操作日志数据,能高效的收集,聚合,移动日志数据集中到存储中。 apahce fulme不仅仅是日志聚合功能,还能自定义数据源,用于传输大量的事件数据,网络流量数据,社交媒体数据,邮件数据以及其他数据 Apache Flume 目前有两种主版本: 0.9.x 和 1.x。其中 0.9.x 是历史版本,称之为 Flume...

cnheasy 398

Apache Flume 入门教程

Apache Flume 入门教程,一文带你了解Apache Flume 数据接入的各种方式!

AI黑板报的专栏 1388

采集日志Flume的集群搭建与详细配置

目录1.概述2.运行机制3.Flum采集系统构建图3.1简单结构3.2复杂结构4.快速入门4.1安装部署4.2Flume具体配置4.3Flume的ETL和分类型拦截器4.3.1配置pom.xml文件4.3.2ETL拦截器4.3.3日志过滤工具类4.3.4日志分类拦截器4.3.5打包上传并启动5.FLume启动脚本6.脚本补充6.1Hadoop启动脚本6.2生成日志脚本6.3zookeeper启动脚本6.3集群命令脚本6.4统一集群时间脚本 1.概述 Flume是Cloudera提供的一个高可用的,高可靠的,

李思成的博客 2113
上一篇: lucene 核心概念及入门
下一篇: Hive快速入门
exklin
博客等级 码龄9年 35粉丝 68原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值