看Linkedin如何一步步走上大数据金字塔的顶端

LinkedIn,一家总部位于美国加利福尼亚州山景城的全球最大的职业社交网站,在Facebook、Zynga和Groupon等红极一时的“明星们”股价均较发行价出现大幅下滑时, LinkedIn的股票却一枝独秀,依旧保持上涨的势头。

LinkedIn,一家混合了消费者和企业业务的商业模式而被称为社交网络内的“丑小鸭”,截止到2013年1月份,注册用户数已突破2亿,虽然这个数字只是社交巨头facebook10亿用户的五分之一,但是linkedin集中的2亿用户却集中了来自200多个国家的精英白领,从这点来看,linkedin的数据质量则是很高的。

LinkedIn成立于2002年12月并于2003年启动,当公司五年前,LinkedIn还仅仅是一个技术公司。然而,今时却不同往日。

“你可能认识的人”是linkedin推出的主要功能之一,它可以帮助用户找到自己想要保持联系的人。从后台运营角度看,该功能要求数据时刻保持更新状态,这需要数据科学家时刻跟踪linkedin不同应用间的数据。然而,五年前,当Jay Kreps开始做这件事时,情况却不容乐观。

“我最初来到linkedin时,公司并没有任何基础设施”,linkedin首席主任工程师Kreps在最近一次接受采访时说道。他最初是以数据科学家的身份来到LinkedIn的,他原以为该公司会有一些质量好的数据拿来研究,但事实证明,该公司基础设施问题更需要他的关注。

当时linkedin的基础设施问题到底有多大?以“你可能认识的人”功能为例,当时该功能只是运营在一个仅通过几个脚本和启发式算法提供信息的孤立的甲骨文数据库上,在这种情况下,数据更新需要六个星期(如果宕机需要重启,则需要更长的时间),而这种情况也是建立在数据库正常工作的前提下。但当时该数据库已经六个月不能正常工作了,Kreps讲到。

随着linkedin用户规模增大,当数据规模超过服务器负载时,公司采取的办法并不是添加更多的服务器节点,而且去掉一些占用太多计算能力的匹配启发式算法。所以,占用掉kreps大部分工作时间的并不是写算法,使得“你可能认识的人”提供的信息更准确,而是部署hadoop基础设施,并建立Voldemor分布式数据库,随后Azkaban和Kafka也随之建立。Azkaban是个简单的批处理调度器,用来构建和运行Hadoop作业或其他脱机过程,Kafkakafka则是一种高吞吐量的分布式发布订阅消息系,处理消费者规模的网站中的所有动作流数据。

Kreps的上述工作仅仅是linkedin搭建数据基础设施工作的一部分,其实,这些都是在为linkedin搭建一个跟其他互联网公司一样的数据环境,这意味着,该公司应用程序开发者和数据科学家还有很大的发挥空间,进行数据挖掘,开发更多新产品新功能。

Bhaskar Ghosh是LinkedIn数据基础设施工程的高级主管。据他介绍,他所在的团队搭建了一个包括针对特定工作负载设计的在线、离线、近线系统的数据架构。在线系统处理用户的实时交互信息;离线系统,主要是Hadoop和Teradata的一个数据仓库,处理批量数据和分析工作负载;近线系统处理类似“你可能认识的人”这类的功能、搜索和linkedin社交图谱数据,这类数据对处理和更新速度的要求不像在线系统那么高。

Espresso是linkedin一个非常重要的数据库系统。与Voldemort不同的是,Voldemort是以亚马逊Dynamo为蓝本的键值存储,用来处理高峰时期的特定数据,而Espresso是一个事务性一致的文档存储,用来替代甲骨文横跨公司整个业务的在线数据库。Espresso的设计初衷是为了提高LinkedIn收件箱的服务水平,且linkedin计划在今年晚些时候开放Espresso源码。

根据技术总监Bob Schulman介绍,Espresso的出现是“因为我们在邮箱可扩展性和灵活性方面遇到了问题。邮箱需要存储大量的数据,并且需要与用户的活跃度保持一致,邮箱里还需要一个功能搜索引擎,以便用户在短时间内可以找到他们所需要的信息。

由于历史遗留问题,开发者只能在应用层面解决可扩展性和可靠性问题,他解释到。

然而,首席软件架构师Shirshanka Das指出,“试图通过代码解决问题并不一定是个长期的策略。”这些东西往往会非常迅速消减掉团队和员工的热情”,他说,“你永远不会知道下一个瓶颈什么时候到来。”

Schulman和DAS也在一些技术项目上合作,例如,针对分布式系统的开源集群管理架构Helix和开源数据总线(Databus)。LinkedIn于2月26日开源了其低延时变化数据捕获系统Databus,该系统可以在MySQL以及Oracle数据源上捕获数据,当下LinkedIn只开源了Oracle上的连接器。Databus作为LinkedIn生态系统中的一致性保障组件,在低延时的情况下仍然具有高有效性;而其最大的特点莫过于无限制lookback能力及丰富的subscription功能。

到目前为止,LinkedIn一直在改善其近线系统和在线系统,所以下一步要做的就是要完善离线系统。该公司已经为一般的工作负载使用hadoop,包括数据抽取、模型建立、探索性分析和近线应用的预测数据计算,Ghosh想要把这项工作做的更深入一步。

他提出了一个多元化的愿景,其中大部分都以Hadoop集群和关系数据库系统之间的紧密集成为核心。其中一些目标包括更好的ETL框架、即席查询、替代存储格式和集成的元数据框架,这将为进行各种数据分析提供便利。

完善的基础设施加上高质量的数据会让数据科学家的工作更加轻松和开心。Yael Garten是linkedin的一位高级数据科学家。她说,更好的基础设施让她的工作轻松了许多。像Kreps一样,她也被LinkedIn深深吸引了,因为该公司有那么多有趣的数据可以拿来研究。只是她很幸运,没有像Kreps一样赶上linkedin早期基础设施薄弱的时候,当时的基础设施真是连1000万用户的数据都不能处理。至目前为止,她说,她还没有遇到一个解决不了的问题是基础设施无法处理大规模数据。

那么linkedin具体是如何利用自身拥有的大数据创造价值呢?小编在新浪博客@田克山的博客上看到一篇《Linkedin:精准数据体系的胜利》的文章,觉得对linkedin的大数据商业模式分析颇为透彻,现整理出以下要点,与读者分享:

1.LinkedIn的独特价值,就在于它在精准职业用户数据平台的基础上建立了一个高效、稳定、可再生的生态体系,套用一句广告语,是体系的胜利。这体系包括:

桥:近2亿高素质职业用户的精准信息--所以完备

果:利用用户信息解决了招聘和广告的不对称问题因此成功货币化--所以可再生

因:定位准确,始终坚持以“用户规模和使用深度”为目标的产品观--所以稳定

2.建立了职业用户数据平台:LinkedIn如今已经达到1.75亿用户,独立访问用户1.08亿,页面浏览量188亿,且LinkedIn从起步之初,在用户的定位上就更为明确--高端职业用户;LinkedIn的用户使用习惯和定位娱乐的其它SNS不同,这类用户在SNS网站的页面锁定非常明确,很少有“漫无目的”游览。正是这样的用户规模、完整信息、用户质量和使用习惯,推动了LinkedIn的货币化。

3.精准数据解决不对称问题,从而实现货币化。目前,LinkedIn靠招聘、广告、订阅三种方式盈利,凭借庞大的精准信息数据库,LinkedIn为客户解决了 “信息不对称”的这个最大的问题。而按照2012年第二季度的财务数据,LinkedIn收入2.16亿元,这三种方式分别贡献了2.24亿、1.11亿和0.81亿,占比分别为54%,27%,19%,同时,招聘方案获得收入的整体占比增长迅速。LinkedIn形成了一个主动、真实的高效率招聘机制,完备个人信息形成的大数据平台成为了为招聘企业开源节流的关键。

在人才获取环节,LinkedIn在整个1.74亿用户中进行过滤搜索,打破以往只能招聘到岗位申请者的局限,SNS平台使得招聘对象范围急剧扩大,同时招聘企业通过设定地点、技能、以往公司、教育背景等多个关键词,能迅速、准确地锚定最匹配的人才,从被动等待“愿者上钩”变成了主动猎取。

在沟通环节,尤其对于并非岗位申请者的匹配人才,LinkedIn的用户数据平台排上了大用场,“猎物”的兴趣、职务、小组、讨论等信息在其profile上一目了然,通过LinkedIn的网络联系到该人后,针对其个人身份进行的沟通自然水到渠成,从而避免了唐突的联系,对于高端人才这种“水到渠成”的礼貌显得尤为重要。

LinkedIn在招聘上的成功恰恰是因为他不是一个招聘网站,而是一个以用户为中心建立起来的SNS平台,信息的真实、数据的庞大、关系网络的勾连让传统时代困扰招聘者的信息不对称问题迎刃而解,招聘变成了一件更透明、更准确、更多管道、更人性化的事情,文本简历的单向历史或许要过去了。

4.精准投放的广告。LinkedIn在精准度上有着所有SNS网站的共性。企业可以根据广告的性质确定目标用户,然后根据关键词筛选广告投放的人群,如地域、职业、教育背景、公司,在选定用户的主页显示。这就意味着不同的用户看到完全不同的广告,形成了完全定制化的动态页面。

更多信息可以点击《Linkedin:精准数据体系的胜利》阅读。