技术开发 频道

魅族技术开放日回顾:大数据架构与实践

  【IT168 专稿】魅族发展至今已经成为一个完全由产品驱动的移动互联网企业,从一个传统的IT携体转变成为DT时代的互联网企业,魅族大数据在此背景下产生。「魅族技术开放日」是由魅族科技发起,联合业界知名公司、合作伙伴、相关学术和产业研究机构,为架构师、开发者、程序员举办的系列技术沙龙,旨在通过对外分享魅族技术理念与进展,共同推动技术进步。

  2016年1月16日,魅族联合IT168、阿里巴巴以及百度举办了第二期魅族技术开放日——大数据实践专场,魅族Flyme大数据经理莫涵宇、阿里巴巴高级技术专家安伟亭(花名 一初)、百度资深研发工程师方君、魅族运维架构师林钟洪到场,从技术架构角度与在场听众深度深度探讨了大数据实践层面的问题。

魅族技术沙龙爆满:大数据架构与实践
▲魅族Flyme大数据经理莫涵宇

  互联网行业的数据仓库与传统行业有很大区别,互联网行业的数据仓库除大量数据外,越来越多的业务同时要求时效性甚至实时性,且业务变化飞快,所以不能像传统行业一样使用自顶向下的方法建立数据仓库,一劳永逸。互联网行业的数据仓库就是所谓的敏捷数据仓库,不但要求能快速的响应数据,也要求能快速的响应业务。

  近两年,魅族用户已经从百万级快速增长到千万级,虽起步较晚,但魅族大数据体系发展极为迅速,经过两年探索已搭建了完备的数据库体系。在这过程中魅族如何通过大数据,来保证消息在分钟级覆盖到千万级的用户?在业务量爆发式增长的情况下,魅族研发了DW1.0数据仓库,也是一个较经典的数据仓库架构,它包括了各种网站日志、ERP数据、实时消息等符合业务模式的数据。

  活动中,莫涵宇为大家展示并讲解了魅族大数据架构图,由数据源、接入层、数据仓库层以及数据应用层所组成。接入层使用了一个数据加载的组件——AnyLoader和Stream,AnyLoader是对批量的文件文本以及DB数据做离线加载的工具,AnyStream是一个对消息和其他NoSQL的各种实时数据做离线的准实时接入。另外再加上数据模型以及算法等模块,共同组成了魅族大数据的底层基础计算架构,支撑了上层两大类的平台,包括数据开发平台和各种数据产品库。

魅族技术沙龙爆满:大数据架构与实践
▲魅族大数据整体架构

  而后,莫涵宇展示了魅族DW2.0的建设思路:首先,深耕细作,提升数据产品用户体验和数据分析的支撑;第二,深入业务,构建适合解决业务痛点的数据产品;第三,提供符合各种角色特征的个性化数据产品;最后,梳理角色,流程并对现有数据产品进行部分优化和整合。

  另外,为让莫涵宇从魅族大数据发展中总结了几点经验分享给在场观众,以避免魅族踩过的坑再被大家踩到。在业务层面,应避免迁就业务的不规范设计,避免只跟需求,数据口径未统一,避免使用质量不可靠的数据,避免SDK埋点规范的缺失,这些容易的导致需求管理杂乱,开发疲于奔。在架构层面,需要避免平台架构多次迁移,使用多个统计分析页面,也要避免没有数据portal,使用杂乱、可视化开发使用不便、没有足够的功能抽象等问题。

  魅族的大数据产品分为业务型数据产品和平台型数据产品,都已经较为成熟,然而魅族依然会面临数据量越来越大、企业级数据平台建设以及数据安全等问题,所以前路还有很大的空间。莫涵宇表示,魅族不仅仅是在单纯的进行大数据建设,魅族一直认为数据是基础,应用是核心,生态才是目的,魅族的最终目标是要构造Flyme大数据生态。

魅族技术沙龙爆满:大数据架构与实践
▲阿里巴巴高级技术专家安伟亭(花名 一初)

  阿里巴巴高级技术专家安伟亭在第二位出场,他分享了推荐技术在阿里的实践主题。在电子商务时代,用户面临的选择超过了以往的任何时候,面对的选择越多,"我想要什么?"这个问题就变得越来越重要。对此,大数据提供了一种推荐方法,大数据能够采集顾客的反馈意见、购买记录,甚至是社交数据,以分析和挖掘顾客与商品之间的相关性,数据挖掘不仅用于推荐商品,也可支持行为预测等功能。

  用户在浏览网淘宝时,经常会看到推荐类的产品,例如"看了还看"、"猜你喜欢"、"买了此物的网友还买了什么"等等,那么这些相关的核心技术是什么呢?

魅族技术沙龙爆满:大数据架构与实践
▲“猜你喜欢”整体框架

  演讲中,安伟亭分享了有关离线数据四个模块的设计思路。首先I2I相似涉及了传统的CF以及各类变种(共现频度模型、购买概率模型等)、log-odds-ratio算法、基于MutualInfo的算法;其次,I2I搭配应先计算类目搭配关系,再映射为商品搭配关系,而类目搭配来源应为卖家设置的套餐、用户行为关联;C2I应计算各叶子类目下的优质商品,综合考虑商品销量、点击转化率、自身质量等;最后,U2I基于各个端的历史行为计算用户中长期的偏好商品,应考虑类目购买周期和已购买相似类目的过滤。

  接下来,安伟亭详细解读了他们所使用的实时模块——Pipeline框架。它具备三点优势,首先,系统化、组件化,提高模块可复用性和方案构建效率,通过统一接口,不同开发者开发的组件可以共享,方案构建:from scratch -> build blocks;其次,方便进行算法调试和分析,通过统一埋点找出bad case的症结所在;最后,为场景优化提供一个系统化的框架,基于全链路的数据分析,快速找出提升系统整体性能的关键点。Pipeline框架实现的关键点为:

  1. 源检索,源是产生推荐的起点。常见的源包括搜索词、点击率、购买历史、UGC(喜欢、分享、评论、评价等);

  2. 源仲裁,源的精选过程,他能够保证推荐的相关性、多样性、与context匹配等;

  3. 候选集召回,即多渠道、全方面的候选集召回,兼顾相关性、多样性、新颖性。召回渠道有item-item关联召回、user-user关联召回、feature召回、侧重新颖性的趋势召回、热门召回;

  4. 过滤,是根据场景特点、业务需求配置过滤器;

  5. 打分排序,即基于实时model的在线精细化排序;

  6. 后处理,多样性、新颖性后处理,特定业务指标的后处理,分页的后处理,推荐解释生成。

魅族技术沙龙爆满:大数据架构与实践
▲百度资深研发工程师方君

  对于大规模数据集的并行运算,百度资深工程师方君在演讲中专门介绍了Spark在百度的发展历程。Spark被当做是下一代的MapReduce,它本身有一些为传统MapReduce所不能比拟的特性:1、充分的利用内存。中间系统会保存在内存当中,不用移动磁盘,另外是最终结果,它能够提供一些API,例如cache,它能够把最终结果也cache到内存中;2、它能够基于RDD构造一套方法学,在RDD上还可以通过血缘关系,当RDD挂了,从血缘关系中即可恢复。所以,与传统MapReduce相比,Spark在传统故障恢复中十分有优势,另外,它还提供了丰富的Transformations的API。

魅族技术沙龙爆满:大数据架构与实践
▲Spark in Baidu

  Spark为研发提供的是一站式的解决方案,所有的内容都可以套在Spark上,无需使用多套代码来完成。而对于实时和批量如何结合起来,也可以通过Spark通用的一站式解决方案上,通过Spark Streaming、Spark SQL等结合起来。Spark经过百度的引进和创新开发,现已非常成熟。

魅族技术沙龙爆满:大数据架构与实践
▲魅族运维架构师林钟洪

  最后,魅族运维架构师林钟洪分享了魅族日志分析平台的建设的相关经验。日志数据可以是有价值的信息宝库,也可以是毫无价值的数据泥潭,而日志数据对于实现网络安全的价值有多大取决于两个因素:第一,你的系统和设备必须进行合适的设置以便记录你需要的数据。第二,你必须有合适的工具、培训和可用的资源来分析收集到的数据。

  2015年是魅族爆发增长的一年,活跃用户从不到1000万爆发增长到近2000万,三大中心每一天堆积的日志量达到数百GB甚至上TB级别,在如此量级的文件里寻找信息,通过传统命令行的方式检索基本无法实现。并且,日志格式混乱,存放混乱,一旦出现问题,必须登录机器逐一排查,效率极低。对于日志系统的选型,林钟洪表示:“考虑到稳定性、扩展性、易用性、实时性,魅族最终选择了ELK开源解决方案来建设日志平台。”

  ELK有三大组件ES、logstash、kibana。ES在ELK里面是最重要的一部分,其功能主要为搞定海量日志数据,分布式ES的强大水平扩展能力解决了魅族日志量大的问题;logstash也是ES公司的一个产品,它主要功能为搞定日志的多样化。解决了魅族日志格式、日志位置混乱的问题;最后是Kibana,统一查询界面Kibana解决了逐台机器登陆排查困难的问题。

  本次技术开放日吸引了众多对大数据技术感兴趣的开发人员参与,在短暂的学习过后,相信无论是老师或台下参与者均收获颇丰。结束后还有不少与会者上前与老师沟通交流,学习气氛浓厚,想必场场干货也让同学们意犹未尽。

0
相关文章