http://www.infoq.com/cn/news/2014/09/admaster-hadoop
卢亿雷是现任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上集成)的代码实现。
采访者简介
张天雷(@小猴机器人),清华大学计算机系博士,熟悉知识挖掘,机器学习, 社交网络舆情监控,时间序列预测等应用。目前主要从事国产无人车相关的研发工作。