事务启动以后,批量向事务Transaction的一个putList的尾部写入,putlist是一个LinkedBlockingDeque .

事务提交的时候, 把putlist中的event批量移除, 转移到Channel的一个LinkedBlockingDeque 里面来.

而SinkRunner则启动PollingRunner , 也通过定时启动任务,调用SinkProcessor,最后调用Sink的process方法,这个方法也负责启动一个事务 ,批量从Channel的LinkedBlockingDeque中拉取event , 写入takelist ,批量做完的put操作以后,做Transaction的事务提交操作

flume在一个事务中有putlist 和 takelist,而他们俩的类型都是LinkedBlockingDeque类型,而TransactionCapacity控制的就是这个双端队列的长度

一一一一一一一一一一一一一一一一一一一一一一一一一

而上诉问题的产生是因为我观察到一次性有非常大大大量的event的在一瞬间产生了(因为用的是httpsource,可能是网络延迟balabala什么的原因,大家可能很难遇见我这种情况)然后紧随而来出现了这个问题!

so!那么很明显了,是因为putList的容量不足直接被塞满了!

那么控制putlist的是TransactionCapacity,

so,我将TransactionCapacity调整为了50000(目前还在观察中)

但这种并不能完美的解决问题,因为你保不准下次一次性来的event大小会不会超过这个值!无限增加也是个愚蠢的举动,所以将sink改为多线程消费才是明智之举,这才是最根本的解决之道,提高下游的处理能力,例如换成strom

关于flume的filechannel的 full 问题的更多相关文章

  1. flume install

    flume install flume 安装 123456 [root@10 app][root@10 app]# mv apache-flume-1.7.0-bin /mnt/app/flume[r ...

  2. Flume FileChannel优化(扩展)实践指南

    本文系微博运维数据平台(DIP)在Flume方面的优化扩展经验总结,在使用Flume FileChannel的场景下将吞吐率由10M/s~20M/s提升至80M/s~90M/s,分为四个部分进行介绍: ...

  3. flume使用示例

    flume的特点: flume是一个分布式.可靠.和高可用的海量日志采集.聚合和传输的系统.支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受 ...

  4. Flume NG Getting Started(Flume NG 新手入门指南)

    Flume NG Getting Started(Flume NG 新手入门指南)翻译 新手入门 Flume NG是什么? 有什么改变? 获得Flume NG 从源码构建 配置 flume-ng全局选 ...

  5. Flume官方文档翻译——Flume 1.7.0 User Guide (unreleased version)(二)

    Flume官方文档翻译--Flume 1.7.0 User Guide (unreleased version)(一) Logging raw data(记录原始数据) Logging the raw ...

  6. flume原理及代码实现

    转载标明出处:http://www.cnblogs.com/adealjason/p/6240122.html 最近想玩一下流计算,先看了flume的实现原理及源码 源码可以去apache 官网下载 ...

  7. Flume采集处理日志文件

    Flume简介 Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集.聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据:同时,Flume提供对数据 ...

  8. Flume概述和简单实例

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

  9. Flume日志采集系统——初体验(Logstash对比版)

    这两天看了一下Flume的开发文档,并且体验了下Flume的使用. 本文就从如下的几个方面讲述下我的使用心得: 初体验--与Logstash的对比 安装部署 启动教程 参数与实例分析 Flume初体验 ...

随机推荐

  1. Windows API 查找窗体,发送Windows消息

    最近项目中需要做Windows消息截获操作,在网上找了一些资料. public class WindowsAPI { /// <summary> /// 回调函数代理 /// </s ...

  2. Java学习---MD5加密算法

    前言 在我们日常的程序开发中,或多或少会遇到一些加密/解密的场景,比如在一些接口调用的过程中,我们(Client)不仅仅需要传递给接口服务(Server)必要的业务参数,还得提供Signature(数 ...

  3. .htaccess详解及.htaccess参数说明

    .htaccess文件(或者”分布式配置文件”)提供了针对目录改变配置的方法, 即,在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录.作为用户,所能使用的命令受到 ...

  4. 推送代码到GitHub上的两种方式

       要想将本地Git上代码提交到GitHub可以使用两种协议进行提交,分别使用HTTPS和SSH两种协议,如下所示. 当使用HTTPS协议时,每次推送的时候都需要输入GitHub平台的用户名密码. ...

  5. LeetCode算法题 菜鸟总结

    近期准备抽出一点时间,刷一些题防止手生,毕竟codemonkey,吃饭的手艺不能忘. ······································· 基本的题目都是基于java语言解答 ...

  6. December 27th 2016 Week 53rd Tuesday

    A journey of one thousand miles begins with one step. 千里之行始于足下. No matter how slowly you walk, as lo ...

  7. codeforces 388D Fox and Perfect Sets(线性基+数位dp)

    #include<bits/stdc++.h> using namespace std; #define fi first #define se second #define mp mak ...

  8. c++计算器后续(1)

    自娱自乐: 大概是一直在说的代码规范,大概是玩一玩,以上. 代码规范: 参考原文:链接 相关节选: 4 程序的版式 4.4规则:较长的语句(>80字符)要分成多行书写. 4.5规则:不允许把多个 ...

  9. ubuntu 13.04添加 flash_plugin

    mv libflashplayer.so  /usr/lib/mozilla/plugins

  10. JavaScript学习记录总结(八)——全选、反选

    <!DOCTYPE html><html><head><title>checkboxs.html</title> <meta name ...