首先介绍一下在flume中常用的一个数据格式,以及使用该格式的优缺点:  
从flume写数据到hdfs中的时候,使用二进制格式相对于使用纯文本来说是一种更好的选择,因为大多数二进制格式都有一些方法指明记录中损坏或者不完整等的问题。 二进制记录有助于检测他们并将这些不正确的记录进行忽略,例如flume中常用的二进制数据格式avro,这个格式是可以进行拆分的,并且可以检测文件中损坏或者不完整的记录。

flume agent 的内部原理:  
每个flume agent 主要有三个组件组成,source,channel,sink;
source是从一些其他产生数据的应用中接受数据的活跃组件。有自己生产数据的source,不过这些source一般是用作测试目的,source可以用来监听一个或者多个网络端口,用于接受数据或者从本地文件系统中读取数据。每个source必须至少连接一个channel,基于一些标准,一个source可以写入几个channel中,复制事件到所有或某些channel中。

channel:channel一般来说是一个被动组件,channel的行为想一个队列,source写入到他们,sink从他们中进行数据读取。

sink:sink连续轮询各自的channel来读取和删除事件,sink将事件推送到下一阶段或者最终的目的地

flume 本身不限制agent中source、channel、sink的数量,因此flume可以接受事件,并可以通过配置将事件复制到多个目的地。

拦截器是一段代码,可以基于某些它完成的处理来读取事件或者删除和修改事件,基于某些标准,例如正则表达式,拦截器可以删除事件,为事件添加新的报头或者移除现有的报头等。每个source可以配置使用多个拦截器,按照配置中定义的顺序被调用,将拦截的结果传递给莲的下一个单元

最新文章

  1. 【用xocde5打包 在IOS7以下也能显示无默认gloss 效果 图解】
  2. 使用base.调用父类里面的属性
  3. JavaScript鼠标经过图片的放大镜效果
  4. [转]Linux系统中‘dmesg’命令处理故障和收集系统信息的7种用法
  5. (转)SQLServer实例讲解
  6. Silverlight 使用IsolatedStorage新建XML文件,并且用LINQ查询XML
  7. Invoke与BeginInvoke
  8. BBC票选出的100部最经典美国电影,你看过几部?
  9. PS微观效果
  10. 10个最实用的Linux命令
  11. ClassLoader载入指定的类需注意六个细节或报ClassNotFundEception异常总结
  12. oracle用户、权限操作
  13. 【Android Studio安装部署系列】三十二、Android模拟器Genymotion安装使用教程详解
  14. Dynamics 365-CRM又报看不懂的错误了
  15. innodb表碎片处理
  16. 深入Dockerfile(一): 语法指南(转)
  17. C#调用存储过程详解(带返回值、参数输入输出等)
  18. Python+OpenCV图像处理(七)—— 滤波与模糊操作
  19. SpringBoot 全局统一记录日志
  20. sqlmap利用DNS进行oob(out of band)注入(转)

热门文章

  1. 【leetcode】441. Arranging Coins
  2. js: var定义域问题
  3. linux基础之LSB定义的常用目录详解
  4. Linux设备驱动模型之platform(平台)总线详解
  5. zombodb 聚合函数
  6. Java高级特性 第4节 输入输出流
  7. 十六、springcloud(二)Eureka集群
  8. 【java】接口
  9. linux SVN命令
  10. sql server紧急状态下登录脚本