Flume File Channel

这篇具有很好参考价值的文章主要介绍了Flume File Channel。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

昨天用Flume采集kafka中的数据到HDFS上,今天才发现Flume采集丢数据了。
于是又回顾了一下这个问题:
Flume采集数据会丢失吗?(防止数据丢失的机制)

  • 根据Flume的架构原理,Flume是不可能丢失数据的,其内部有完善的事物机制,Source到Channel是Put事务,Channel到Sink是Take事务,因此这两个环节不会出现数据的丢失。
  • 如果Channel采用FileChannel不会丢失,Channel存储可以存储在File中,数据传输自身有事务。
  • 如果Channel采用MemoryChannel有可能会丢数据,agent宕机会导致数据丢失,或者Channel存储数据已满,导致Source不再写入,未写入的数据丢失。

而我正正是使用了MemoryChannel,所以才导致数据丢失的。
今天来学习一下FileChannel吧。

属性 默认值 说明
type - 组件类型,这个是:file
checkpointDir ~/.flume/file-channel/checkpoint 记录检查点的文件的存储目录
checkpointInterval 30000 检查点的时间间隔(毫秒)
useDualCheckpoints false 是否备份检查点目录(默认是false)
backupCheckpointDir - 备份检查点的目录(不能与数据目录和检查点目录相同)
dataDirs ~/.flume/file-channel/data 逗号分隔的数据目录列表,用于存储数据文件( dataDirs 配置多个不同盘下的目录可以提高File Channel的性能。)
transactionCapacity 10000 channel支持的单个事务最大容量
capacity 1000000 channel的最大容量
maxFileSize 2146435071(≈2047MB) 单个日志文件的最大字节数
minimumRequiredSpace 524288000 最小空闲空间的字节数。为了避免数据损坏,当空闲空间低于这个值的时候,file channel将拒绝一切存取请求
keep-alive 3 存入Event的最大等待时间(秒)

检查点目录(checkpointDir)文章来源地址https://www.toymoban.com/news/detail-481741.html

  • 在File Channel中,有一个内存队列用来保存已被Source写入但还未被Sink消费的Event数据的指针,Event指针指向的就是Event在数据目录下的数据文件中的存放位置。
  • 所以检查点指的就是内存队列在某一稳定时刻的“快照”,而且每隔一段时间(checkpointInterval)File Channel会将内存队列持久化到磁盘文件,也就是我们配置的检查点目录下。
  • 为了保证内存队列“快照”的完整性,在将内存队列持久到磁盘文件时需要锁定内存队列,也就是说,在这个过程中 Source不能将Event写入到Channel中,并且Sink也不能从Channel中拉取Event。(总之,既不能读也不能写)
  • backupCheckpointDir就是检查点目录的备份目录,因为检查点文件是经常读写的,很容易导致文件损坏。
    参考链接:flume之Channel
  • 如果一个Agent中有多个File Channel实例,而且都是使用了默认的检查点目录checkpointDir或者是设置了同样的检查点目录,则只有一个实例可以锁定目录并导致其它Channel初始化失败。所以,我们应该为所有的File Channel显式配置不同的检查点目录,最好是在不同的磁盘上。
#表示a1的channel类型是file文件型
a1.channels.c1.type = file
#设置检查点目录
a1.channels.c1.checkpointDir = /opt/module/flume-1.9.0/jobs/douban_movies/checkpoint
#设置数据目录
a1.channels.c1.dataDirs = /opt/module/flume-1.9.0/jobs/douban_movies/data

到了这里,关于Flume File Channel的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【数仓】通过Flume+kafka采集日志数据存储到Hadoop

    【数仓】基本概念、知识普及、核心技术 【数仓】数据分层概念以及相关逻辑 【数仓】Hadoop软件安装及使用(集群配置) 【数仓】Hadoop集群配置常用参数说明 【数仓】zookeeper软件安装及集群配置 【数仓】kafka软件安装及集群配置 【数仓】flume软件安装及配置 【数仓】flum

    2024年03月17日
    浏览(59)
  • 大数据之使用Flume监听端口采集数据流到Kafka

    前言 题目: 一、读题分析 二、处理过程   1.先在Kafka中创建符合题意的Kafka的topic  创建符合题意的Kafka的topic 2.写出Flume所需要的配置文件 3.启动脚本然后启动Flume监听端口数据并传到Kafka 启动flume指令 启动脚本,观察Flume和Kafka的变化 三、重难点分析 总结          本题

    2024年02月08日
    浏览(58)
  • 一百七十二、Flume——Flume采集Kafka数据写入HDFS中(亲测有效、附截图)

    作为日志采集工具Flume,它在项目中最常见的就是采集Kafka中的数据然后写入HDFS或者HBase中,这里就是用flume采集Kafka的数据导入HDFS中 kafka_2.13-3.0.0.tgz hadoop-3.1.3.tar.gz apache-flume-1.9.0-bin.tar.gz # cd  /home/hurys/dc_env/flume190/conf # vi  evaluation.properties ### Name agent, source, channels and sink ali

    2024年02月09日
    浏览(49)
  • 日志采集传输框架之 Flume,将监听端口数据发送至Kafka

    1、简介                 Flume 是 Cloudera 提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传 输的系统。Flume 基于流式架构,主要有以下几个部分组成。  主要组件介绍: 1)、 Flume Agent 是一个 JVM 进程,它以事件的形式将数据从源头送至目的。Agent 主

    2024年01月22日
    浏览(56)
  • (二十八)大数据实战——Flume数据采集之kafka数据生产与消费集成案例

    本节内容我们主要介绍一下flume数据采集和kafka消息中间键的整合。通过flume监听nc端口的数据,将数据发送到kafka消息的first主题中,然后在通过flume消费kafka中的主题消息,将消费到的消息打印到控制台上。集成使用flume作为kafka的生产者和消费者。关于nc工具、flume以及kafka的

    2024年02月09日
    浏览(51)
  • Hadoop生态圈中的Flume数据日志采集工具

    数据采集一般指的是将数据采集到大数据环境下进行持久化、海量化的保存,目的主要是为了我们后期的大数据处理(数据统计分析、数据挖掘等等)沉底数据基础。 不同的来源的数据我们一般有不同的数据采集方式 1、数据来源于我们的RDBMS关系型数据库:Sqoop数据迁移工具

    2024年02月08日
    浏览(45)
  • Flume实战篇-采集Kafka到hdfs

    记录Flume采集kafka数据到Hdfs。 主要是自定义下Flume读取event头部的时间。 将打好的包放入/opt/module/flume/lib文件夹下 [root@ lib]$ ls | grep interceptor flume-interceptor-1.0-SNAPSHOT-jar-with-dependencies.jar 配置下flume的jvm    上面配置消费的形式是earliest,如果重新启动以后,他会从最新的位置开

    2024年02月06日
    浏览(54)
  • 大数据课程E4——Flume的Channel

    文章作者邮箱:yugongshiye@sina.cn              地址:广东惠州 ⚪ 了解Channel的作用和配置; ⚪ 掌握Channel的使用方法; ⚪ 掌握Channel的File Channel; ⚪ 掌握Channel的JDBC Channel; ⚪ 掌握Channel的Spillable Memory Channel; 1. Memory Channel将数据临时存储到内存的指定队列中。 2. 如果不

    2024年02月14日
    浏览(28)
  • 二百一十一、Flume——Flume实时采集Linux中的Hive日志写入到HDFS中(亲测、附截图)

    为了实现用Flume实时采集Hive的操作日志到HDFS中,于是进行了一场实验 [root@hurys23 conf]# find / -name hive.log /home/log/hive312/hive.log [root@hurys23 conf]# vi  flume-file-hdfs.conf # Name the components on this agent a2.sources = r2 a2.sinks = k2 a2.channels = c2 # Describe/configure the source a2.sources.r2.type = exec a2.sources

    2024年02月04日
    浏览(63)
  • Flume 数据采集

    1 . 2 . 1  集群 进程查看 脚本 (1)在/home/bigdata_admin/bin目录下创建脚本xcall.sh [bigdata_admin@hadoop102  bin]$ vim xcall.sh (2)在脚本中编写如下内容 (3)修改脚本执行权限 [bigdata_admin@hadoop102 bin ]$ chmod 777 xcall.sh (4)启动脚本 [bigdata_admin@hadoop102 bin ]$ xcall.sh jps 1 . 2.2 H adoop 安装 1)安

    2024年02月11日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包