设为首页 收藏本站
查看: 1207|回复: 0

[经验分享] 使用 Flume NG 实现数据采集平台

[复制链接]

尚未签到

发表于 2019-1-30 09:14:03 | 显示全部楼层 |阅读模式
为什么用Flume NG?#
对Flume NG不了解的朋友可以阅读一下这篇文章Flume NG入门详解 。开源的日志采集方案很多:

  •   Scribe : 是Facebook开发的数据收集系统,项目不怎么维护。
  •   Logstash: 是著名的开源数据栈ELK中的那个L。Logstash使用JRuby开发,运行时依赖JVM。 有比较强大的字段解析和过滤功能,但需要配置grok表达式,对实现数据传输有一定局限性,觉得不方便二次开发。
  •   Flume NG: 是Cloudera主导开发,是新一代的数据采集传输工具,构架简单,使用灵活,是hadoop生态中的一部分,核心代码量不大,方便二次开发。
选择什么方案主要根据团队积累和习惯,能解决数据采集问题就好。本文主要讲解使用Flume NG搭建数据采集平台。
数据采集平台需求#
数据采集是大数据平台的重要一环,一边需要对接各种数据源,另一边要考虑离线数据对接和实时流式计算需求。总结一下主要需求点:

  •   支持文件日志数据采集,保证文件记录不丢失
  •   考虑应用升级成本,低成本实现日志数据对接
  •   考虑流式计算需求,建立高速数据通路
  •   能够有一定的扩展性,应对数据量的增长
  •   具有一定容灾考虑,保证数据完整性
  •   能够监控数据的采集,传输过程
Flume NG数据采集平台方案#
使用 Flume NG + Kafka,基本能够实现上述平台需求:

  •   Flume 已经实现了各种source,基本能够保证灵活实现各种数据源的对接
  •   Flume 可配置成将数据复制成两个数据流,一条直接写入HDFS,一条写入Kafka
  •   通过Kafka对接流式计算和其它数据消费者,从而完成数据源和消费者的解耦
  •   Flume支持loadbalance和failover,能够实现水平扩展,保证数据传输完整性
  •   Flume 支持http方式获取内部监控指标数据
我们看看使用Flume NG构建数据采集平台的整体架构:

整个方案通过avro rpc做数据的汇集。为什么中间多了 data collection 这层?增加这层起到数据汇集的作用,datasource节点会很多,如果这些点都直接对接持久化层,那配置是比较多的,而且需要做调整时,涉及的机器和权限太多。多加一层可以使前后耦合降低,中间层机器数量不多,对数据写入,文件数量都有一定优化作用。而且需要增加新的数据持久只需修改几个节点配置。
实际使用中有几个点需要注意和优化:

  •   channel的选择,考虑性能和稳定性,可以考虑使用SpillableMemoryChannel,兼顾memory channel和file channel的实现,代码量不大,可以验证使用。如果你保守一点就是用file channel。
  •   file channel使用磁盘分区最好和应用数据输出分区分开,file channel,进度和数据目录也尽量分开。
  •   配置loadbalance和failover时候,sink不能复用。
  •   如果有能力尽量重新定制hdfs 写入过程,使用约定来减少通用代码逻辑。现有的hdfs sink,考虑到通用性使用了正则等,没有考虑你的数据特点,有一定优化的空间。
  •   增加各个环节 channel,source,sink 的监控,了解整体数据流向和压力,适时考虑扩容等问题。
  •   最好自己能够开发flume ng source 和sink,这样可以根据自己业务数据的特点,做适当的优化。
总结#
Flume NG 是一个很好的数据收集和传输工具,适合二次开发。后面一些实践配置继续给出。
  

  





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-669429-1-1.html 上篇帖子: flume分布式日志收集测试 下篇帖子: Flume 入门--几种不同的Sinks
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表