Flume-NG之KafkaChannel
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
Flume-NG之KafkaChannel的更多相关文章
- Flume NG Getting Started(Flume NG 新手入门指南)
Flume NG Getting Started(Flume NG 新手入门指南)翻译 新手入门 Flume NG是什么? 有什么改变? 获得Flume NG 从源码构建 配置 flume-ng全局选 ...
- 高可用Hadoop平台-Flume NG实战图解篇
1.概述 今天补充一篇关于Flume的博客,前面在讲解高可用的Hadoop平台的时候遗漏了这篇,本篇博客为大家讲述以下内容: Flume NG简述 单点Flume NG搭建.运行 高可用Flume N ...
- 【转】Flume(NG)架构设计要点及配置实践
Flume(NG)架构设计要点及配置实践 Flume NG是一个分布式.可靠.可用的系统,它能够将不同数据源的海量日志数据进行高效收集.聚合.移动,最后存储到一个中心化数据存储系统中.由原来的Fl ...
- Flume NG简介及配置
Flume下载地址:http://apache.fayea.com/flume/ 常用的分布式日志收集系统: Apache Flume. Facebook Scribe. Apache Chukwa ...
- flume ng系列之——flume安装
flume版本:1.5.0 1.下载安装包: http://www.apache.org/dyn/closer.cgi/flume/1.5.0/apache-flume-1.5.0-bin.tar.g ...
- Flume NG 简介及配置实战
Flume 作为 cloudera 开发的实时日志收集系统,受到了业界的认可与广泛应用.Flume 初始的发行版本目前被统称为 Flume OG(original generation),属于 clo ...
- Flume OG 与 Flume NG 的区别
1.Flume OG:Flume original generation 即Flume 0.9.x版本 Flume NG:Flume next generation ,即Flume 1.x版本 ...
- Flume NG中的Kafka Channel
kafka(官网地址:http://kafka.apache.org)是一款分布式消息发布和订阅的系统 在Flume中的KafkaChannel支持Flume与Kafka整合,可以将Kafka当做ch ...
- 【Flume NG用户指南】(1)设置
作者:周邦涛(Timen) Email:zhoubangtao@gmail.com 转载请注明出处: http://blog.csdn.net/zhoubangtao/article/details ...
- 【Flume NG用户指南】(2)构造
作者:周邦涛(Timen) Email:zhoubangtao@gmail.com 转载请注明出处: http://blog.csdn.net/zhoubangtao/article/details ...
随机推荐
- IT男的”幸福”生活"续8
有段时间没写了,还是有点怀念的. 生活不记录下,怕真地会忘.. 以往的种种,时时刻刻回荡在我的脑海中, 最近看着孩子生活照, 猛得回首我便回了到了 续8. …… 坐在回去的公交车上,看着前面两M ...
- Android应用程序模拟手机按键
记得以前在做一个C++项目时,需要在某一步操作之后人为用代码模拟敲键盘上的回车键(Enter)效果. 出于好奇,这几天研究了一下Android中手机(或平板)上各种按键的键值.模拟方法及最终效果. 1 ...
- DateTime.Parse
上月第一天:DateTime.Parse(DateTime.Now.AddMonths(-1).ToString("yyyy-MM-01")) 上周星期天:DateTime.Par ...
- Linq之延迟加载特性
目录 写在前面 系列文章 延迟加载 总结 写在前面 上篇文章介绍了linq中常见的几个关键字,并列举了几个例子,算是对linq如何使用有了初步了解.上篇文章中也提到了,能够使用linq的场合有一个要求 ...
- Bootstrap3.0学习第十七轮(JavaScript插件——模态框)
详情请查看http://aehyok.com/Blog/Detail/24.html 个人网站地址:aehyok.com QQ 技术群号:206058845,验证码为:aehyok 本文文章链接:ht ...
- Bootstrap3.0学习第十五轮(大屏幕介绍、页面标题、缩略图、警示框、Well)
详情请查看 http://aehyok.com/Blog/Detail/22.html 个人网站地址:aehyok.com QQ 技术群号:206058845,验证码为:aehyok 本文文章链接:h ...
- 每天一个linux命令(34):kill命令
Linux 中的kill命令用来终止指定的进程(terminate a process)的运行,是Linux下进程管理的常用命令.通常,终止一个前台进程可以 使用Ctrl+C键,但是,对于一个后台进程 ...
- javax.servlet.ServletException: com.microsoft.jdbc.base.BaseDatabaseMetaData.supportsGetGeneratedKeys()Z
javax.servlet.ServletException: com.microsoft.jdbc.base.BaseDatabaseMetaData.supportsGetGeneratedKey ...
- [转]DBA,SYSDBA,SYSOPER三者的区别
原文地址:http://www.oracleonlinux.cn/2010/02/dba_sysdba_sysoper/ 什么是DBA?什么是SYSDBA,什么又是SYSOPER?三者究竟有何联系呢? ...
- iOS边练边学--GCD的基本使用、GCD各种队列、GCD线程间通信、GCD常用函数、GCD迭代以及GCD队列组
一.GCD的基本使用 <1>GCD简介 什么是GCD 全称是Grand Central Dispatch,可译为“牛逼的中枢调度器” 纯C语言,提供了非常多强大的函数 GCD的优势 G ...