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

Source

*Source负责接收events或通过特殊机制产生events,并将events批量放到一个或多个Channels。有驱动和轮询2种类型的Source。

驱动型source:是外部主动发送数据给Flume,驱动Flume接受数据。

轮询source:是Flume周期性主动去获取数据。

*Source必须至少和一个channel关联。

Channel

*Channel位于Source和Sink之间, Channel的作用类似队列,用于临时缓存进来的events,当Sink成功地将events发送到下一跳的channel或最终目的,events从Channel移除。

不同的Channel提供的持久化水平也是不一样的:

Memory Channel:不会持久化 。

File Channel: 基于WAL(预写式日志Write-Ahead Log)实现。

JDBC Channel: 基于嵌入式Database实现。

*Channels支持事务,提供较弱的顺序保证,可以连接任何数量的Source和Sink。

memory channel:消息存放在内存中,提供高吞吐,但不提供可靠性;可能丢失数据。

file channel:对数据持久化;但是配置较为麻烦,需要配置数据目录和checkpoint目录;不同的file channel均需要配置一个checkpoint 目录。

jdbc channel:内置的derby数据库,对event进行了持久化,提供高可靠性;可以取代同样具有持久特性的file channel

Sink

*Sink负责将events传输到下一跳或最终目的,成功完成后将events从channel移除。

*必须作用于一个确切的channel。





最新文章

  1. Python基础知识之认识字符串
  2. 社区O2O的发展与未来
  3. MSBuild简单介绍
  4. Web安全开发注意事项
  5. MongoDB 删除数据库
  6. how to check unsolved conflicts file list in git merge?
  7. 常见内部函数----Python
  8. js blog
  9. SCALA中类的继承
  10. dia 在Linux(ubuntu)下无法输入中文的解决办法 .
  11. wget ( download the whole page from the website )
  12. python 带小数点时间格式化
  13. MySQL在CenterOS和Ubuntu的安装
  14. OpenCvSharp尝试
  15. HDU1171将多个不同价值不同数量的器材尽可能按等价值均分 第一份的价值尽可能的大 所以sum/2对第二份进行01背包 使其价值尽可能的大
  16. CRM rbac 组件的应用
  17. git 修改上次提交信息 与 撤销此操作.
  18. 在linux下使用sqlcmd
  19. gcc5.2版本安装详解
  20. weblogica domain目录 环境变量 如何启动weblogic server

热门文章

  1. js中刷新页面的方式总结
  2. 自定义IDOC
  3. Jekyll 解决Jekyll server本地预览文章not found的问题
  4. mongodb windows 集群搭建
  5. 通过10个实例小练习,快速熟练 Vue3.0 核心新特性
  6. spring data jpa 多对多 ManyToMany
  7. js--bom对象
  8. Qt标准对话框按钮文字等设置为中文
  9. jsp 中文乱码????解决
  10. Vuser发生器