apache下一个版本(1.6)将会带来一个新的组件KafKaChannel,顾名思义就是使用kafka做channel,当然在CDH5.3版本已经存在这个channel。

  大伙知道,常用的channel主要有三个:

  1、memory channel:用内存做channel,优点是速度最快,容易配置;缺点是,可靠性最差,因为一旦flume进程挂了内存中还未出来的数据也就没了;

  2、file channel:用本地文件做channel,优点是可靠性最高,数据都存在磁盘文件中,进程挂了重启后还会断点续传;缺点是速度最慢;

  3、SpillableMemoryChannel:总和memory channel和file channel,本质上是一个file channel,但是优先存储在内存中,内存满了之后再溢出到磁盘,优点是兼顾上面俩的优点;同样缺点也兼顾了;

  本人了解的现有各家怎么用Flume的也不是很多,大概齐一个合理的拓扑结构是两层,第一层的source直接和原始数据源接触,这一层的Flume节点要多,其中channel用file channel或者SpillableMemoryChannel,有高可靠性;第二层是汇总节点,这里的sink可以直接输出比如hdfs、HBase、本地磁盘文件等等,这一层的flume节点会比第一层少很多,channel建议用memory channel,因为这一层节点少,要保证及时汇总传输出去,那有问题为啥不用SpillableMemoryChannel呢?上面说了,它兼顾了两个channel,而且一个重要的缺点是第二层节点流量比第一层大,一旦第二层的sink出现问题可能会导致溢出到本地磁盘,这样sink性能大大降低但是进入的流量并不会减少,而且SpillableMemoryChannel中的数据也是有顺序的,这样有可能会导致出的速度一直赶不上入的速度,一个办法是增加节点数量(增加多了为啥还要第二层呢?)或者使用memory channel。第一层加上backoff,而且使用负载均衡给第二层发送数据。

  但是现在情况大大改观了,kafkaChannel的出现使得上面的两层可以合成一层,我粗略试用了一下,exec source + kafkachannel + file_roll sink,一个broker,一个topic,一个partition,速度在42MB/s左右,这样的速度虽然比不过memory channel,但是已经远远超过file channel了,而且可靠性不输file channel。

  我们知道,kafka source用consumer来从kafka  pull数据,kafka sink使用producer将数据发到kafka。而kafka channel包含producer和consumer,producer接受source发送过来的数据放到broker中,consumer从broker中pull数据给sink。目前只允许有一个topic,而且kafka自己的参数可以加上"kafka.*"添加到flume的配置文件。

  今天就是简单说一下,跟大伙赶紧分享一下这个东西,同学们可以抓紧试一下哈。。。。

  源码其实也不是很难,不过说实话,关于kafka那的部分还有一些不太明了,就不好意思在这深入分析了。。。自己在后面再仔细看吧 

  kafka大伙自己学吧,这也是一个好东西。。。 

  参考:

  1、http://ingest.tips/2014/11/16/flafka-apache-flume-meets-apache-kafka-for-event-processing/

  2、https://github.com/cloudera/flume-ng/tree/cdh5-1.5.0_5.3.2

  3、https://github.com/apache/flume/tree/flume-1.6

最新文章

  1. 策略模式(Strategy Pattern)
  2. BZOJ3329 : Xorequ
  3. 【Pro ASP.NET MVC 3 Framework】.学习笔记.12.ASP.NET MVC3的细节:URLs,Routing和Areas
  4. iOS事件处理之七种手势
  5. Java Day 16
  6. Android中关于日期时间与时区的使用总结
  7. CSS:7个你可能不认识的单位
  8. Oracle抓取表结构的语句
  9. 取distinct数据同时还取其他字段
  10. 原生Js写轮播图代码
  11. 逆向分析一款国外Blackjack Card Counter软件并附上License生成脚本
  12. SQL SERVER 基本操作语句
  13. 提交一个变量或数组到另一个jsp页面
  14. denyhosts、中文文档乱码、端口占用查询
  15. rest_framework常用设置
  16. BZOJ3298[USACO 2011Open]cow checkers——威佐夫博弈
  17. 【Java】-NO.16.EBook.4.Java.1.012-【疯狂Java讲义第3版 李刚】- Swing
  18. mysql 常用 sql
  19. RaPC(rasterized polygon clipper): A discrete grid-based polygon clipping algorithm
  20. Android 获取联系人和电话号码

热门文章

  1. Jenkins问题汇总
  2. Python数据可视化编程实战——导入数据
  3. 微信小程序开发:http请求
  4. Bootstrap系列 -- 30. 按钮工具栏
  5. Use Windows Azure AD to create SSO projects
  6. 第一章:javascript: 数据结构与算法
  7. 分布式Web服务器架构
  8. 使用background和background-image对CSS优先级造成影响
  9. python 参数
  10. js弹出窗口总结6种弹窗方法