基于storm构建一个实时数据分析系统详解.pptVIP

基于storm构建一个实时数据分析系统详解.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
重构开始,新架构的设计~ * 怎么做到灰度接入,前后台兼容?? * 流量太大导致,遇到很多问题? 一开始的开发过程还是比较顺利,因为是机遇之前成熟的架构和框架,很多问题都是发量之后才暴露出来的。 1.处理性能跟不上,storm版本过低导致内存设置不起作用,zeromq消息队列一直在涨,最终撑死机器 * 2.升级之后,发现内存一直在涨,导致work一直重启,通过分析java虚拟机取出内存镜像分析,发现还是消息队列一直再涨,然后通过走查代码发现,有个bolt代码有问题 * 3.入库节点IO特别高,导致机器性能差 * 4.Mysql增长太快,innoddb删除不一起作用 * 5.负载不均衡 * 遗留的问题? * 未来的走向?开放与集成 * 一次自我救赎 之返回码系统重构 社交网络运营部-接入运维组 hobdong 2015-01-14 hobodong(董超) 来自社交网络运营部运营服务中心接入层运维组 目前负责SNG用户端监控系统(返回码,测速,自动化监控,业务考核)、华佗开放项目的开发,同时也参与接入运维的相关工作。 自我介绍 什么是返回码系统? http返回码: 200 404 500 ….. cgi逻辑返回码: 20000 20001 20002 ….. 返回码的原理?? 返回码的目标用户?? 用途:反映用户侧最真实的用户请求质量,以及监控各个地区运营商的请求质量,及时发现用户请求的异常,提升用户体验。 浏览器 接入服务器 分析集群 数据库 运维关注 http返回码: 200 502 404 500 ….. 开发关注 cgi逻辑返回码: 20000 20001 …….. QA关注整个业务的质量 目前接入域名:763个,接入cgi个数:40141,涉及SNG IEG CDG OMG WXG,每天上报次数保守估计达:50亿次 返回码之前的架构,以及架构的瓶颈 通过js上报 接入服务器 文件推送 文件推送 Php脚本入库 读取文件 数据库 页面展示 离线任务分析 1.数据流通过文件的形式实现,效率低,延迟大。 2.数据分析的cdp集群,无法平行扩展,数据归并的节点是单点。 3.管理比较原始,扩容机器比较麻烦。 4.模块混合部署,无法容灾。 单点 为什要重构?? 因为蛋疼!! 每天晚上由于集群高负载,导致数据堆积,引起的磁盘告警 每天早上来由于集群故障丢数据,被QA和开发屌 每次扩容挨个去配置数据接入规则,配到眼花 遗留系统无法支持增加移动侧相关特性,被开发挑战 与其在别人挖的坑里面挣扎,不如自己动手重构,自我救赎~ 重构开始 技术选型,为什么选择storm? 1.中心已经有成功的案例,模调就是基于storm构建的,有现成的框架。 2.Storm是一个免费开源、分布式、高容错的实时计算系统。具备以下优点: 分布式系统:可横向拓展。 运维简单:Storm的部署的确简单。 高度容错:模块都是无状态的,随时宕机重启。 无数据丢失:Storm创新性提出的ack消息追踪框架和复杂的事务性处理,能 够满足很多级别的数据处理需求。 多语言:支持python java等语言构建拓扑 新架构的设计 zookeeper 新架构的优点 1.使用storm集群,可平行扩展和容灾。 2.模块之间通过L5调用,支持容灾。 3.使用消息队列和mongoDB替代之前文件推送的方式,提高数据传输效率 4.无论是L5还是storm都有完善的管理系统,扩容,变更,下线都比较便捷。 5.整个架构无单点,无论哪层负载不够,都可以平行扩容。 怎么做到灰度接入,前后台兼容?? 1.兼容前端接入协议,这样可以保证业务侧无感知 2.后端数据分析入库的数据格式也要保证和之前一致 3.搭建新架构的集群,然后通过tgw灰度接入一小部分流量进行验证,对比两个集群加工的数据 4.持续放量,观察新集群的负载和健康度,及时发现由于流量增加引起的集群问题。 5.放量完成之后,线上观察一段时间,发现问题可以切换到老集群继续运行。 6.整个切换完成之后,即可下线老集群,回收机器了。 遇到哪些坑? 现象:放量之后,storm集群的机器内存一直在涨,最终导致机器故障,需要人工确认修复重启,6000电话告警不断。 分析:上机器看发现java进程的内存不断上涨,直到机器物理内存全部被耗尽,和网平的同事确认,由于机器上的内存被耗尽,agent上报超时,无法触发自动重启流程,必须6000告警给负责人,人工确认修理,通过带外重启才可以。 Storm配置中是有配置每个worker的内存大小限制的,我设置的是4096m,每台机器有两个worker,理论上worker的内存是不会超过4096m的,但实际在机器上查看wor

您可能关注的文档

文档评论(0)

挑战不可能 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档