BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

LinkedIn数据基础设施简介

| 作者 Ron Bodkin 关注 0 他的粉丝 ,译者 张龙 关注 12 他的粉丝 发布于 2010年8月20日. 估计阅读时间: 4 分钟 | 如何结合区块链技术,帮助企业降本增效?让我们深度了解几个成功的案例。

来自LinkedIn的Jay Kreps在近日举办的Hadoop峰会上详细介绍了LinkedIn对数据的处理方式。Kreps介绍了LinkedIn每天是如何处理1.2千亿个关系并通过高容量、低延迟的站点服务来混合大量的数据计算的。

LinkedIn的很多重要数据都是离线的,移动起来相当慢。因此,他们将每天对Hadoop的批处理作为计算的重要组成部分。比如说,他们采用这种方式对其“People You May Know”产品数据进行预计算,这么做每天会在mapreduce管道(拥有82个Hadoop job)中产生1.2千亿个关系,需要16TB的临时数据。这个job使用了一个统计模型来预测两个人认识的概率。有趣的是,他们使用布隆过滤器(bloom filters)来加速巨大的连接关系,这提升了10倍的性能。

LinkedIn有两个工程师从事这个管道开发,他们每周可以测试5个新算法。为了实现这种变化率,他们使用A/B测试来比较新旧方法,使用“fly by instruments”方法来优化结果。为了提升性能,他们还需要操纵大范围数据:使用大范围集群处理。为了实现这个目标,他们从客户化的图处理代码迁移到了Hadoop mapreduce代码上:这需要一些周全的设计,因为很多图算法无法直接转换为mapreduce。

LinkedIn对开源项目投入巨大,希望构建出一流的组件并号召社区参与进来。其中两个开源项目构成了其数据基础设施的中心。Azkaban是个面向Hadoop的开源工作流系统,提供了类似于cron的调度,类似于make的依赖分析,还包含了重启。它用于控制ETL job,该job可以将数据库与事件日志推送到边缘服务器存储(Voldemort)中。

Voldemort是LinkedIn的NoSQL 键/值存储引擎。它每天都会向其站点推送出几十亿的边缘概率关系图,用于渲染网页时查询所用。这种数据是只读的:它是通过这些集群job计算出来的,但之后会实时通过搜索进行过滤,这么做会限定到用户感兴趣的某些公司,或是排除掉用户已经表明不认识的那些人。这个方法来源于使用数据库解决这个问题时所遇到的障碍,后者需要分片并迁移至完全依靠手工移动数据的系统。Voldemort完全是分布式且去中心化的,支持分区与容错。

LinkedIn通过同时获取Hadoop与Voldemort大范围的结果来更新服务器,预热缓存,然后分别在每个服务器上针对新一天的数据建立原子转换。他们会将前一天的数据保持在服务器上,这样一旦新一天的数据集出现了问题就可以立刻恢复过来。LinkedIn在其Hadoop管道上构建了一个索引结构:这会产生几个TB的查找结构,该结构完美地使用了散列(每个键只需要2.5个位)。这种处理权衡了集群计算资源以实现更快的服务器响应;LinkedIn大约需要90分钟时间在45个结点集群上构建900GB的数据。他们使用Hadoop来处理大块的批数据,这样其Hadoop集群就需要周期性地进行升级,但Voldemort则永远不需要。

感兴趣的读者可以查看演讲的幻灯片以进一步了解详情。

查看英文原文:LinkedIn's Data Infrastructure

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

Hadoop峰会 by Yin Register

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

1 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT