Apache Flume笔记

2025年ZBrush雕刻实战:从基础到高级技巧全解析 本文全面解析2025年ZBrush雕刻实战技巧,从基础界面操作到高级笔刷应用。详细介绍了核心功能区域如工具面板和灯箱,以及推荐材质选择。重点讲解6个实用笔刷技巧,包括Standard、Move和ClayBuildup等,帮助用户从入门到精通掌握ZBrush雕刻技术。 阅读详情

Apache Flume

  • 概述

    • flume是一款大数据中海量数据采集传输汇总的软件。特别指的是数据流转的过程,或者说是数据搬运的过程。把数据从一个存储介质通过flume传递到另一个存储介质中。
  • 核心组件

    • source :用于对接各个不同的数据源
    • sink:用于对接各个不同存储数据的目的地(数据下沉地)
    • channel:用于中间临时存储缓存数据
  • 运行机制

    • flume本身是java程序 在需要采集数据机器上启动 ----->agent进程

    • agent进程里面包含了:source sink channel

    • 在flume中,数据被包装成event ,真实的数据是放在event body中

      event是flume中最小的数据单元

  • 运行架构

    • 简单架构

      只需要部署一个agent进程即可

    • 复杂架构

      多个agent之间的串联 相当于大家手拉手共同完成数据的采集传输工作

      在串联的架构中没有主从之分 大家的地位都是一样的


  • flume的安装部署

    • 在conf/flume-env.sh 导入java环境变量

      保证flume工作的时候一定可以正确的加载到环境变量

  • flume开发步骤

    • conf文件夹中的就是根据业务需求编写采集方案配置文件

    • 文件名见名知意 通常以souce-sink.conf

    • 具体需要描述清楚sink source channel组件配置信息 结合官网配置

    • 启动命令

      bin/flume-ng agent --conf conf 
      					--conf-file conf/netcat-logger.conf 
      					--name a1 -Dflume.root.logger=INFO,console  #命令完整版
      
      bin/flume-ng agent -c ./conf 
      					-f ./conf/spool-hdfs.conf 
      					-n a1 -Dflume.root.logger=INFO,console  #命令精简版
      
      --conf#指定配置文件的目录
      --conf-file#指定采集方案路径
      --name  #agent进程名字 要跟采集方案中保持一致
      

  • 案例:监控目录数据变化,把新文件采集到hdfs

    • hdfs sink

      #Name the components on this agent
      a1.sources = r1
      a1.sinks = k1
      a1.channels = c1
      
      #Describe/configure the source
      #注意:不能往监控目中重复丢同名文件,会造成后面再上传文件到文件夹,不会收集了,flume失效
      #避免同名文件:给文件追加时间簇
      a1.sources.r1.type = spooldir
      a1.sources.r1.spoolDir = /root/logs
      a1.sources.r1.fileHeader = true
      
      #Describe the sink
      a1.sinks.k1.type = hdfs
      a1.sinks.k1.hdfs.path = /flume/events/%y-%m-%d/%H%M/
      a1.sinks.k1.hdfs.filePrefix = events-
      
      #roll控制写入hdfs文件 以何种方式进行滚动
      a1.sinks.k1.hdfs.rollInterval = 3  #以时间间隔
      a1.sinks.k1.hdfs.rollSize = 20     #以文件大小
      a1.sinks.k1.hdfs.rollCount = 5     #以event个数
      #如果三个都配置  谁先满足谁触发滚动
      #如果不想以某种属性滚动  设置为0即可
      
      a1.sinks.k1.hdfs.batchSize = 1
      
      #是否开启时间上的舍弃  控制文件夹以多少时间间隔滚动
      #以下述为例:就会每10分钟生成一个文件夹
      a1.sinks.k1.hdfs.round = true
      a1.sinks.k1.hdfs.roundValue = 10
      a1.sinks.k1.hdfs.roundUnit = minute
      
      a1.sinks.k1.hdfs.useLocalTimeStamp = true
      #生成的文件类型,默认是Sequencefile,可用DataStream,则为普通文本
      a1.sinks.k1.hdfs.fileType = DataStream
      
      #Use a channel which buffers events in memory
      #capacity:默认该通道中最大的可以存储的event数量
      #trasactionCapacity:每次最大可以从source中拿到或者送到sink中的event数量
      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
      
    • spooldir source

      • 注意其监控的文件夹下面不能有同名文件的产生
      • 如果有 报错且罢工 后续就不再进行数据的监视采集了
      • 在企业中通常给文件追加时间戳命名的方式保证文件不会重名
  • 案例:监控文件的变化采集到hdfs

    • exec source 可以执行指定的linux command 把命令的结果作为数据进行收集

      while true; do date >> /root/logs/test.log;done
      #使用该脚本模拟数据实时变化的过程
      

  • flume的负载均衡

    • 所谓的负载均衡 用于解决一个进程或者程序处理不了所有请求 多个进程一起处理的场景
    • 同一个请求只能交给一个进行处理 避免数据重复
    • 如何分配请求就涉及到了负载均衡的算法:轮询(round_robin) 随机(random) 权重
  • flume串联跨网络传输数据

    • avro sink

    • avro source

      使用上述两个组件指定绑定的端口ip 就可以满足数据跨网络的传递 通常用于flume串联架构中

  • flume串联启动

    通常从远离数据源的那一级开始启动


  • flume failover
    • 容错又称之为故障转移 容忍错误的发生。
    • 通常用于解决单点故障 给容易出故障的地方设置备份
    • 备份越多 容错能力越强 但是资源的浪费越严重

  • 静态拦截器
 如果没有使用静态拦截器
  Event: { headers:{} body:  36 Sun Jun  2 18:26 }
  
  使用静态拦截器之后 自己添加kv标识对
  Event: { headers:{type=access} body:  36 Sun Jun  2 18:26 }
  Event: { headers:{type=nginx} body:  36 Sun Jun  2 18:26 }
  Event: { headers:{type=web} body:  36 Sun Jun  2 18:26 }

后续在存放数据的时候可以使用flume的规则语法获取到拦截器添加的kv内容

# 设置正则表达式,匹配指定的数据,这样设置会在数据的header中增加log_type="某个值"
agent1.sources.r1.interceptors.i2.regex = "type":"(\\w+)"
agent1.sources.r1.interceptors.i2.serializers = s1
agent1.sources.r1.interceptors.i2.serializers.s1.name = log_type
  %{type}
  • 模拟数据实时产生
  while true; do echo "access access....." >> /root/logs/access.log;sleep 0.5;done
  while true; do echo "web web....." >> /root/logs/web.log;sleep 0.5;done
  while true; do echo "nginx nginx....." >> /root/logs/nginx.log;sleep 0.5;done

SAP Event Mesh 简介 Get Started with Messaging for Decoupled Communication Step 1: What is the SAP Event Mesh service? SAP Event Mesh 是一种完全托管的服务,用于连接应用程序、服务和系统,以便它们可以通过消息和事件相互交互。 它通过引入中央消息代理取代了传统的点对点通信。 虽然点对点通信适用于在有限数量的发送方和接收方之间共享数据,但可扩展性很快就会成为一个问题。 SAP Event Mesh 解决了这个问题,并确保 阅读详情

相关推荐

避开模板匹配的坑:OpenCVSharp中边缘梯度算法的优化实践

本文深入探讨了OpenCVSharp中边缘梯度算法在模板匹配中的优化实践,解决了传统方法在尺度变化、角度旋转和光照差异下的局限性。通过Sobel算子提取边缘梯度特征,结合轮廓检测和多尺度匹配策略,显著提升了匹配的鲁棒性和准确性。文章还分享了并行计算、内存访问优化等实战技巧,适用于工业检测和自动化识别场景。

http9protocoller的博客 196

Apache Flume学习笔记之一:基本概念和流程

参考:http://flume.apache.org/FlumeUserGuide.html 一、概述 Apache Flume是一个分布式的、可靠的、可用的系统,用于从许多不同的数据源高效的收集大容量的日志数据,聚合并传输到一个集中的数据存储。 Apache Flume并不局限于日志数据的聚合。由于数据源是可定制的,Flume可用于传输多种事件数据,包括但不限于网络

Coding a Life 2652

动手学Moveit2|使用配置助手创建自己机械臂的功能包

今天没时间了,先生成功能包,下一步还需要装一些依赖才能运行,明天再补充下面的内容。

生活不止眼前的苟且 1万+

Apache Flume 学习笔记

# 从http://flume.apache.org/download.html 下载flume ############################################# # 概述:Flume 是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的软件。 # Flume的核心是把数据从数据源(source)收集过来,送到指定的目的地(sink...

weixin_30701575的博客 100

Arxml文件可视化:当汽车软件架构遇见交互式设计工具

本文探讨了Arxml文件在汽车电子系统开发中的可视化技术,结合AUTOSAR架构标准,介绍了如何利用现代Web技术构建交互式设计工具。通过三维组件关系图、动态数据流展示和版本对比等功能,显著提升开发效率和架构评审质量,适用于MBD和ASPICE开发流程。

weixin_29050271的博客 427

SAR成像处理基本知识2——图像尺寸与回波尺寸的关系

阅读本文前,请先了解上一篇文章(SAR成像处理基本知识1——常用专用名词解释) 1. SAR图像尺寸预估方法 以C波段2m@20km的SAR图像为例,假设天线中心下视角为35° ,说明图像尺寸的估计方法。 1.1 距离向尺寸估计 地距分辨率为2m时,距离向分辨率约为1.15m,则要求信号带宽不小于130MHz,假设信号带宽为150MHz,采样率为180MHz,那么距离向分辨单元为0.833m。 地距幅宽为20km时,距离向幅宽约为20*sind(3...

爱学习的小伟的博客 4953

大数据数据采集 Apache-Flume 笔记

​ -Dflume.root.logger=INFO,console :-D表示flume运行时动态修改flume.root.logger参数属性值,并将控制台日志打印级别设置为INFO级别。​ --conf-file/-f:flume本次启动读取的配置文件是在conf文件夹下的nc-flume-log.conf文件。将apache-flume-1.10.1-bin.tar.gz上传到linux的/opt/software目录下。修改apache-flume-1.10.1-bin的名称为flume。

Gavin31415926的博客 1969

手把手教你用Apple Developer App完成苹果开发者账号注册(含证件验证失败解决方案)

本文详细指导如何通过Apple Developer App完成苹果开发者账号注册,特别针对证件验证失败问题提供解决方案。从准备工作到注册流程,再到验证失败的处理方法,帮助开发者顺利完成注册,避免常见错误。

moss5的博客 1155

Flume.apache.org 官方文档学习笔记 part four

JMS 源: jms源阅读从jms目的地发来的信息,例如队列,主题等。 作为一个jms应用程序,他应该和jms提供程序一起工作,但是仅使用ActiveMQ进行测试。JMS源提供可配置的批量大小,消息选择器,用户/传递还有消息到接收器事件转换器。 要注意的是,供应商提供的jms jar包 应该包括在flume的类路径中,使用plugins.d目录(首选),命令行上的-cla...

Kingsley's Blog 340

第6章: MMU Notifier在KVM虚拟化中的应用

本文分析了KVM如何利用MMU Notifier机制维护客户机与宿主机地址映射一致性。KVM采用三层地址空间转换架构(GVA→GPA→HPA),通过硬件辅助虚拟化(EPT/NPT)实现高效转换。重点探讨了KVM MMU Notifier回调实现,包括invalidate_range_start/end等核心函数,以及HVA范围处理流程。当宿主机内存变化时,KVM通过注册的notifier回调及时更新映射关系,确保虚拟化环境的内存一致性。文章详细解析了相关数据结构和关键代码实现,揭示了KVM内存管理的核心机制

图形/计算GPU的驱动与虚拟化技术分享园地 2315

【AI编程】Trae 环境搭建与配置从使用到项目实战详解

Trae 环境搭建与配置从使用到项目实战详解

congge 5650

Flume.apache.org 官方文档学习笔记 part one

Apache Flume 是一个分布式,可靠且可用的系统,用于有效地从许多不同的源收集,聚合和移动大量日志数据到集中式数据存储。 Apache Flume的使用不仅限于日志数据聚合。由于数据源是可定制的,因此Flume可用于传输大量事件数据,包括但不限于网络流量数据,社交媒体生成的数据,电子邮件消息以及几乎任何可能的数据源。 Apache Flume是Apache Software Fo...

Kingsley's Blog 382

SEGGER Embedded Studio初体验

先楫HPM5E00EVK开发环境搭建

hywing's blog 1108

Flume.apache.org 官方文档学习笔记 part five

kafka 源: Kafka 源是Apache Kafka 消耗者,读取来自kafka主题的信息。如果你有多个Kafka源在运行,你可以给他们配置一样的使用者群组,以便每个源都读取一组唯一的主题分区。 要注意的是:Kafka源重写了两个kafka消费者属性,auto-commit可以被此源设置为“false",并且每...

Kingsley's Blog 740

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Flume.apache.org 官方文档学习笔记 part three

flume 源 avro 源 监听 Avro的端口和从外部的Avro客户端数据流接收事件,当built-Avro 接收器和另一个流代理配对时,他可以创建层列式收集拓扑,所需的属性用粗体表示了: Example for agent named a1: a1.sources = r1 a1.channels = c1 a1.sources.r1.t...

Kingsley's Blog 397

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

2020-09-30【学习笔记】【企业数据湖】六、基于Apache Flume的流式数据获取(2)

四、flume架构 一个简单的flume架构包含三个重要的组件,他们协同工作,并且以实时的方式将源数据传输到目的地。 source:用于监听流式数据或事件,将其写入到channel channel:一个存储数据的流水线,数据存储在其中直到被其他组件取走 sink:用于从channal中获取事件并进一步处理或者持久化到数据存储。失败则重试 还有一些众所周知的结构 分布式数据流水线(上面结构可一个个的连接起来) 扇出(一个source将数据传给多个channel) 扇入(多source写入一个ch

qihoo233的博客 228

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Flume.apache.org 官方文档学习笔记 part six

NetCat TCP source netcat-like源 会监听一个给出的端口,并且将文本的每一行转化成一个事件。 命令就像 nc -k -l [host] [port] 换句话说, 它打开了一个特定的端口并且监听数据。 期望提供的数据是换行符分割文本。 每行文本都会转换成flume事件,并通过连接的通道发送。 NetCat UDP Source 就像每一个原始的...

Kingsley's Blog 246

Flume.apache.org 官方文档学习笔记 part two

配置个体组件: 当你定义了这个流之后,你需要去设置每个资源、接收器、信道的属性。这是在你设置组件类型和每个组件的特定属性值的同一层命名空间内完成的。 # properties for sources <Agent>.sources.<Source>.<someProperty> = <someValue> # propert...

Kingsley's Blog 242

2020-10-01【学习笔记】【企业数据湖】六、基于Apache Flume的流式数据获取(3)

十一、Flume事务管理 数据从客户端或者上一个sink进入当前的agent会触发一个事务,这种事务称为sourcetx。当事件在channel中持久化并收到确认信息后。sourcetx宣告结束。 在agent的范围内,第二个事务是sinktx,该事务开始于sink轮询数据。 十二、Flume的其他组件 1、channelProcessor(持久化channel数据) 2、interceptor(过滤) 3、channel selector(与interceptor类似) 4、sinkGrou

qihoo233的博客 188

2020-09-29【学习笔记】【企业数据湖】六、基于Apache Flume的流式数据获取(1)

一、数据获取 1、什么是流数据 各种web和应用服务器生成的日志数据 企业网站的用户行为数据 客户在各种社交网络平台上产生的大量数据 来自各种传感器的数据 2、批量数据和流式数据 批处理数据获取用sqoop,流式数据获取 用flume 3、流式数据获取技术路线图 4、什么是flume flume本意指通过修建渠道。利用渠道的能力从山上运输木材。 这里指从数据源传输大量数据到目的地 二、为什么使用flume 1、flume简史 flume是由cloudera公司开发的,专门用于.

qihoo233的博客 237

Flume用来收集日志,zeppelin用来展示

Flume:Flume是一个分布式,可依赖的,用于高效率的收集、聚类、移动大量数据的服务。Flume使用基于流数据的简单而且可扩展的架构。由于拥有可调的依赖机制和许多故障恢复机制,Flume是健壮而且容错的。Flume使用简单的可扩展的数据模型,能够用于在线数据分析。 官网:http://flume.apache.org/index.html zeppelin:一个能够用来...

anx50588的博客 151

Flume学习笔记(一)安装与简单使用

本文环境如下: 操作系统:CentOS 7.2.1511 64位 Flume版本:1.6.0 1. 系统需求Flume需要Java 1.6及以上(推荐1.7),对Agent监控目录的读写权限。2. 下载软件包到Flume官网上http://flume.apache.org/download.html下载软件包,例如:wget "http://mirrors.cnnic.cn/apache

Lnho的专栏 1万+

Apache Flume

Apache Flume介绍架构Flume环境搭建配置文件结构快速入门启动Avro SourceMaven依赖代码Avro Source | memory channel| Kafka SinkFlume和log4j整合依赖log4j.properties测试代码Spring Boot logback整合 FlumeSpringBoot项目组引入logback.xml集成 Flume +log...

17611119847 1万+

Apache Flume Hadoop 项目使用教程

Apache Flume Hadoop 项目使用教程 1. 项目的目录结构及介绍 Apache Flume Hadoop 项目的目录结构如下: logging-flume-hadoop/ ├── flume-ng-auth/ ├── flume-ng-channels/ ├── flume-ng-clients/ ├── flume-ng-core/ ├── flume-ng-doc/ ├── f...

gitblog_00001的博客 1030

【Apache Flume】Apache Flume之Java API集成

Apache Flume原生API集成pom.xml依赖单机连接集群连接故障转移负载均衡log4j集成(传统)pom依赖log4j.properties测试案例SpringBoot 集成pom依赖log4j.properties实现类spring启动类测试类 原生API集成 pom.xml依赖 <!--必须提前搭建AVRO Source--> <dependency> <groupId>org.apache.flume</groupId> <ar

码小白. 2472

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" 主题。

更深兼春远的博客 1449
上一篇: flume+kafka篇
下一篇: Spark篇
Imflash
博客等级 码龄8年 66粉丝 84原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值