44
LinkedIn 大数据应用 以及 Azkaban 1

俞晨杰:Linked in大数据应用和azkaban

Embed Size (px)

DESCRIPTION

BDTC 2013 Beijing China

Citation preview

Page 1: 俞晨杰:Linked in大数据应用和azkaban

LinkedIn 大数据应用 以及 Azkaban

1

Page 2: 俞晨杰:Linked in大数据应用和azkaban

提纲

• 列举主要的大数据应用

• Hadoop 平台和技术

• 作业流管理平台 Azkaban

2

Page 4: 俞晨杰:Linked in大数据应用和azkaban

世界最大的职业社交网络

Members Worldwide

2 new Members Per Second

100M+ Monthly Unique Visitors

259M+ 3M+ Company Pages

Connect Talent Opportunity. At scale…

4

Page 5: 俞晨杰:Linked in大数据应用和azkaban

LinkedIn,大数据,Hadoop

5

Page 6: 俞晨杰:Linked in大数据应用和azkaban

数据产品

• Terabytes in, Terabytes out

• 结果被应用于终端产品

InMaps

Recommendations

Skills/Endorsements

Browse maps

Page 7: 俞晨杰:Linked in大数据应用和azkaban

PYMK (People you may know)

• 最早开发于 2006

– 6-8 Million members

• 早期运行于 Oracle

• 基于用户共同点

– 教育经历, 工作… etc

• 基于用户共有联系人

– 三角闭合

Page 8: 俞晨杰:Linked in大数据应用和azkaban

基本算法:三角闭合的问题

? Mary

Dave

Steve

Page 9: 俞晨杰:Linked in大数据应用和azkaban

PYMK 的问题

• 2006年 8百万用户 -- 2009年 5千万用户

• Oracle 无法支持

• 程序经常失败

• 前端数据陈旧

– 6 weeks – 6 months!

Page 10: 俞晨杰:Linked in大数据应用和azkaban

PYMK 的出路:Hadoop

• Apache Hadoop 0.20 (2009)

• 20 node cluster (repurposed)

• PYMK in 3 days!

Page 11: 俞晨杰:Linked in大数据应用和azkaban

Workflow runs for 24hrs 76 Hadoop Jobs 100 TB input 4 TB output

现在的 PYMK

11

Page 12: 俞晨杰:Linked in大数据应用和azkaban

12

Page 13: 俞晨杰:Linked in大数据应用和azkaban

推荐系统/相关性引擎

• 无所不在的推荐需要

– 工作,人才,新闻,公司,联系人,。。。

• 平台化思路

– 开发平台化方案

– 用Hadoop

• 直接影响数据产品使用

– 50%+

13

Page 14: 俞晨杰:Linked in大数据应用和azkaban

A/B 试验平台

• 所有新特性经过 A/B 试验

• 通用化的试验平台

• 用 Hadoop 计算 A/B 试验用户群

• 用 Hadoop 验证效果

14

Page 15: 俞晨杰:Linked in大数据应用和azkaban

Hadoop 上的其他大数据应用

• 报告平台

• 商业运行/分析

15

Page 16: 俞晨杰:Linked in大数据应用和azkaban

Hadoop 上的相关技术

16

Page 17: 俞晨杰:Linked in大数据应用和azkaban

Apache Pig

• Apache Pig 0.11

• 用于大部分数据产品/数据分析

• 易用,强大,高效

• 便于优化

• DataFu

Page 18: 俞晨杰:Linked in大数据应用和azkaban

Java (Mapreduce)

• 用于性能苛刻的Jobs

– 性能苛刻

– 特殊 CPU/Memory 需要

– mapreduce world 中的非mapreduce 作业

• 耗时较长

• 维护成本高

• 代码利用率低

• 仅在必要时使用

18

Page 19: 俞晨杰:Linked in大数据应用和azkaban

Apache Hive

• Hive 0.11

• 只用于即时查询

– 商业运行, 项目管理, 分析师

• 较难优化

• 易于使用

• 容易被有sql背景的人采纳 Disturbing Mascot

Page 20: 俞晨杰:Linked in大数据应用和azkaban

其他

• Hadoop 2.x

– 正在调研

• HCatalog

– 即将推出

– Hive/Pig with HCat

• Parquet

– 即将推出

– Pig/Hive/MR

• Scala • Crunch • Giraph • Tez

– Pig on Tez

• Impala, Shark/Spark, Tajo – 小规模试用

• Samza – 使用推广

Page 21: 俞晨杰:Linked in大数据应用和azkaban

作业流平台 -- Azkaban

Page 22: 俞晨杰:Linked in大数据应用和azkaban

大数据作业流

Page 23: 俞晨杰:Linked in大数据应用和azkaban

People You May Know (PYMK)

2009 2010 2011 2012 2013

Page 24: 俞晨杰:Linked in大数据应用和azkaban
Page 25: 俞晨杰:Linked in大数据应用和azkaban
Page 26: 俞晨杰:Linked in大数据应用和azkaban

任务执行灵活性

支持任何 Hadoop 版本

支持 Hadoop security

proxy user

hadoop token

同时支持所有 pig/hive/etc. 版本

支持非 Hadoop 平台

Teradata, mysql, voldemort

Page 27: 俞晨杰:Linked in大数据应用和azkaban

Jobtype Plugins

type=pig creamy.level=4 chunky.level=1 …

peanutbutter.job

type=java Jelly.type=grape sugar=HFCS …

jelly.job

JobTypeManager

JobTypes • pig • pig12 • hive • java • python • …

./jobtypes/pig

pig.jar

./jobtypes/pig12

pig12.jar

./jobtypes/java

./jobtypes/hive

hive-core.jar

JobTypes Plugin Directory

Page 28: 俞晨杰:Linked in大数据应用和azkaban

升级/维护稳定性

web server executor server 1

executor server 2

DB

Page 29: 俞晨杰:Linked in大数据应用和azkaban

易用性

• 哪些人用到 Azkaban ?

• 工程师/运行维护人员

• 数据科学家

• 分析师

• 项目经理

Page 30: 俞晨杰:Linked in大数据应用和azkaban

修改程序参数

Page 31: 俞晨杰:Linked in大数据应用和azkaban

修改运行选项

Page 32: 俞晨杰:Linked in大数据应用和azkaban

失败处理

Page 33: 俞晨杰:Linked in大数据应用和azkaban

并行运行选项

Page 34: 俞晨杰:Linked in大数据应用和azkaban

定时运行

Page 35: 俞晨杰:Linked in大数据应用和azkaban

设置 SLA

Page 36: 俞晨杰:Linked in大数据应用和azkaban

历史记录

Page 37: 俞晨杰:Linked in大数据应用和azkaban

Azkaban - HDFS Browser

Page 38: 俞晨杰:Linked in大数据应用和azkaban

Azkaban – Reportal

Page 39: 俞晨杰:Linked in大数据应用和azkaban

Azkaban – Reportal

Page 40: 俞晨杰:Linked in大数据应用和azkaban

Azkaban – Reportal

Page 41: 俞晨杰:Linked in大数据应用和azkaban

Azkaban 其他特性

• 作业流管理,调度

• Web 界面

• 简单易用

• 用户验证/授权

• 项目隔离

Page 42: 俞晨杰:Linked in大数据应用和azkaban

Azkaban @ LinkedIn

• 用于所有Hadoop cluster

• ~1000 用户

• 1500 项目

• 10,000 作业流

• 2500 flow executing per day

• 6500 jobs executing per day

Page 43: 俞晨杰:Linked in大数据应用和azkaban

43

Page 44: 俞晨杰:Linked in大数据应用和azkaban

更多信息

LinkedIn Data: data.linkedin.com

LinkedIn Engineering: [email protected]

Kafka: kafka.apache.com

Azkaban: azkaban.github.io/azkaban2

Voldemort: project-voldemort.com

Samza: samza.incubator.apache.org