腾讯数据仓库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

微信支付标点符 wechat qrcode
支付宝标点符 alipay qrcode

Python检验数据是否正态分布

判断数据是否符合正态分布,比如使用3-sigma判断数据异常前,首先需要确定的是数据是否符合正态分布。今天一起

数据探索Pandas-Profiling与Dataprep.…

在使用数据前,我们首先要做的事观察数据,包括查看数据的类型、数据的范围、数据的分布等。Pandas-Profi

开源指标可视化工具Graphite

Graphite 是处理可视化和指标数据的优秀开源工具。它有强大的查询 API 和相当丰富的插件功能设置。事实

发表评论

电子邮件地址不会被公开。 必填项已用*标注