分享美团日志收集系统的架构设计和实战经验
2020-12-30 11:52:02 阅读(189) 评论(0)
美团日志收集系统负责收集美团的所有业务日志,并为Hadoop平台和Storm平台提供离线数据和实时数据流。基于Flume设计和构建的美团日志收集系统。基于Flume的美团日志收集系统将向读者展示美团日志收集系统的架构设计和实践经验。架构和设计的第一部分主要集中在日志收集系统的整体架构设计上,以及为什么要做这样的设计。第二部分的改进和优化将主要集中在实际部署和使用过程中遇到的问题上,以及Flume的功能修改和优化。日志收集是大数据的基石。许多公司的业务平台每天都会产生大量的日志数据。日志收集系统需要收集业务日志数据,供离线和在线分析系统使用。日志收集系统的基本特征是高可用性、高可靠性和可扩展性。Flume、Scribe等是目前常用的开源日志收集系统。Flume是Cloudera提供的一个高度可用、高度可靠、分布式的海量日志采集、聚合和传输系统,目前是Apache的子项目。Scribe是Facebook开源的日志收集系统,为日志的分布式收集和统一处理提供了可扩展、高容错的简单解决方案。对比下面常用的开源日志收集系统,将对比常用的开源日志收集系统Flume和Scribe的各个方面。Flume主要以Apache下的Flume-NG为参考对象。与此同时,美团将常用的日志收集系统分为三层(Agent层、Colector层和Store层)进行比较。美团日志收集系统负责收集美团的所有业务日志,并为Hadoop平台提供离线数据和Storm平台提供实时数据流。基于Flume设计和构建的美团日志收集系统。每天收集和处理约T级别的日志数据。下图是美团日志收集系统的整体框架图。a.整个系统分为三层:Agent层、Collector层和Store层。其中,Agent层的每台机器部署一个过程,负责收集单台机器的日志;Collector层部署在中央服务器上,负责接收Agent层发送的日志,并根据路由规则在相应的store层中编写日志;Store层负责提供永久或临时的日志存储服务,或将日志流引导到其他服务器。b.Agent到Collector使用LoadBalance策略,平衡地将所有日志发送到所有Colector上,以实现负载平衡的目标,并处理单个Collector故障的问题。c.Collector层主要有三个目标:SinkHdfs,Sinkkafka和SinkBypass。将离线数据分别提供到HDFs,并将实时日志提供到Kafka和Bypass。SinkHdfs根据日志量的大小分为SinkHdfs_b,SinkHdfs_m和SinkHdfs_s三Sink,以提高写入HDFS的性能,详见后面介绍。d.对于Store,Hdfs负责永久存储所有日志;Kafka存储最新的7天日志,并为Storm系统提供实时日志流;Bypass负责为其他服务器和应用程序提供实时日志流。下图是美团日志收集系统的模块分解图,详细说明Agent、Colector和Bypass中的Source、Chanel和Sink之间的关系。a.模块命名规则:所有Source从src开始,所有Chanel从ch开始,所有Sink从sink开始;b.Chanel统一使用美团开发的DualChanel,具体原因后面详细说明;NulChanel用于过滤掉的日志,后面详细说明具体原因;c.Avro接口统一用于模块之间的内部通信;4架构设计将从可用性、可靠性、可扩展性和兼容性等方面对上述架构进行详细分析。4.1可用性(availablity)对于日志收集系统,可用性(availablity)指系统在固定周期内无故障运行的总时间。4.1可用性(availablity)对于日志收集系统,可用性(availablity)指系统在固定周期内无故障运行的总时间。为了提高系统的可用性,需要消除系统的单点,提高系统的冗余度。让我们来看看美团日志收集系统的可用性。4.1.Agent死亡Agent死亡分为两种情况:机器死亡或Agent过程死亡。对于机器死机的情况,由于产生日志的过程也会死亡,因此不会产生新的日志,也不会提供服务。对于Agent过程的死亡,确实会降低系统的可用性。在这方面,美团有三种方法可以提高系统的可用性。首先,所有的Agent都是以supervise的方式启动的。如果过程死亡,系统将立即重启以提供服务。其次,对所有Agent进行生存监控,发现Agent死亡后立即报警。最后,对于非常重要的日志,建议应用程序直接将日志写成磁盘,Agent通过spoldir获得最新的日志。4.1.由于中央服务器提供平等、无差异的服务,Agent访问Collector制定了LoadBalance和重试机制,因此Collector死亡。因此,当Collector无法提供服务时,Agent的重试策略会将数据发送到其他可用的Collector上。因此,整个服务不受影响。4.1.美团在Colector的Hdfsink中提供了开关选项,可以控制Collector停止写Hdfs,并将所有events缓存到Filechanel。4.1.如果Hdfs异常停机或不可访问,Collector此时无法写Hdfs,则4hdfs异常停机或不可访问。由于美团使用dualchanel,collector可以将收到的events缓存到filechanel,并保存在磁盘上,并继续提供服务。Hdfs恢复服务后,将FileChanel中缓存的events发送到Hdfs。这种机制类似于Scribe,可以提供更好的容错性。4.1.5Collector或Agent/Collector网络变慢,如果Collector处理速度变慢(例如机器load过高)或Agent/Collector之间的网络变慢,则Agent发送到Collector的速度可能会变慢。同样,在这种情况下,美团在Agent端使用DualChanel,Agent可以将收到的events缓存到FileChanel,保存在磁盘上,并继续提供服务。Collector恢复服务后,将Filechanel中缓存的events发送给Colector。4.1.当Hdfs在Hadoop上有更多的任务和大量的读写操作时,Hdfs的读写数据往往会变慢。这种情况很常见,因为每天每周都有高峰使用期。美团还使用DualChanel来解决HDFs变慢的问题。Hdfs快速写入时,所有events只通过Memchanel传输数据,减少磁盘IO,获得更高的性能。当Hdfs写入较慢时,所有events只通过fileChanel传输数据,数据缓存空间较大。4.2可靠性(reliability)对于日志收集系统,可靠性(reliability)在数据流传输过程中,Flume保证了events的可靠传输。对于Flume来说,所有的events都保存在Agent的Chanel中,然后发送到数据流中的下一个Agent或最终存储服务。那么AgentChanel中的events何时被删除呢?当它们被保存到下一个Agent的Chanel或最终的存储服务中时。这是Flume提供数据流中点到点可靠性保证的最基本的单跳信息传递语义。那Flume是如何实现上述最基本的信息传递语义的呢?首先,Agent之间的事务交换。Flume使用事务的方法来确保event的可靠传输。Source和Sink分别包装在保存event或Channel的事务中。这就保证了event在数据流的点对点传输中是可靠的。在多级数据流中,如下图所示,上级Sink和下级Source都包含在事务中,以确保数据可靠地从一个Channel转移到另一个Chanel。第二,Channel在数据流中的持久性。在Flume中,MemoryChanel可能会丢失数据(Agent死亡时),而FileChanel是持久的,提供类似mysql的日志机制,以确保数据不丢失。4.3可扩展性(scalability)对于日志收集系统,可扩展性(scalability)是指系统能够线性扩展。当日志量增加时,系统可以简单地增加机器,以实现线性扩容。对于基于Flume的日志收集系统,在设计的每一层都需要线性扩展服务。下面将对每层的可扩展性进行相应的说明。4.3.Agent层对于Agent层,每台机器部署一个Agent,可以在不受限制的情况下水平扩展。一方面,Agent收集日志的能力受机器性能的限制,Agent通常可以为单机提供足够的服务。另一方面,如果机器较多,可能会受到后端Colector提供的服务的限制,但Agent到Collector有LoadBalance机制,使Collector能够线性扩展和提高其能力。4.3.对于Collector层,Agent到Collector有LoadBalance机制,Collector提供无差异的服务,因此可以线性扩展。其性能主要局限于Store层提供的能力。4.3.对于Store层来说,Hdfs和Kafka都是分布式系统,可以实现线性扩展。Bypass属于临时应用,只对应某一类日志,性能不是瓶颈。Flume1.4.4.4channel选择.在0中,它的官方提供常用的MemoryChannel和FileChannel供您选择。其优缺点如下:MemoryChannel:所有events都保存在内存中。优点是吞吐量高。缺点是容量有限,Agent死亡时内存中的数据会丢失。FileChannel:所有events都保存在文件中。优点是容量大,死亡时数据可以恢复。缺点是速度慢。上述两种Channel,优缺点相反,分别有自己合适的场景。然而,对于大多数应用程序来说,美团希望Channel能够提供高吞吐量和大缓存。基于此,美团开发了DualChanel。DualChannel:基于MemoryChanel和FileChanel的开发。当堆积在chanel中的events数小于阈值时,所有events都保存在memorychanel中,sink从memorychanel中读取数据;当堆积在chanel中的events数大于阈值时,所有events都自动存储在filechanel中,Sink从FileChanel中读取数据。这样,当系统正常运行时,美团可以使用MemoryChanel的高吞吐特性;当系统异常时,美团可以使用FileChanel的大缓存特性。4.5与scribe兼容。在设计之初,美团要求每种日志都有一个对应的category,flumeagent提供两种服务:avrosource和scribesource。4.5与scribe兼容。在设计之初,美团要求每种日志都有一个对应的category,flume的agent提供两种服务:avrosource和scribesource。这将与之前的scribe相对应,降低业务变更成本。在目前的日志收集系统中,美团只使用最简单的权限控制。只有设置的category才能进入存储系统。所以目前的权限控制是category过滤。如果将权限控制放在Agent端,其优点是可以更好地控制系统中垃圾数据的流通。但缺点是配置修改麻烦,每增加一个日志就需要重启或重载Agent配置。若将权限控制放在Collector端,则优点是便于配置的修改和加载。缺点是Agent/Collector之间可能会传输一些未注册的数据。考虑到Agent/colector之间的日志传输不是系统瓶颈,目前的日志收集属于内部系统,安全问题是次要问题,因此选择使用colector端控制。4.7提供实时流美团的一些业务,如实时推荐、反爬虫服务等,需要处理实时数据流。因此,美团希望Flume能够导出一个实时流给Kafka/Storm系统。一个非常重要的要求是,实时数据流不应受到其他Sink速度的影响,以确保实时数据流的速度。在这一点上,美团通过Co
推荐阅读
- 线上行业如何更好的生存,找代运营公司?
在这个新媒体、淘宝京东等店铺等线上行业尤其火热的时代,人人都想挤进去创造一片属于自己的天地。然而不管是挤进去个人还是企业,更多都是一些完全不懂得如何运营的毫无经验的小白。于是找代运营公司、寻找靠谱的代运营公司,便成为了和线上行业同等火热的问…查看详情
- 会员管理系统哪个好?八大会员管理系统分享
如今吸引用户走进店铺并不是一件容易的事情,往往铺天盖地的广告才能使用户在产生购物需求时第一时间想到你的店铺或品牌,一个完善的会员管理系统对企业来说非常重要,你知道会员管理系统哪个好吗?以下八个品牌会员管理系统了解一下(排名不分先后)。 1.…查看详情
- 最新ai智能系统外呼排名
随着科技的发展,各种智能系统上市,在我们身边就有很多高科技出现。最让人熟悉不过的就是游戏。各大游戏内的人性化以及智能化也是一种智能系统的体现。这里为大家做了详细的关于ai智能系统外呼排名。 1.易网行ai智能系统外呼。深圳易网行AI电话机器…查看详情
- 财务管理软件都有哪些?推荐5个适合不同规模的企业
财务管理软件是指能有效提升财务工作人员工作效率,减少工作差错率的管理性软件。财务人员的工作琐碎、繁杂,尽管如此,对于财务人员的工作要求却是严谨的。所以一个认真负责的财务工作者,在工作上是会不断寻求好方法,让自己的工作能更加尽善尽美的。那么财…查看详情
- 2022年十大免费cms建站系统有哪些?
今天小编就跟大家盘点一下国内外比较知名的cms建站系统,告诉大家靠谱的cms建站系统有哪些,然后你可以从中选择最适合自己的。希望下面的cms系统你在建站的时候能用上。 1、AdobeAEM Adobe AEM功能可以说是非常强大的,…查看详情
- 实用的超市销售管理系统
随着现代科学技术的高速发展,计算机技术已经渗透到各个领域,成为各行业必不可少的工具。网络与信息化的普及已成为各行业发展不可缺少的东西。然而现在国内市场的一些中小型超市,它们在信息化过程中的步伐要落后于大中型超市,而对于这些企业的资源管理,信…查看详情
- 飞鱼crm软件好用吗
飞鱼CRM是一款知名的客户关系管理软件,广泛应用于企业的销售、市场营销和客户服务等领域。以下是对飞鱼CRM软件的评价和使用体验的综合分析:1. 功能丰富:飞鱼CRM提供了包括客户管理、销售管理、营销自动化、客户服务、报表分析等在内的多个功能…查看详情
- 免费好用的数据库软件有哪些 数据库软件排行榜
数据库客户端管理维护工具很多,除了系统自带的命令行管理工具之外,还有许多图形化管理工具,下面小编就给大家来详细介绍一下免费好用的数据库软件有哪些 数据库软件排行榜这一块的相关内容,希望能帮助到大家。, 数据库软件排行榜 1.Da…查看详情
- U盘数据恢复工具推荐,告别数据丢失烦恼
虽然现在很多东西都特别的方便,但是我们在工作的过程当中也是需要借助U盘的,因为U盘可以随身携带,不管是出差还是去哪里都可以直接用U盘把自己想要播放的内容播放出来,要要比直接另一个笔记本电脑要更加方便一些,那么U盘数据恢复软件有什…查看详情
- 最新版权登记收费标准
著作权中对于公司来说最常用的要数软件著作权了,那么申请一个软件著作权都需要什么材料呢,最关心的问题也就是版权登记收费标准,下面就让小编来为大家一一解答。 一、计算机软件著作权登记需要提供如下材料: 1、软件著作权登记申请表;2、说明书;3、…查看详情
- 推荐四部大众很喜欢的言情小说作品
现在的小说类型复杂多样,而言情小说经久不衰,也许是因为美好的爱情或者是美好的相遇,在现实生活中并不常见,所以人们才需要去言情小说中满足幻想。对于现在的女性们来说,言情小说的存在可以说是生命之光了。 1.何以笙箫默 《何以笙箫…查看详情
- 快手如何换绑手机号?(附上详细方法)
手机号是我们与外界联系的一个载体,当由于种种原因需要更换手机号码,我们需要解绑/注销一些账号,下面小编就给大家来详细介绍一下快手如何换绑手机号这一块的内容,希望能帮助到大家。 快手如何换绑手机号 1.当前绑定的手机号可以正常使用: …查看详情
- cssci期刊是什么意思
cssci期刊是什么?《中文社会科学引文索引》(cssci)由南京大学中国社会科学研究评价中心开发,是国家教育部重点课题攻关项目。cssci根据文献计量学规律,采用定量和定性评价相结合的方法,从全国2700多种中文人文社会科学学术期刊中评选…查看详情
- 实用的建筑工程管理软件,工作进展实时记录
对于做工程的人来说,每天的施工进度都是不相同的,但是,每天都做了些什么工作都需要统计下来,因为户主很有可能会跟我们要当日的工作进展报告的,所以,要记录,那么,建筑工程管理软件有什么? 1、筑业建筑资料软件最新版 是款对于建筑…查看详情
- 恐怖片排行榜前十名送给大家,让你的假期旅程不寂寞
假期一到就要去找片源了,找的那叫一个撕心裂肺啊,大部分看过了,或者不知道水平如何,这里小编就要毛遂自荐一下了,良心推荐的恐怖片排行榜前十名送给大家,让你的假期旅程不寂寞,恐怖片让你们兴奋起来。第一名:午夜凶铃午夜凶铃,十大顶级恐怖片之一,是…查看详情
猜你喜欢
最新文章
扫码二维码
立即领取《千元实战营销秘籍》
还可免费试用营销管理系统
*如有疑问,请随时拨打免费咨询热线:400-0033-166
服务时间:8:30-18:00
软件企业
认定号:川RQ-2018-0216
高新技术企业
认定号:GR201951001121
关注微信公众号
和10万中小企业共同成长
扫码下载APP
享全方位服务一触即达
Copyright © 2004-2022 万商云集(成都)科技股份有限公司 版权所有 蜀ICP备12001963号-2 川公网安备 51010402000322号
快速找产品
找一找哪款产品适合您?
咨询热线:400-0033-166
免费查找信息保护中请放心填写-
-
电话沟通
在线咨询
获取方案
下载APP
官方微信
扫码下载APP
全方位服务一触即达
关注万商云集
和10万中小企共成长
TOP
企业首选的数字选用平台