没有合适的资源?快使用搜索试试~ 我知道了~
基于Storm的美团实时计算应用实践
需积分: 10 40 下载量 77 浏览量
2018-02-02
10:45:45
上传
评论 2
收藏 14.09MB PDF 举报
温馨提示
试读
15页
在Storm出现之前,进行实时处理是非常痛苦的事情,我们主要的时间都花在关注往哪里发消息,从哪里接收消息,消息如何序列化,真正的业务逻辑只占了源代码的一小部分。一个应用程序的逻辑运行在很多worker上,但这些worker需要各自单独部署,还需要部署消息队列。最大问题是系统很脆弱,而且不是容错的:需要自己保证消息队列和worker进程工作正常。 Storm完整地解决了这些问题。它是为分布式场景而生的,抽象了消息传递,会自动地在集群机器上并发地处理流式计算,让你专注于实时处理的业务逻辑
资源推荐
资源详情
资源评论
基于Storm的美团网实时计算应用实践
Table of Contents
1. 实时应用需求 ................................................................................................................................. 2
2. 实时计算平台架构 ......................................................................................................................... 2
2.1 技术选型 ............................................................................................................................... 2
2.2 数据处理系统架构 ............................................................................................................... 3
2.3 实时计算平台架构 ............................................................................................................... 4
2.4 Storm管理系统 .................................................................................................................... 5
3. 实时计算应用 ................................................................................................................................. 5
3.1 分类和简介 ........................................................................................................................... 5
3.2 典型应用:实时新客 ........................................................................................................... 6
3.2.1 实现架构 ................................................................................................................. 6
3.2.2 设计考虑 .................................................................................................................. 8
4. 问题和优化 ..................................................................................................................................... 9
4.1 ShellMetrics扩展 .................................................................................................................. 9
4.2 监控体系 ............................................................................................................................. 10
4.3 资源的隔离 ......................................................................................................................... 10
4.4 Storm平台的稳定性 ........................................................................................................... 11
5. 后续的发展规划 ........................................................................................................................... 11
【摘要】实时计算技术已经成为互联网大数据技术的新宠。以Kafka,Storm,Samza为代表
的实时计算技术,提供了不同于MapReduce的另一种大数据解决方案,它更好地解决了海量
数据的时效性问题。本文将从需求,架构,应用,优化等方面介绍美团网在实时计算技术方
面的应用和实践经验。
【关键词】大数据,实时计算,流式计算,Storm
大数据技术正改变着互相网行业。一方面,批量计算技术提供了大数据的一种解决方
案,以Hadoop/MapReduce为代表的生态圈已经发展相对成熟;另一方面,实时计算技术解
决了大数据时代下的时效性问题,提供了一种新的解决方案,以Kafka, Storm,
Samza为代表的技术正在快速发展。
本文将介绍美团网在实时计算方面的应用和实践经验。首先,我们了解一下美团网的
实时应用需求;然后,我们从架构方面了解一下美团网的实时计算平台是如何搭建的;接下
来,我们来了解一下美团网的实时计算应用,并着重介绍一个典型的应用----
实时新客项目;再接下来,我们来看一看在实时计算平台的使用过程中,遇过到什么问题和
做过什么优化;最后,我们会介绍一下未来的发展规划。
1. 实时应用需求
美团网是为消费者提供本地生活服务的O2O网站。其线上业务系统每天产生大量的实
时交易数据和日志,包括用户,项目,订单,交易,支付,退单等,其特点是业务场景多,
数据结构复杂,数据量大。
美团网的很多业务都有实时计算的需求。比如风险控制,安全防范,实时推荐,实时
业务指标监控等。比如,在团购业务上有很多低折扣项目需要用户抢购,一些“黄牛”使用软
件抢购再倒卖,影响正常用户的使用。因此就需要实时发现这种作弊行为,并予以禁止。再
比如,根据本地生活服务的地理位置特性,当一个用户在某个电影院购买一张电影票时,我
们可以推测用户需要在电影院附近就餐,就可以实时给用户推荐相应的餐厅。再比如,一些
核心的业务指标(如新客率)能够实时地统计和展示将会给运营带来指导,当做推广活动时
,我们能知道活动的效果如何,及时调整活动的内容。
2. 实时计算平台架构
下面我们将技术选型,数据处理平台架构,实时计算平台架构等方面来了解一下美团
网的实时计算平台,同时介绍一下我们为开发者提供的管理系统。
2.1
技术选型
美团网的实时计算平台基于业界流行的Flume,Canal,Kafka和Storm等开源系统搭建
而成。
Flume是Apache开源的日志数据收集和聚合工具。基于Flume可以搭建一套具备实时,
高可靠,高可用,可扩展等特性的分布式日志收集系统。Canal是Alibaba开源的MySQL数据
库Binlog的增量订阅和消息组件,可以用做基于MySQL的业务数据收集。日志和数据收集系
统是实时流数据的来源,但其系统不是本文的重点,不再详述。
Kafka是Linkedin用于日志缓存的分布式消息队列服务,目前已经是Apache的顶级开源
项目。对于实时计算平台来说,消息队列服务是不可或缺的,用来缓存实时数据流。目前常
用的消息队列服务有RabbitMQ, ActiveMQ, Kestrel, Kafka等,对比如下。
优点
缺点
Kafka
1.
性能高,处理性能约10万/秒
;
2.
不保存消费者状态,消费者
自己维护offset来保证可靠性
;
3.
高效支持online和offline消费
者,内存维护一份数据;
1. 可能丢失数据;
AMQP类(RabbitMQ,
ActiveMQ, Kestrel)
1. 保证可靠性;
2.
产品成熟,有管理系统,文
档全面;
1. 性能一般;
2.
内存维护消费者状态,复制
一份数据,内存占用大;
基于上述的分析,可以看到Kafka设计简单,性能高,支持在线和离线的同时消费较
好等特性,更适合大数据平台。
Storm是Twitter开源的一个分布式,容错的实时计算系统,已经成为Apache的顶级开
源项目。目前常用的实时计算系统主要有Twitter的Storm和Linkedin的Samza等。两者非常类
似,在基本概念,数据流分区模型,分布式的执行环境,流处理API,容错,和Kafka的结合
等方面都非常类同。Storm提供的功能比较完善,相对稳定,社区比较活跃。Samza基于YA
RN提供资源服务,发展相对不太成熟。
2.2
数据处理系统架构
接下来,我们来看一下美团网的数据处理系统的架构设计。整体架构上三层,分为应
剩余14页未读,继续阅读
资源评论
zhao695073552
- 粉丝: 0
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功