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

[经验分享] 那些年踏过的Apache Flume之路

[复制链接]

尚未签到

发表于 2018-11-19 07:59:11 | 显示全部楼层 |阅读模式
   Flume作为日志采集系统,有着独特的应用和优势,那么Flume在实际的应用和实践中到底是怎样的呢?让我们一起踏上Flume之路。

1、  什么是Apache Flume

(1)Apache Flume简单来讲是高性能、分布式的日志采集系统,和sqoop同属于数据采集系统组件,但是sqoop用来采集关系型数据库数据,而Flume用来采集流动型数据。

(2)Flume名字来源于原始的近乎实时的日志数据采集工具,现在被广泛用于任何流事件数据的采集,它支持从很多数据源聚合数据到HDFS。

(3)Flume最初由Cloudera开发,在2011年贡献给了Apache基金会,2012年变成了Apache的顶级项目。Flume OG是Flume最初的版本,后升级换代成了Flume NG

(4)Flume的优势:可横向扩展、延展性、可靠性

2、  Flume体系结构

(1)核心模块Agent:一个独立的Flume进程,包含了source,channel和sink组件:

a)Source是决定数据从哪里来以及以什么样的方式来进行采集的组件,它会把接受数据转化成event,event就是一个事件,这个事件有它的事件头,事件体(数据内容)。

b)Sink就是把event发送到指定的目的地,数据是写到HDFS,Hive还是Hbase,这些参数和类型选择都要用sink来完成。

c)Channel介于Source和Sink之间,从Source缓存event,直到Sink把event取走

3、  Flume设计目标

(1)可靠性

a)Channels提供了Flume可靠性保障,默认Channels的保障模式为Memory Channel,MemoryChannel就是内存,将所有的数据存放在里面,但是它本身存在缺陷,如果断电数据将会丢失。那怎么解决这个问题呢? Channels还有另外一种模式,就是基于磁盘的Channels,基于磁盘的队列确保当出现断电时数据不丢失,但是在这里我们必须明确Memory的性能是比磁盘高的。

b)Agent和Channel之间的数据传输是事务性的,就是在传输数据的过程中如果出现了故障,失败的数据会回滚和重试,不会丢失。事务就是保证我们的源到目标整体是完整的,要么一起成功,要么一起失败。                           

c)相同的任务可以配置多个Agent。比如,两个agent完成一个数据采集作业,如果一个agent失败,则上游的agent会失败切换到另一个。

(2)扩展性

当采集的数据过多的时候,Flume既可横向的扩展,也可以纵向扩展更多的agent来线性地提升系统性能。

(3)延展性

延展性就是Flume到底可以采集什么样的数据呢?在Flume中源是由Sources决定的,输出是由Sinks决定的,Sources和Sinks在Flume当中提供了一些非常丰富的实现。

例如:常见的Sources包括files、syslog和任何linux进程的标准输出的数据;常用Sinks包括本地文件系统或HDFS,也可以与kafka实现兼容、集成;更灵活的在于开发员可以写自己的Sources或Sinks。所以Flume既提供了内置的丰富的实现,也可以满足于针对一些特殊的数据源进行定制。

4、常见的Flume数据源:

DSC0000.png

5、大规模部署实例:

(1)Flume使用agents收集数据:

a)Agents可以从很多源接收数据,包括其他agents

b)大规模的部署使用多层来实现扩展性和可靠性

c)Flume支持传输中数据的检查和修改

DSC0001.png

对于Flume,我们从整体上进行了一个概括和认知解读,那么Sources、Sinks、Channels这些具体构件以及Flume的配置会是什么样的呢?后续我也会做相应的分享和解答。建议大家在平常多关注和学习大数据的相关资讯和分享知识,多学习别人的经验,我自己平常喜欢关注微信公众号“大数据cn”“大数据时代学习中心”,感觉不错,希望想学大数据的人可以一起进步。














  





运维网声明 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-636755-1-1.html 上篇帖子: Cannot load php5apache2_4.dll into server解决办法 下篇帖子: 使用PXE+DHCP+Apache+Kickstart无人值守安装linux
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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