15
1 淘宝分布式数据处理实践 淘宝数据平台及产品部 周敏 [email protected] 2010-09-04

Distributed Data Analytics at Taobao

Embed Size (px)

Citation preview

Page 1: Distributed Data Analytics at Taobao

1

淘宝分布式数据处理实践

淘宝数据平台及产品部 周敏[email protected]

2010-09-04

Page 2: Distributed Data Analytics at Taobao

主要内容

• 云梯介绍

• 对Hadoop的主要功能扩展与改造

• Hive实践

• 对Hive的改造

• 分布式数据仓库构思

Page 3: Distributed Data Analytics at Taobao

淘宝的数据

Oracle 备库 MySQL 备库 日志系统

云梯1

TimeTunnelJDBCDUMP

数据平台 搜索 支付宝 B2B 云梯2

天网调度系统

Gateway Servers

数据魔方 量子统计

口碑

DataExchange

爬虫数据

Map Reduce Java Jobs

Streaming Jobs Hive Jobs

广告 BI

淘数据 推荐系统 搜索排行 …

Page 4: Distributed Data Analytics at Taobao

云梯1规模

• 总容量9.3PB, 利用率77.09%

• 总共1100台机器

• Master:8CPU(HT),48G内存,SAS Raid

• Slave节点异构

– 8CPU/8CPU(HT)

– 16G/24G内存

– 1T x 12 / 2T x 6 / 1T x 6 SATA JBOD

– 12/20 slots

• 约18000道作业/天, 扫描数据:约500TB/天

• 用户数474人, 用户组38个

Page 5: Distributed Data Analytics at Taobao

云梯1规模-slave

• Slave机器异构

– 6T机器磁盘利用率较高

– Rebalance

– 单机速度控制:10M/s

– 每天9:00 ~ 23:30运行

• Slave故障率

– 每周10 ~ 20次硬盘故障

– 每周1 ~ 2次主板或其他故障

Page 6: Distributed Data Analytics at Taobao

云梯1 Hadoop版本

• 基于0.19.1

• 大量Patch

– 主要来自官方社区0.19.2, 0.20, 0.21等, 少部分自己开发

• Hadoop客户端和服务端代码开发分离, 云梯管理员只负责服务端升级, 并保持版本向下兼容

Page 7: Distributed Data Analytics at Taobao

云梯主要功能扩展

• 安全性

– 密码认证 (hadoop.job.ugi)

– 扩展ACL,用户访问其他组的数据(开发中)

• Scheduler

– 基于FairScheduler的改造

– slots动态调整(网页形式,每小时更新)

– 各个组使用自己的资源

• Slave单磁盘容错

– DataNode坏掉一块磁盘不需要停止,减少数据分发

– TaskTracker坏掉一块磁盘后不对作业造成影响

Page 8: Distributed Data Analytics at Taobao

Master节点容灾方案

• 3个Master + 1个Standby节点

– 配置文件一致,上传至SVN

• Virtual IP (NameNode和JobTracker)

• JobTracker无元数据,JobHistory每天备份七天前的历史文件

• NameNode和SecondaryNameNode

– Check point 1天做一次(晚上8点之后),降低NameNode启动时间

– Fsimage和edits同时通过NFS写到SNN上,元数据保存两份

• Standby在NN或JT宕机时启用

Page 9: Distributed Data Analytics at Taobao

将来的工作

• JobTracker单点问题

– 调度效率低下导致集群利用率不足

• NameNode HA

– AvatarNode

• Namenode 内存瓶颈

– Heap Size 40G,CMS gc之后 23G

– 分布式NameNode, Dynamic Partition Tree

• Hadoop 升级

• OSD及CRUSH算法

Page 10: Distributed Data Analytics at Taobao

Hive使用

• 2009年3月调研,4月投入生产

• CLI与Thrift Server并用

• Web/SSH 界面

• 模板化 & 预加载

• 86个统一发布UDF

• Lineage Analysis

• 极限存储

– 增量存储表

– 按数据的生命周期分目录

Page 11: Distributed Data Analytics at Taobao

实践经验

• 数据倾斜

• 内存优化

• I/O优化

• Multi-Insert

• 数据压缩

Page 12: Distributed Data Analytics at Taobao

淘宝对Hive的贡献与改造

• UDFs

• 建立/删除临时函数

• 多线程 Thrift server

• GBK支持

• 完全JDBC

• Multi Distinct Aggregation支持

• 认证与权限

• bug fix

Page 13: Distributed Data Analytics at Taobao

将来的工作

• Hive IDE

• Multi Distinct Aggregation优化

• Multi Group By优化

• 极限存储的索引与文件

• 表统计信息的支持

• 采用TFile做列存储尝试

Page 14: Distributed Data Analytics at Taobao

链接

• 淘宝数据魔方

– http://data.taobao.com

• 淘宝数据平台团队博客

– http://www.tbdata.org/

• 个人

– http://coderplay.javaeye.com

– http://twitter.com/minzhou

Page 15: Distributed Data Analytics at Taobao