标点符(钱魏 Way)

腾讯数据仓库TDW元数据重构方案

TDW HIVE使用现状

hive

大规模应用场景下HIVE暴露出的问题

  • HIVE进程内存占用高,GC频繁
  • 元数据接口性能下降(秒级->分钟级)
  • 元数据库压力大,不堪重负
  • HIVE进程间各个session容易相互影响
  • HIVE出现session卡死现象
  • 其他

原因分析:

hive-1

  • 元数据库单点问题
    • 性能瓶颈
    • 无法扩展
  • ORM层带来的各种问题
    • 算法复杂度较高
    • 数据结构占用内存大
    • 高并发下容易发生死锁和死循环
    • 映射产生的表结构复杂
    • 有序数据结构
  • HQL Translator层
    • 元数据接口粗放
    • 访问流程不合理
  • Zookeeper依赖

重构步骤一:去除ORM层,直接使用JDBC

  • 优点:定制化的表结构和访问流程,简洁高效的获取元数据
  • 缺点:实现复杂,维护和使用困难

具体工作:

work

重构步骤二:应用层访问流程优化

  • 元数据接口细化,按需获取
  • 消除对有序数据结构的依赖
  • 去除去Zookeeper分布式锁的依赖
  • 元数据重用和缓存

重构步骤三:分散化

  • 职责分离:认证元数据 + 库表元数据
  • 1 global db + N segment db
  • 以HIVE db为单位分发
  • 一致性hash,扩容方便

hive-2

上线效果展示

1、查询引擎负载

1

2、元数据库负载

2

3、元数据操作效率

3

参考链接:http://share.csdn.net/slides/4216

码字很辛苦,转载请注明来自标点符《腾讯数据仓库TDW元数据重构方案》

评论