作者 Ron Bodkin 译者 张龙
来自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
from : http://www.infoq.com/cn/news/2010/08/linkedin-data-infrastructure
分享到:
相关推荐
LinkedIn系统的架构设计和架构描述,详细分析了LinkedIn的大数据处理流程和模式。给大数据架构设计和开发工程师一个很好的参考。
作为LinkedIn公司产品与客户体验部门的副主管,尼沙尔负责梳理追溯到几十年前的工作记录,同时关注站内用户每分钟内形成的2,500种新关系。他需要审视美国的经济史(从1970到2000年,跳槽率增加了将近一倍,平均每...
LinkedIn职业网络中的数据挖掘应用.pdf
NodeJS工具导出Linkedin数据 安装 git clone https://github.com/nhduy1985/linkedin-export-tool.git cd linkedin-export-tool npm install 配置 mkdir export cp config.json.dist config.json vim config.json ...
Linkedin开发客户方法总结,值得多看看。
清除Linkedin用户数据 安装 pip3 install --user linkedin_scraper 2.0.0版及pip3 install --user linkedin_user_scraper版本称为linkedin_user_scraper ,可通过pip3 install --user linkedin_user_scraper 建立 ...
Linkedin接口 API 调用 实例 里面含有一个实例,非常具有参考价值。
Linkedin入门教程.pdf
脚本在Linkedin上抓取用户的Linkedin连接(第一个)数据 它在“所有连接”上抓取以下数据 姓名 Linkedin_URL Latest_JOB_Position 技能专长 要求 Linkedin个人资料 系统上的Python设置 Chrome Chrome合金 安装...
linkedin api for php 有相关的文档 网址参考,不过普片上只要你流程没错,代码只要把key secret放进去 程序就哦了 就收个1积分吧 这不自己也没积分了
这个包允许在上获取有关个人或公司的数据。 安装 npm i linkedin-client 用法 您需要名为“ li_at ”的Linkedin cookie。 这样,请求将代表您发送。 您可以按照检索您的 Linkedin 会话 cookie。 const ...
使用Puppeteer无头浏览器的LinkedIn个人资料刮板。 因此,您可以在服务器上使用它。 以JSON格式返回结构化数据。 将于2020年投入使用。 该抓取工具将提取公开可用的数据: :artist_palette: 个人资料:名称,...
Linkedin社交媒体网站模板是一款企业风格的社交媒体工作招聘交流网站模板下载。提示:本模板调用到谷歌字体库,可能会出现页面打开比较缓慢。
Linkedin是一家商业客户导向的社交网络服务网站,成立于2002年12月并于2003年启动。2011年1月,LinkedIn有超过9000万的注册用户。到2012年1月,LinkedIn已经超过1.5亿的注册用户。 这是Linkedin分享的他们使用Play...
十大领英开发客户方法,图文并茂: 1. 导入邮箱联系人 2. 巧用”People you may know” 3. 巧用 “Who viewed your profile” 4. 巧用”People also viewed ” 5. 搜索框搜索People ...10. 利用Linkedin SEO
来自 linkedin 的快速视图布局库.zip,layoutkit是ios、macos和tvos的快速视图布局库。
linkedin 是国外的一个职业社交网站,在哪里可以查看注册用户的个人简历信息,但是如果想要实现开发任务,则需要模拟浏览器进行操作
LinkedinSpider, Linkedin爬虫,根据公司名字抓取员工的linkedin信息
资源来自pypi官网。 资源全名:linkedin_scraper-2.7.5.tar.gz
scrape_linkedin介绍scrape_linkedin是一个python程序包,用于从公开的LinkedIn个人资料中抓取所有详细信息,从而将数据转换为结构化的json。 您可以使用此软件包抓取公司和用户个人资料。 警告:LinkedIn具有强大的...