21
腾讯大规模 Hadoop集群实践 腾讯数据平台部 翟艳堂

翟艳堂:腾讯大规模Hadoop集群实践

Embed Size (px)

DESCRIPTION

BDTC 2013 Beijing China

Citation preview

Page 1: 翟艳堂:腾讯大规模Hadoop集群实践

腾讯大规模

Hadoop集群实践

腾讯数据平台部 翟艳堂

Page 2: 翟艳堂:腾讯大规模Hadoop集群实践

Lhotse统一调度

TDW 海量数据存储

与计算

TDBank

数据采集与分发

自助提取与分析

数据规范化管理

TRC 实时计算平台

实时采集 流式计算 分布式存储

精准推荐模型

社交广告 电商 视频 其它

数据仓库 数据应用

数 据 分 析

精 准 推 荐

数据开发者平台 + 数据应用门户

专题分析 SNG

IEG

MIG

CDG

ECC

TEG

OMG

数据服务总体框架

Page 3: 翟艳堂:腾讯大规模Hadoop集群实践

• 数据共享

• 计算资源共享

• 减轻运营负担

为什么要做大集群

同乐微博集群 200台

同乐主集群 SNG/OMG/ECC

1250台 TS4+TS5

福永微博集群 350台

宝安主集群 IEG/MIG/… 450台TS4

SOSO集群

财付通集群 ……

宝安公用集群 500台

宝安TA集群

宝安智胜集群 ……

枢纽点击流集群 500台

宝安数挖集群 250台

南汇集群

TDW

Page 4: 翟艳堂:腾讯大规模Hadoop集群实践

面临的挑战

400台 4000台

计算层 存储层 NameNode没有容灾

丢失1个小时数据的风险

重启耗时长

不支持灰度变更

JobTracker调度效率低

集群扩展性不好

高可用

高效

高扩展性

高可用

高效

高扩展性

JobTracker分散化

NameNode高可用

1年

Page 5: 翟艳堂:腾讯大规模Hadoop集群实践

JobTracker分散化

Page 6: 翟艳堂:腾讯大规模Hadoop集群实践

方案选择 TDW基线版本: CDH3u3

Yarn Corona

版本稳定性 社区开发中,稳定版发布时间未知 facebook发布的版本

代码复杂度 2.X系列代码,完全重构 基于0.20系列代码

HDFS的要求 2.X HDFS 0.20系统HDFS

时间:2012年12月

Page 7: 翟艳堂:腾讯大规模Hadoop集群实践

JobTracker分散化

Task Tracker

Task Tracker

...

资源管理 任务调度 任务管理

Cluster Manager

资源管理

任务调度

JobTracker 任务管理

Job Tracker

… 任务管理

Task Tracker

Task Tracker

... Task

Tracker

JobTracker分散化平行扩展

资源管理和任务调度解耦

更精细地调度

Page 8: 翟艳堂:腾讯大规模Hadoop集群实践

JobTracker分散化

Cluster Manager

JobClient

Task Tracker

Task Tracker

... Task

Tracker

1. request jobtracker resource

2. grant jobtracker resource

3. start jobtracker

JobTracker

4. request map/reduce resource

5. grant map/reduce resource

6. submit launch map/reduce actions

map/ reduce

heartbeat

heartbeat

heartbeat

Page 9: 翟艳堂:腾讯大规模Hadoop集群实践

NameNode高可用

Page 10: 翟艳堂:腾讯大规模Hadoop集群实践

NameNode高可用

Data Node

Data Node

...

Name Node

Second NameNode

check point

blockreport

client meta ops

ANN BNN BNN

zk1 zk2 …

sync edit log

learn meta

Data Node

Data Node

...

blockreport

client

meta ops

一主两热备

元数据在主备间实时同步

DataNode同时向3个Master汇报Block

Page 11: 翟艳堂:腾讯大规模Hadoop集群实践

Namenode主备仲裁以及状态转换

Active:IP1 Standby:IP2 client

zookeeper cluster

Standby:IP3

../election/1,2,3 ../repView/ A:ip1,S:ip2,S:ip3

heatbeat X

newbie:IP1 Active:IP2 client Standby:IP2

../election/2,3 ../repView/ A:ip2,S:ip3,n:ip1

heatbeat

zookeeper cluster

重新获取主 更新repview

newbie:IP1 Active:IP2 client Standby:IP3

../election/2,3 ../repView/ A:ip2,S:ip3,n:ip1

heatbeat 重新学习,收集DN状态

standby:IP1 Active:IP2 client Standby:IP3

../election/2,3 4 ../repView/ A:ip2,S:ip3,S:ip1

heatbeat

Page 12: 翟艳堂:腾讯大规模Hadoop集群实践

NameNode分散化

Page 13: 翟艳堂:腾讯大规模Hadoop集群实践

NameNode分散化

Hive Meta

user

Tbl_a, Tbl_b

Tbl_a namenode 1

Tbl_b namenode 3

... ....

Tbl_a Tbl_b

submit mr

Hive

user

submit mr

获取NN信息

Namenode DN DN ...

计算层

计算层

按业务分布

按负载分布资源

HDFS Cluster1 (NameNode1)

HDFS Cluster2 (NameNode2)

HDFS Cluster3 (NameNode3)

Page 14: 翟艳堂:腾讯大规模Hadoop集群实践

优化运营

Page 15: 翟艳堂:腾讯大规模Hadoop集群实践

HDFS兼容

0.20.1 CDH3u3

NameNode

DFSClient DFSClient

NameNode

RPC Server RPC Server

DataNode DataNode

2.0

FileSystem AbstractFileSystem

FileSystem AbstractFileSystem

routing table routing table

HDFS HDFS

Page 16: 翟艳堂:腾讯大规模Hadoop集群实践

• 1个节点慢,整个job慢

检测节点短板

监控数据库 CPU利用率最高的/最低的

reduce平均执行时间最大的

推测执行差异化服务 • 一视同仁

– 资源浪费

• 关键任务不能执行慢,非关键任务不能卡死

关键任务 非关键任务

推测比例 90% 1%

推测间隔 5s 30m

Page 17: 翟艳堂:腾讯大规模Hadoop集群实践

• 误删除数据将会造成灾难 – NameNode回收站

– 删除黑白名单

– DataNode回收站

防止数据误删除

大Job的困扰 • 资源池限制

• 生产时段和非生产时段动态调整

• 下手狠一点

Page 18: 翟艳堂:腾讯大规模Hadoop集群实践

业务迁移 MapReduce

HDFS1 HDFS2

• DB为迁移切换单位

• 计算出空窗期

• 全量迁移DB

• 循环补充迁移更新的表

• 实施切换

Page 19: 翟艳堂:腾讯大规模Hadoop集群实践

集群容量

–服务器 4400台

–CPU ~10w+核

–内存 ~275TB

–磁盘 ~52800块

–存储容量 ~100PB

单集群支撑规模 400 4400

每日作业数 4万 100万+

每日计算量 0.26PB 4PB

存储利用率 85%+ 83%+

CPU利用率 30% 85%+

数据安全性 可能会丢失1个小时数据

丢数据风险很低

重启暂停线上服务时间

1小时 秒级自动无缝切换

总存储量 4PB 80PB

文件数+块数 5千万 6亿

集群发展现状

Page 20: 翟艳堂:腾讯大规模Hadoop集群实践

• 引入Yarn作为统一的资源管理平台

– 支持MapReduce、Storm、Spark、Tez等计算模型

• 实时计算平台

• 类Dremel系统

• 开源计划

未来计划

Page 21: 翟艳堂:腾讯大规模Hadoop集群实践

谢 谢