狠狠撸
Submit Search
用笔测迟丑辞苍实现丑补诲辞辞辫任务调度管理
?
0 likes
?
274 views
L
Leo Zhou
Follow
Pycon China 2015
Read less
Read more
1 of 44
Download now
Download to read offline
More Related Content
用笔测迟丑辞苍实现丑补诲辞辞辫任务调度管理
1.
python在?大数据任务调度管 理中的应用 猎聘?网 ? 2015-?‐09-?‐19
2.
Outline ?? 背景 ? ??
?大数据任务 ? ?? 调度 ? –?Azkaban ? –?Luigi ? ?? 总结 ?
3.
背景 ?? 2200万用户数据 ? ??
每日四千万日志数据 ? ?? 我们用数据来做什么? ? –?简历推荐 ? –??人脉挖掘 ? –?商业分析 ?
4.
背景 ?? Hadoop/Hive ? –?存储数据
? –?清洗、过滤和统计数据 ? ?? MySQL/MonetDB ? –?数据集市 ?
5.
背景 ?? ?ume/KaFa ? –?数据收集
? ?? Storm ? –?实时计算
6.
?大数据任务 ?? ETL ? –?业务数据同步
? ?? FACT ? –?数据仓库建模 ? ?? 推荐系统? ?
7.
?大数据任务 ?? 特点 ? –?每日/周/月定时执?行
? –?依赖 ? –?执?行时间长
8.
调度 ?? 使用crontab? ? –?能实现定时执?行
? –??无法解决依赖 ? –??无重试机制 ? –??无监控
9.
调度 ?? Azkaban ? –?Linkedin
? –?Java ? ?? Luigi ? –?Spotify ? –?Python
10.
Azkaban ?? https://github.com/azkaban/azkaban
11.
Azkaban ?? 定时调度(日/周/月) ? ??
通过创建Work?ow解决依赖 ? ?? 可设置retry次数 ?
12.
Azkaban ?? 控制后台 ? –?上传任务
? –?编辑任务 ? –?执?行任务 ? –?查看执?行结果及日志 ?
13.
Azkaban ?? 任务创建过程 ? –?编辑.job?文件
? –?打成zip包在控制后台上传 ?
14.
Azkaban
15.
Azkaban
16.
Azkaban
17.
Azkaban ?? 创建Fact任务 ? –?
编写SQL ? –? 编写执?行SQL脚本 ? ?? 参数替换 ? ?? hive ?–f ?sql_?le ? –? 设置定时执?行 ? –? 设置导?入
18.
Azkaban ?? 问题 ? –?任务主要由数据分析师提出
? –?分析师做不了任务提交 ? –?每天七?八个分析师盯着程序员给他们提交任务
19.
Azkaban ?? 沟通成本 ? ??
等待成本 ?
20.
Korin ?? Azkaban提供AJAX ?API
? ?? Python写的API ?Client ?:AzkabanCLI ? –?https://github.com/mtth/azkaban ?
21.
Korin
22.
Korin ?? 基于AzkabanCLI开发了korin系统 ? –?Tornado
? –?docopt ? –?requests ?
23.
Korin ?? 简化Fact任务提交操作 ? –?编辑SQL
? –?设置执?行参数 ? –?提交 ? ?? 让只会写SQL的分析师也能提交任务
24.
Korin
25.
复杂点的任务 ?? SEM统计分析 ? –?调用接?口取得外部数据(baidu,360,sogou)
? –?自有数据获取 ? –?Join ?
26.
复杂点的任务 ?? SEM统计分析 ? –?Aggregate
? –?Format ? –?导?入到Hive ? –?导?入到monetdb ? –?邮件发送到相关?人员
27.
复杂点的任务
28.
复杂点的任务 ?? 出错时不会出现不完整数据?文件 ? ??
重复执?行时成功任务不再执?行 ? ?? 日期参数 ? ?? 历史数据?生成
29.
复杂点的任务
30.
复杂点的任务
31.
Luigi
32.
Luigi https://github.com/spotify/luigi
33.
Luigi
34.
Luigi ?? 启动任务 ? –?python
?sem_tasks.py ?FormatBaidu ? –?python ?sem_tasks.py ?FormatBaidu ?–date ? 2015-?‐09-?‐02 ? –?python ?sem_tasks.py ?FormatBaidu ?–workers ?4 ?
35.
Luigi ?? 技术架构 ? –?Tornado
? –?SQLAlchemy ? –?numpy、pandas ? –?pycurl、request、suds ?
36.
Luigi
37.
Luigi ?? 类似于GNU ?make的?方式解决依赖
? ?? DateParameter、DateIntervalParameter ? ?? Atomic ??les ? –?先写到临时?文件,执?行close时再copy?至target ? –?close未执?行则删除临时?文件 ? ?? Process ?synchronization ?
38.
Luigi ?? 命令?行?工具 ? –?
RangeDaily、RangeHourly ? –? luigi ?-?‐-?‐module ?sem_tasks ?RangeDaily ?-?‐-?‐ of ?FormatBaidu ?-?‐-?‐start ?2015-?‐01-?‐01 ? ?? Luigi ?package ? –? ssh、ftp、Mysql、Hadoop、Pig、Spark支持 ? ?? Task ?Visualization ? ?
39.
总结 ?? Azkaban ? –?控制后台强?大
? ?? Luigi ? –?可简化任务处理代码 –??无Trigger,需要配合crontab或是Azkaban使用 ? –?控制后台功能较弱
40.
总结 ?? 仍存在的问题 ? –?执?行SQL的依赖需要?人来判断
? –??无法设置任务执?行的优先级 ?
41.
总结 ?? 理想的任务调度引擎 ? –?依赖
? –?优先级 ? –?重试机制 ? –?监控预警 ? –?控制后台
42.
总结 ?? 目标:Python ?rules
?Hadoop ? ?? 急需?大量Pythonista来搞?大数据 ?
43.
猎聘网DIG团队概况 ? 大数据平台 数据仓库 BI工程 客 户 分 析 市 场 分 析 产 品 分 析 招 聘 推 荐 用 户 模 型 社 交 模 型 首席数据官 ?
? We ?Are ?Hiring!! ? ? ? ? ? dig@liepin.com ?
44.
Q&A
Download