卢亿雷是现任 AdMaster 技术副总裁,曾在联想研究院、百度基础架构部、Carbonite China 工作,关注高可靠、高可用、高扩展、高性能系统服务,以及 Hadoop/HBase/Storm/Spark 等离线、流式及实时分布式计算技术。他对分布式存储和分布式计算、超大集群、大数据分析等有深刻理解及实践经验,对 Lustre、HDFS、HBase、Map/Reduce、Storm、Spark 等有很深的理解。曾在联想研究院、百度基础架构部、Carbonite China 工作。2006 年硕士毕业,一直从事云存储、云计算开发及架构工作,多年 Hadoop 实战经验,专注于分布式存储、分布式计算、大数据分析等方向,有两个发明专利,《一种分布式文件系统及其数据访问方法》和《一种数据备份的版本管理方法及装置》。曾多次被 51CTO、CSDN、IT168、阿里技术邀请为嘉宾分享 Hadoop 大数据在互联网的应用。
在今年的 QCon 上海大会,他将分享 Hadoop 在营销数据挖掘方面的实践。在本次邮件访谈中,他谈到了营销数据的重要性、Python 做数据挖掘的易用性以及他对 Hadoop 相关平台的看法。
InfoQ:营销数据是跟用户最紧密相关的数据,近年来也获得了高度关注,请您谈谈当时为什么选择这个领域呢?
卢亿雷:由于我对数据有很深的情怀,所以从读大学开始我就有针对的接触海量数据(遥感数据),毕业后做云存储服务,做分布式文件系统,后来接触 Hadoop 生态系统,后来发现大数据落地除了 BAT 公司外,营销数据行业是最好的案例,因为这个行业的需求直接驱动大数据技术的发展,特别是 AdMaster 一直走在大数据技术的前沿,因为数据营销需要有实时计算、流式计算、离线计算等需求,所以我们已经在用 HBase,Storm,Spark,OpenStack,Docker 等最新的技术了。
InfoQ:您在数据挖掘过程中,是不是通常使用 Python?看了您在 PyCon China 的演讲,想听您给介绍一下这部分工作,为什么用 Python?
卢亿雷:分两个层面。Python 比较适合快速迭代开发,特别是在数据建模的时候,通过 Python 可以快速实现一些算法模型,后期如果要大副度提升性能,还是需要用 Java/C++ 来实现;另外可以用 Python 开发 Web 服务。AdMaster 目前大量使用了 Python,如:用 Tornado 实现的每天超过 50 亿请求的 Web 采集服务;用 Django 和 Celery 实现了 Social Master 产品;用 Twisted 和 Gevent 实现了爬虫服务;还有研究院用了大量 Python 框架实现了情感分析等算法模型。
InfoQ:数据量大了以后,异构、海量、错误数据层出不穷,对此您是如何应对的?
卢亿雷:我们将数据进行了严格的分层来处理,包括有数据采集(Data Collection)、数据清洗(ETL)、数据存储(Data Storage)、数据挖掘(Data Mining)、数据可视化(Data Visualization),所以我们会针对不同的分层采取不同的技术选型,把在线数据(HBase),离线数据(MapReduce),实时数据(Spark),流式数据(Storm)等方式进行了整合。特别是数据清洗这块,我们自研了一种分布式扩充清洗系统,可以每天高效、稳定、可靠的处理 1PB 以上的数据流。
InfoQ:AdMaster 是广告数据挖掘的领先团队,请您介绍一下 AdMaster 的情况?
卢亿雷:AdMaster 主要专注数据挖掘、分析和管理,业务主要覆盖第三方数字广告审计和社会化媒体、电商及跨多屏整合领域的大数据分析、管理、应用及综合解决方案。终端涵盖个人电脑及移动设备(手机、平板电脑)。AdMaster 坚持以软件为服务(SaaS)的商业模式,为企业提供最有效率的数据管理平台。
我们现在服务超过 300 家国内外知名企业,如:宝洁、卡夫、雅诗兰黛、杜蕾斯、可口可乐、伊利、麦当劳、联合利华、微软、东风日产、平安银行等,涉及快速消费品、汽车、金融、科技和电信等多个领域。
InfoQ:大数据时代对用户隐私保护实际上是有很大挑战的,您的团队在挖掘过程中是如何应对隐私问题的?
卢亿雷:大数据时代对用户隐私保护确实非常关键,我们实现数据安全的“零丢失”、“零泄漏”、“零篡改”。对服务器访问采用保垒机访问机制,对数据存储采用分布式密钥管理机制,保证数据高安全。另外我们严格贯彻和落实国内外与公司有关的信息(数据)安全法律法规(包括政府法律法规、行业监管规章等),满足公司业务经营的需要。建立公司的数据安全保护流程管理体系和技术保障体系,实现数据安全问题的事前预防、事中控制和事后评估改进。
InfoQ:Hadoop 衍生了很多数据挖掘工具,如 Spark、Storm 等等,您是如何看待这些工具之间的区别和联系的?
卢亿雷:Hadoop 是一个生态系统,都是根据应用场景而衍生了很多工具,所以他们各有各的优点。特别是 Storm 与 Spark 每个框架都有自己的最佳应用场景。
Storm 是最佳的流式计算框架,Storm 的优点是全内存计算,数据计算过程中是不会落地的,主要适应用如下两个场景:
A、流数据处理:可以用来处理源源不断流进来的消息,处理之后将结果写入到某个存储(数据库、文件系统)中去。
B、分布式 RPC:由于处理组件是分布式的,而且处理延迟极低,所以可以作为一个通用的分布式 RPC 框架来使用。
Spark 是一个基于内存计算的开源集群计算系统,目的是更快速的进行数据分析。它不同于 MapReduce 的是 Job 中间输出和结果可以保存在内存中,从而不再需要读写 HDFS,减少 IO 延迟,因此 Spark 能更好地适用于数据挖掘与机器学习等需要迭代的 Map Reduce 的算法。主要适应场景如下:
A、多次操作特定数据集的应用场合:需要多次操作特定数据集的应用场合,迭代次数越多,相比 MapReduce 效果会更好。
B、粗粒度更新状态的应用:由于 RDD 的特性,Spark 不适用那种异步细粒度更新状态的应用,相比 Storm,它可以比较好实现分钟级的计算。Spark Streaming 的小批量处理的方式使得它可以同时兼容批量和实时数据处理的逻辑和算法。方便了一些需要历史数据和实时数据联合分析的特定应用场合。这也是它可能比 Storm 发展更快的一个特点。
InfoQ:您觉得海量数据挖掘浪潮里面最关键的技术是什么?
卢亿雷:首先需要对业务需要有一定的理解,包括社交网络、电商、新闻、客户关系数据等行业,另外需要有大数据技术的积累,有过超大集群的实战经验,以及对推荐算法、分类、聚类、NLP 等算法有很深的研究。再细化一点就是需要了解开源的工具如 Hadoop 生态系统里的 MapReduce、HBase、Storm、Spark 等系统,还有就是需要对 Java、Scala、Python 语言有深入了解,算法可以去熟悉 Mahout(也正在往 Spark 上集成)的代码实现。
采访者简介
张天雷(@小猴机器人),清华大学计算机系博士,熟悉知识挖掘,机器学习, 社交网络舆情监控,时间序列预测等应用。目前主要从事国产无人车相关的研发工作。
评论