QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

LinkedIn 数据基础设施简介

  • 2010-08-19
  • 本文字数:1180 字

    阅读完需:约 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

2010-08-19 09:553708
用户头像

发布了 88 篇内容, 共 266.0 次阅读, 收获喜欢 8 次。

关注

评论

发布
暂无评论
发现更多内容

千万级学生管理系统的考试试卷存储方案

穿裤子的云

NFT 这么火,你知道 ERC721 么

Rayjun

以太坊 ERC ERC721

架构1期模块八作业

五只羊

架构实战营

Scrum Patterns:昨日天气(译)

Bruce Talk

敏捷 译文 Agile Scrum Patterns

架构实战营 - 模块 8 - 设计消息队列存储消息数据的 MySQL 表格

雪中亮

架构实战营 #架构实战营

完成年初的一个小目标:七个月体重复盘

石云升

减肥 9月日更

CentOS7 Linux实用命令

Mike

如何使用协程与生命周期感知型组件结合使用

Changing Lin

9月日更

模块八作业:设计消息队列存储消息数据的MySQL表格

Felix

利用 Python 分析了一波月饼,我得出的结论是?

JackTian

Python 数据分析 数据可视化 中秋 月饼

全场景进化与无缝协同:荣耀的高端化势能进程

脑极体

敏捷开发模式下测试经理没有了话语权?

BY林子

敏捷测试 敏捷转型

链政经济:区块链如何服务新时代治国理政

CECBC

我,35岁程序员,离职前是这么做的

梦想橡皮擦

9月日更

架构实战营作业 -- 模块三

冬瓜茶

写给互联网工程师的5G书 | 3. 基础架构

俞凡

架构 5G 网络

模块八作业

NewBranSTONE

架构实战营

Linux初体验:Linux操作系统

在即

9月日更

模块八作业

Mr.He

架构实战营

Opus从入门到精通(四)Opus解码程序实现

轻口味

android 音视频 9月日更

要养成编写有语义的HTML的习惯

Regan Yue

html 大前端 9月日更

架构实战营 - 模块八作业

Julian Chu

Zookeeper配置管理自动更新

Mike

数字经济成为经济高质量发展的重要推动力

CECBC

手撸二叉树之从前序与中序遍历序列构造二叉树

HelloWorld杰少

9月日更

谈 C++17 里的 Observer 模式 - 补

hedzr

c++ 设计模式 观察者模式 Design Patterns c++17

网络攻防学习笔记 Day141

穿过生命散发芬芳

网络安全 9月日更

JavaScript进阶(四)防抖

Augus

JavaScript 9月日更

写给互联网工程师的5G书 | 2. 无线传输

俞凡

架构 5G

JVM启动参数学习笔记一

风翱

9月日更 JVM启动参数

🏆【算法数据结构专题】「限流算法专项」带你认识常用的限流算法的技术指南(分析篇)

码界西柚

ratelimiter 限流算法 9月日更 限流器

LinkedIn数据基础设施简介_架构_Ron Bodkin_InfoQ精选文章