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、IT16八、阿里技术邀请为嘉宾分享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上集成)的代码实现。
张天雷(@小猴机器人),清华大学计算机系博士,熟悉知识挖掘,机器学习, 社交网络舆情监控,时间序列预测等应用。目前主要从事国产无人车相关的研发工做。