Flume 概述架构及部署

Cris 玩转大数据系列之日志收集神器 Flume Cris 玩转大数据系列之日志收集神器 Flume Author:Cris 文章目录Cris 玩转大数据系列之日志收集神器 FlumeAuthor:Cris1. Flume 概述1.1 什么是 Flume?1.2 Flume 的优点1.3 Flume 组成架构① Agent② Source③ Channel④ Sink⑤ Event1.4 Flume 常见四种拓扑结构1.5 Flume Agent... 阅读详情

简介

Flume是由 Cloudera 提供的一个分布式、高可靠、高可用的服务,用于分布式的海量日志的高效收集、聚合、移动系统。简单来说,Flume 就是一个针对日志数据进行采集和汇总的一个工具(把日志从A地方移动到B地方)

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 是Apache下的一个顶级项目,已经成为 Hadoop 生态系统的标配,它的文档比较丰富,社区比较活跃,方便我们学习

Flume架构

这里写图片描述

Flume 最简单的部署单元叫做Flume Agent,Agent 是一个Java 应用程序,接收或者生成数据并缓冲数据,直到最终写入到Agent或者存储或索引系统。
一个Flume Agent可以连接一个或多个其它的Agent,一个Agent也可以从一个或多个Agent接收数据,通过相互连接的多个Flume Agent,一个流作业被建立,这个Flume Agent链条可以用于将数据从一个位置移动到另一个位置——特别是,从生产数据的应用程序到HDFS、HBase等。
每个Flume Agent有三个组件:Source、Channel、Sink。
Source 专门用来收集数据,可以处理各种类型、各种格式的日志数据,比如avro、exec、HTTP、Kafka、Spooling Directory等
Channel 是一个存储Source已经接收到的数据的缓冲区,简单来说就是对Source采集到数据进行缓存,可以缓存在memory、file、jdbc、Kafka等。
Sink 用于把数据发送到目的地,目的地可以是:HDFS、Hive、HBase、ES、Kafka、Logger等

Flume 运行机制

flume的核心就是一个agent,这个agent对外有两个进行交互的地方,一个是接受数据的输入——source,一个是数据的输出sink,sink负责将数据发送到外部指定的目的地。source接收到数据之后,将数据发送给channel,chanel作为一个数据缓冲区会临时存放这些数据,随后sink会将channel中的数据发送到指定的地方—-例如HDFS等,注意:只有在sink将channel中的数据成功发送出去之后,channel才会将临时数据进行删除,这种机制保证了数据传输的可靠性与安全性

Flume 部署

作者呢,安装的是Flume 1.6.0 虽然最新的是1.8.0
但是1.6作为一个经典版本,一般在生产环境中使用的就是1.6,所以今天以1.6为例 部署一下Flume

安装准备

  1. JDK1.7+
  2. 足够的内存
  3. 足够的磁盘空间
  4. 目录及文件要有读写权限
  5. Flume安装包
$ wget http://archive.apache.org/dist/flume/1.6.0/apache-flume-1.6.0-bin.tar.gz

正式安装

上面所需要的东西准备好之后.
将下载下来的Flume解压

$ tar -zxvf apache-flume-1.6.0-bin.tar.gz

解压出来的文件名太长了..所以我就把他修改了一下

$ mv apache-flume-1.6.0-bin flume

Flume目录结构
这里写图片描述
配置Flume
进入flume的conf目录下,拷贝flume-env.sh.template然后重命名为flume-env.sh

$ sudo cp flume-env.sh.template flume-env.sh

在flume-env.sh中配置jdk

export JAVA_HOME=/usr/java/jdk1.7.0

配置环境变量

# Flume Environment Variable
export FLUME_HOME=/home/hadoop/flume
export PATH=$PATH:$FLUME_HOME/bin

查看Flume 的命令帮助

[hadoop@Master ~]$ flume-ng help
Usage: /opt/flume/bin/flume-ng <command> [options]...
commands:
  help                      display this help text
  agent                     run a Flume agent
  avro-client               run an avro Flume client
  version                   show Flume version info

global options:
  --conf,-c <conf>          use configs in <conf> directory
  --classpath,-C <cp>       append to the classpath
  --dryrun,-d               do not actually start Flume, just print the command
  --plugins-path <dirs>     colon-separated list of plugins.d directories. See the
                            plugins.d section in the user guide for more details.
                            Default: $FLUME_HOME/plugins.d
  -Dproperty=value          sets a Java system property value
  -Xproperty=value          sets a Java -X option

agent options:
  --name,-n <name>          the name of this agent (required)
  --conf-file,-f <file>     specify a config file (required if -z missing)
  --zkConnString,-z <str>   specify the ZooKeeper connection to use (required if -f missing)
  --zkBasePath,-p <path>    specify the base path in ZooKeeper for agent configs
  --no-reload-conf          do not reload config file if changed
  --help,-h                 display help text

avro-client options:
  --rpcProps,-P <file>   RPC client properties file with server connection params
  --host,-H <host>       hostname to which events will be sent
  --port,-p <port>       port of the avro source
  --dirname <dir>        directory to stream to avro source
  --filename,-F <file>   text file to stream to avro source (default: std input)
  --headerFile,-R <file> File containing event headers as key/value pairs on each new line
  --help,-h              display help text

  Either --rpcProps or both --host and --port must be specified.

Note that if <conf> directory is specified, then it is always included first
in the classpath.

最后检查是否配置成功.

$ flume-ng version
#弹出以下信息即为成功
Flume 1.6.0
Source code repository: https://git-wip-us.apache.org/repos/asf/flume.git
Revision: 2561a23240a71ba20bf288c7c2cda88f443c2080
Compiled by hshreedharan on Mon May 11 11:15:44 PDT 2015
From source with checksum b29e416802ce9ece3269d34233baf43f
Flume 构建高可用、可扩展的海量日志采集系统 《Flume:构建高可用、可扩展的海量日志采集系统》从Flume 的基本概念和设计原理开始讲解,分别介绍了不同种类的组件、如何配置组件、如何运行Flume Agent 等。同时,分别讨论Source、Channel 和Sink 三种核心组件,不仅仅阐述每个组件的基本概念,而且结合实际的编程案例,深入、全面地介绍每个组件的详细用法,并且这部分内容也是整个Flume 框架的重中之重。之后,讲解拦截器、Channel选择器、Sink 组和Sink 处理器等内容,它们为Flume 提供灵活的扩展支持。最后,介绍了Flume 的高级使用,如何使用Flume 软件开发工具集(SDK)和Embedded Agent API,如何设计、部署和监控Flume 生产集群。 立即下载

相关推荐

AK-EGAS-v6 三层安全架构 最新标准

E-gas三层安全架构 最新标准 v6,可作为ISO26262的软件或硬件开发详细标准

大数据组件-Flume集群环境搭建

Flume是一个分布式、可靠和高可用性的数据采集工具,用于将大量数据从各种源采集到Hadoop生态系统中进行处理。在大型互联网企业的数据处理任务中,Flume被广泛应用。Flume集群环境介绍:Agent:Flume的基本组成单元是Agent,用于在不同的节点之间传输数据。Agent可以是单节点或分布式部署。Source:Source是Flume数据采集的起点,用于从数据源(如日志文件、网络流、消息队列等)中获取数据并将其发送到Channel中。

默默发展,无声壮大~ 1964

Ollama安装教程

Ollama 是一个开源的大语言模型(LLM)部署工具,专为在本地机器部署和运行大模型而设计,通过简单的命令就可以在本地快速运行大模型(如DeepSeek、Llama、Gemma、QWQ等)。非常适合开发者、研究人员以及对数据安全和隐私有较高要求的企业和用户

学习AI应用开发,分享AI干货、获取最新AI咨询 3856

Flume架构中的三层设计

Flume采用了三层架构,分别为agent,collector和storage,每一层均可以水平扩展。其中,所有agent和collector由master统一管理,这使得系统容易监控和维护,且master允许有多个(使用ZooKeeper进行管理和负载均衡),这就避免了单点故障问题。 1)Agent层:这一层包含了Flume的Agent组件,与需要传输数据的数据源连接在一起 2)Colle...

qq_43193797的博客 4642

【干货】S7-PLCSIM Advanced V3.0 无法启动实例( Error Code:-30,LicenseNotFound)问题解决方法

【干货】S7-PLCSIM Adavanced V3.0 无法启动实例( Error Code:-30,LicenseNotFound)问题解决方法

handinvv的博客 5万+

SAP SD POD 配置与 VLPOD 操作:3步解决发货10件开票7件的业务场景

本文详细解析了SAP SD POD功能在解决发货与开票数量差异中的应用,通过3步配置法实现精准匹配。重点介绍了POD核心逻辑、关键配置步骤及VLPOD操作技巧,帮助企业高效处理易损品运输等复杂场景,提升供应链管理效率。

weixin_30613343的博客 396

Flume1.8安装配置与入门实例

1、下载 http://flume.apache.org/download.html http://mirrors.tuna.tsinghua.edu.cn/apache/flume/1.8.0/apache-flume-1.8.0-bin.tar.gz [root@node1 ~]# wget http://mirrors.tuna.tsinghua.edu.cn/apache/f...

程裕强的专栏 3936

Win10局域网内文件共享+远程桌面控制保姆级教程(含常见问题解决)

本文提供Win10局域网内文件共享和远程桌面控制的详细教程,包括环境检查、共享文件夹设置、远程桌面连接步骤及常见问题解决方案。通过内置功能实现高效办公协作,提升多设备协同工作效率,特别适合需要频繁传输文件或远程控制场景的专业人士。

rose2的博客 777

FLume概述

概念:FLume是Cloudera提供的一个高可用,高可靠,分布式的海量的日志采集,聚合,传输系统,FLume支持在日志系统中定制各类数据发送方,用于收集数据。同时,Flume提供对数据进行简单处理,并写到各种数据接收方(可定制)的能力。设计目标:   可靠性:end to end(exactly once)                Store on failure(数据接收方crash时,...

408

在游戏开发中如何使用Unity3D引擎开发麻将游戏

总体来说使用Unity3D引擎开发麻将游戏需要开发人员熟练掌握Unity3D的各种功能和API,并且需要深入了解麻将游戏的规则和背景,以便实现一个质量高、玩法丰富的游戏。在测试的过程中我们需要检查游戏是否符合规则,保证游戏逻辑的正确性,并检查游戏的UI是否和设计图一致,保证游戏的可玩性。Unity3D引擎是一个高度集成的游戏开发工具,可以为开发人员提供很多强大的工具和功能,包括3D建模、物理模拟、粒子系统、动画等等,在游戏开发中可以提高开发效率和游戏质量。在开始开发之前我们需要明确游戏的需求和功能。

a272857154的专栏 1891

Windowns下Git环境配置-命令行方式

文章目录一、配置Git1.1 下载Git并安装1.2 配置本地Git用户名和邮箱1.3 注册GitHub二、生成本地公钥,放到GitHub上-SSH Key2.1 生成本地公钥命令2.2 查看生成的公钥2.3 在GitHub放上公钥并测试连通性三、创建项目实操四、可能出现的问题4.1.push不成功4.2.提示SSL的问题4.3.域名不能解析的问题4.4.如果github连接不上的问题 一、配置Git 1.1 下载Git并安装 Git官网 默认安装,根据需要修改安装路径 1.2 配置本地Git用户名和邮箱

学习工作笔记 1136

大数据协作框架之Flume

一、概述 Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。 二、安装 1、解压: tar -zxvf flume-ng-1...

接受自己的普通,然后拼尽全力去与众不同 456

xtop:multi_driven_net与incomplete_timing_cell fail reason 分析

man multi_driven_net”可以得知,这个问题是multi driven结构引起的,使用命令“get_failed_pins -reason multi_driven_net”,获取violation pin。“man incomplete_timing_cell”可以得知,这个fail reason的原因是缺少timing library cell,检查并补全后这个错误就显示了。这里选择的解决方法是修改lib文件,把inout改成input,重新lib2idb。通过这种方法解决了问题。

m0_61544122的博客 567

Flume 的基本介绍和安装部署

Flume 是 Cloudera 提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的框架服务Flume 基于流式架构,灵活简单,能够实时读取服务器本地磁盘的数据,将数据写入到 HDFS。

weixin_44480009的博客 1276

BOSS直聘数据采集、解析处理、分析与可视化实战

招聘和求职是一对永恒的话题,不论什么时候都有招聘或者是求职的需求,找不找得到工作可能最主要的就是匹配度是否高,待遇福利是否诱人,如今互联网的快速发展,找工作的方式早已发生了翻天覆地的变化,从以往的面对面形式的招聘简历投递和面试方式,变成了电子简历网络直接投递、远程面试录用的形式,便捷性大大提升,需求的快速增长,促生了一批互联网招聘类的企业,诸如:51job、BOSS直聘、拉勾网等等,为了能...

Together_CZ的博客 9025

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

hadoop flume 架构及监控的部署

hadoop flume 架构及监控的部署 1 Flume架构解释 Flume概念 Flume是一个分布式 ,可靠的,和高可用的,海量的日志聚合系统 支持在系统中定制各类的数据发送方 用于收集数据 提供简单的数据提取能力 并写入到各种接受方 Flume 特点 1 可靠性 当节点出现故障时,日志能够被传送...

tsxylhs的博客 234

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Flume 日志采集系统

Flume 日志采集系统介绍

slb190623的博客 1747

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

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

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Flume1.9基础学习

Flume 是Cloudera 提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统。Flume 基于流式架构,灵活简单。Flume最主要的作用就是,实时读取服务器本地磁盘的数据(或者网络端口数据),将数据写入到HDFS使用 Flume 监听一个端口,收集该端口数据,并打印到控制台。

Shawn的个人博客 1538

分布式日志收集框架 Flume

  1 需求分析    WebServer/ApplicationServer分散在各个机器上,然而我们依旧想在Hadoop平台上进行统计分析,如何将日志收集到Hadoop平台呢?  简单的这样吗?  shell cp hadoop集群的机器上;  hadoop fs -put ... /  显然该法面临着容错、负载均衡、高延迟、数据压缩等一系列问题  这显然已经无法满足需求了!  不如问问神奇的...

weixin_34235135的博客 284

Flume学习笔记

Flume学习笔记 一 Flume概述 1. Flume定义 ​ Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统。Flume基于流式架构,灵活简单。 2. Flume架构 Flume组成架构如下图所示。 1. Agent ​ Agent是一个JVM进程,它以事件的形式将数据从源头送至目的。 ​ Agent主要有3个部分组成,Source、Channel、Sink。 2. Source ​ Source是负责接收数据到Flume Agent的组件。Sour

qq_38650982的博客 299

Flume之:一、概述及安装部署

Flume概述及安装部署 文章目录Flume概述及安装部署一、概述1. Flume定义2. flume的组成架构3. Flume拓扑结构4. Flume Agent内部原理二、Flume的安装1. Flume安装地址2. 安装部署Q:Error: Could not find or load main class org.apache.flume.tools.GetJavaProperty ...

落落free的博客 542

Flume安装及部署

今天给大家分享一下Flume单机配置以及安装部署 一、下载和上传flume(两种方式) 1、手动下载 1.1 http://mirror.bit.edu.cn/apache/flume/1.8.0/ 下载flume 1.2 随便找一个目录 创建一个flume文件夹 我的在/kingyifan目录 命令:mkdir flume 1.3 把flume安装包上传服...

猿码优创 9468

flume安装部署

## kafka.bootstrap.servers = master:9092:指定 Kafka 集群的地址和端口(master 是 Kafka 服务器的主机名,9092 是默认端口)### type = org.apache.flume.sink.kafka.KafkaSink:指定数据目的地类型为 KafkaSink,即数据最终会发送到 Kafka。### kafka.topic = order:指定数据要发送到 Kafka 中的哪个主题(topic),这里是 "order" 主题。

更深兼春远的博客 1451

数仓开发之Flume《一》:Flume的概述及安装

主要介绍Flume的架构及安装

weixin_40968325的博客 1655

Flume概述

typora-copy-images-to: flume_typora 数据采集工具 – Flume Flume概述 1、概述(什么是、体系结构、拓扑结构、内部原理) 2、安装配置 3、应用(基础、高级) 无论数据来自什么企业,或是多大量级,通过部署Flume,可以确保数据都安全、及时地到达大数据平台,用户可以将精力集中在如何洞悉数据上。 Flume的定义 Flume由Cloudera公司开发,是一个分布式、高可靠、高可用的海量日志采集、聚合、传输的系统。 Flume支持在日志系统中定制各类数据发.

weixin_44847293的博客 1931
上一篇: Spark-RDD详解
下一篇: Flume初体验
C_FuL
博客等级 码龄10年 15粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值