Flume快速上手&原理讲解

01-flume快速上手 一小时快速学会使用flume 阅读详情

title: Flume分享
date: 2020-04-3 19:20:00
categories:

  • 技术
    tags:
  • 分享

整理、分享一下Flume

  1. 明白Flume的应用场景
  2. 能够使用Flume做基本的数据收集
  3. 了解Flume的基本设计原理
  4. 与我们的系统相互映照,从中吸取经验

一、Flume解决了什么问题

1.1 解决问题

数据收集是大数据的基石。
如何将 分散的、异构的数据 可靠地 转储到 数据中心 是需要解决的问题。

在可靠收集聚合的同时,屏蔽了 数据源 与 数据存储系统的异构性。

1.2 Flume特点

Apache Flume[1] is a distributed, reliable, and available system for efficiently collecting, aggregating and moving large amounts of log data from many different sources to a centralized data store.

The use of Apache Flume is not only restricted to log data aggregation. Since data sources are customizable, Flume can be used to transport massive quantities of event data including but not limited to network traffic data, social-media-generated data, email messages and pretty much any data source possible.

  • 可靠传输
  • 数据源可定制、扩展
  • 存储系统可定制、扩展

二、Flume结构拆解&快速开始

2.1 结构拆解

image-20200403191309929

  • source 负责数据的获取
  • channel 数据缓存,用于解决source与sink速度不匹配的问题。
  • sink 数据的消费,传递给下游
2.2 快速开始
前提
  • java Runtime Environment - Java 1.8 or later
  • 内存、硬盘和访问权限
下载

官网下载[2]

配置
# Name the components on this agent
a1.sources = r1
a1.sinks = k1
a1.channels = c1

# Describe/configure the source
a1.sources.r1.type = netcat
a1.sources.r1.bind = localhost
a1.sources.r1.port = 44444

# Describe the sink
a1.sinks.k1.type = logger

# Use a channel which buffers events in memory
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100

# Bind the source and sink to the channel
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
运行

bin/flume-ng agent --conf conf --conf-file ./conf/flume-conf.properties --name a1 -Dflume.root.logger=INFO,console

2.3 运用

在实际运用中,可以将Agent灵活组合业务需求。
场景一 传递
IMAGE
场景二 汇聚
IMAGE
场景三 多路复用
IMAGE

三、问题拆分,Flume如何解决上述问题

3.1 模型设计简介
  1. 抽象出传输信息的载体Event
  • 定义Event是Flume数据传输过程中的传输单元。
  • Event 由 Header 与 载有数据byte的 Body组成。
    • Header,可选,可以容纳key-value的无序结合
  private Map<String, String> headers;
  private byte[] body;
  1. 数据采集&获取组件 source
  • 负责接收Event,并将Event放入Channel
  • 下图列出部分source类型
    IMAGE
  1. 数据缓存组件 channel
  • 负责接收source传来的event,用于暂存数据,并交付给sink组件。其目的在于解决source与sink速度不匹配的问题。同时也提供持久化的方式。
  • channel支持事务性,每次从Channel中写入、读取都是在事务的上下文中发生的。
    IMAGE
  1. 数据输出组件 sink
  • 负责将Event写入到下游系统
    IMAGE
3.2 功能设计
Flume无数据丢失保证

利用了事务性语义,对Channel的操作都是基于事务性。
只有成功地发送到下一个Agent或目的地后Event才会从Channel中删除。这一步保证了Event数据流在Flume Agent中传输时端到端的可靠性。

Flume可以保证至少有一次被送到目的地

84321F4D9A12A60E944BD03BDB9B400A

四、Flume给我们的启示

  • 模型设计合理,组件之间功能划分清晰
  • 无丢失保证,下游返回ACK,上游则可删除
  • 具有自动重载配置的能力
  • 具有负责均衡能力,Load-Balancing 和 FailOver 策略。
  • 可以自由组合agent形成其拓扑结构

五、附录

[1] 官网 http://flume.apache.org/releases/content/1.9.0/FlumeUserGuide.html
[2] 下载地址 http://flume.apache.org/download.html
[3]《基于Flume的美团日志收集系统》https://blog.youkuaiyun.com/djd1234567/article/details/51394616?locationNum=9&fps=1

大数据技术之_09_Flume学习_Flume概述+Flume快速入门+Flume企业开发案例+Flume监控之Ganglia+Flume高级之自定义MySQLSource+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...

1775

docker-compose部署flume

supervisord.conf 是supervisord的配置文件,只是将最后的 [include] 配置项取消注释,指定到配置存放目录。上面构建的镜像只是将相应的服务打进了镜像里,使用时应挂载相应flume-ng配置和supervisor应用配置,以下为我使用。-compose启动flume服务的相应docker-compose.yaml部分配置。的解压包conf复制出来,因为映射会影响原容器内的内容。自己封装的运行脚本,代码可以自己研究一下。template文件到。

angryshan的博客 1265

Flume原理与代码实例讲解

Flume原理与代码实例讲解 作者:禅与计算机程序设计艺术 / Zen and the Art of Computer Programming 1. 背景介绍 1.1 问题的由来 随着大数据时代的到来,如何高效、稳定、可靠地将来自不同

AI天才研究院 1147

01 docker概述及安装

Docker概述 Docker安装 docker官网下载 Docker Desktop for Windows 在win10安装。 安装完成以后,docker便已经安装成功,可通过此程序操作镜像、容器等;如果需要运行docker命令,通过本机的命令行来执行。 镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。 一个Docker Registry中可以包含多个...

fang.lovest.yang的博客 640

Flume日志收集系统原理与代码实例讲解

Flume日志收集系统原理与代码实例讲解 作者:禅与计算机程序设计艺术 / Zen and the Art of Computer Programming 1. 背景介绍 1.1 问题的由来 随着互联网技术的快速发展,企业

AI架构师小马 1411

Flume Channel原理与代码实例讲解

Flume Channel原理与代码实例讲解 1. 背景介绍 1.1 问题由来 Flume是由Apache基金会开发的一个分布式、可靠、高效的数据收集系统。它旨在处理海量日志数据,提供高效的数据传输和故障恢复能力。Flume的的核心组

SuperAGI2025 889

Docker内日志采集工具Flume的安装和使用

前提:Docker已安装!如果没有安装,安装教程可以参考:链接:Docker内分布式消息系统kafka的安装和使用第一部分:Centos7安装Docker。

qq_37908302的博客 1553

Flume系列之:原理和Flume配置文件参数详解

Flume配置文件参数详解一、认识Apache Flume二、Flume工作原理三、声明source、channel、sink四、Source类型1.Kafka Source示例五、Channel类型1.FIle Channel示例六、Sink类型1.HDFS的Sink示例2.HIVE的Sink示例七、Source是kafka的配置文件详解八、Channel配置文件详解九、Sink是HDFS的配置文件详解 一、认识Apache Flume Apache Flume是一个分布式,可靠且可用的系统,用于有效地收

zhengzaifeidelushang的博客 790

使用docker-compose安装flume

使用flume采集应用服务器(华为云)上的日志信息,但运维同学为了方便管理资源,要求使用docker-compose方式安装。而官方docker仓库中的flume不是最新版的,所以打算自己构建flume镜像。 flume依赖于jdk,所以安装flume的容器需要有jdk;那么首先构建一个基于centos7的jdk1.8的镜像centos7-jdk1.8;然后基于镜像centos7-jdk1.8构建安装的flume镜像flume;最后再使用docker-compose安装容器。 一、构建centos7-jd

NDF923的专栏 1827

Flume Sink原理与代码实例讲解

Flume Sink原理与代码实例讲解 作者:禅与计算机程序设计艺术 / Zen and the Art of Computer Programming 1. 背景介绍 1.1 问题的由来 在大数据处理领域,数据采集、存储和

AGI×大数据,开启智能时代的认知跃迁;解码AGI,赋能数据驱动的智能革命。 296

Flume与Spark集成原理与实例

1.背景介绍 在大数据处理领域中,数据的收集、存储、处理和分析是一条重要的数据流水线。在这个流水线中,Flume和Spark是两个非常重要的组件。Flume是一个分布式的、可靠的、高可用的海量日志采集、聚合和传输的系统,而Spark则是一个快速、通用的大数据处理引擎。本文将详细介绍Flume和Spark的集成原理和实例。

AI天才研究院 812

DOCKER集群安装SQOOP&FLUME

已经配好hadoop-hdfs集群,集群由三个docker容器构成,一个namenode,两个datanode,本次安装FLUME&SQOOP,将FLUME安装在hdfs集群的namenode节点,SQOOP&HIVE置于另一容器,MYSQL节点也置于另一容器,搭建好的集群共5个的docker容器,通过docker网络连接。 注: hdfs集群的三台容器已经在nanzi_bigdata_network网络内,后续容器间通信需要查看节点ip即通过该方法hadoop 3.2.0 flume 1.9.0 s

m0_70699638的博客 1107

FlumeDockerFlie

Flume Docker,使用此DockerFlie来创建Flume的镜像。非常好用

Flume最简单使用

Flume最简单使用教程

lydms的博客 1万+

Docker容器中运行flume及启动不输出运行日志问题

主要介绍了 Docker容器中运行flume及启动不输出运行日志问题及解决方法,需要的朋友参考下吧

EGO_Plannerv2代码学习(一):栅格建图之V1 V2的区别

最近在尝试将高飞老师的集群规划器部署到真实无人机上跑一下,开这个新帖记录下学习过程中的问题和想法。

qq_41069236的博客 5749

Flume快速入门系列(11) | Flume知识点总结(持续更新)

  这篇文章我们讲解的是Flume常见的面试题,并将会不断进行更新。 目录1. 如何实现Flume数据传输的监控的2. Flume的Source,Sink,Channel的作用?你们Source是什么类型?3. Flume的Channel Selectors4. Flume参数调优5. Flume的事务机制6. Flume采集数据会丢失吗? 1. 如何实现Flume数据传输的监控的   使用第三...

不温卜火 8013

腾讯WeKnora开源了!手把手教你用Docker+Ollama本地部署多模态知识库(附避坑指南)

本文详细介绍了腾讯开源的多模态知识库工具WeKnora的本地部署方法,通过Docker和Ollama实现完全离线运行。文章包含环境准备、核心组件配置、Ollama模型集成、系统启动验证及高级性能调优等实战内容,特别适合需要构建私有化知识库的中小团队和个人开发者。

weixin_30664051的博客 478

【图解版】flume的安装和简单使用

参考博客Flume安装及简单部署 Flume学习笔记(一)安装与简单使用目录 Flume简介 Flume工作原理 Flume的安装 工作原理Flume的数据流由事件(Event)贯穿始终。事件是Flume的基本数据单位,它携带日志数据(字节数组形式)并且携带有头信息,这些Event由Agent外部的Source生成,当Source捕获事件后会进行特定的格式化,然后Source会把事件推入(单个或多

网瘾少年沐安涂 1567

FPGA远程升级必备:STARTUPE2原语控制Flash的避坑指南

本文深入解析了FPGA远程升级中STARTUPE2原语的核心价值与配置策略,详细介绍了其在QSPI Flash接口设计中的应用。通过Vivado工具和原语控制,开发者可以高效实现安全可靠的远程固件升级,提升系统稳定性和升级效率。

k8l9m0n的博客 395

Kriging代理模型理论相关推导

代理模型,Kriging,加点准则

森屹的博客 1万+
上一篇: 《代码的艺术》笔记
chengshuo678
博客等级 码龄14年 5粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值