多数据存储格式
1、结构化存储+列存储+压缩
- 结构化存储
- 更高的存储和解析效率
- 提供了一些DB特性(获得表的行数,支持修改表结构)
- 为随机访问提供基础设施
- 列存储
- 支持列簇存储
- 大规模减小磁盘
- 集群平均处理能力可得到10~20倍的提升(与hadoop本身的文本存储相比)
- 压缩
- 采用lzo压缩,兼顾IO和CPU
- 行存储压缩比1:2,列存储1:4
- 平均节省集群60%的存储空间
2、ProtocalBuffer
- PB优势
- 良好的协议扩展能力
- 描述能力强、解析效率高
- 编码格式节省存储空间
- 腾讯广告业务统一采用PB为存储协议,更多其他业务也开始逐步使用
- TDW支持PB格式
- 早于开源版本实现
- 可根据接口文件自动创建表结构
hash join 和 colocation
- Hash Join
- 90%的数据关联都是基于用户id的
- 实现了hash分区入库
- 优化器自动使用hash join(join key=hash key)
- 省略了reduce阶段,大大节省计算时间
- Colocation
- 修改了namenode的block摆放策略,使同一hash分区的数据存放在同一台机器上
- 用一致性hash环存放hash分区数据
- 基于colocation的hash join只需要访问本地磁盘即可完成计算,节
- 省参与join计算总数据量80%网络IO
基于负载感知的公平调度策略
基于负载感知的公平调度策略
- 调度策略的特点
- 资源分组,保证重要用户得到资源保障
- 用户隔离,保证用户之间不互相影响
- 允许重要紧急的任务立即获得集群全部资源
- 小任务友好,小任务不会被大任务堵塞
- 负载感知,不下发任务给内存/磁盘空间不足的子节点
- 效果:集群稳定,总资源不变的情况下效率上升
- 任务平均等待时长从24秒下降到19秒
- 任务平均耗时降低10%
- 集群CPU负载保持不变
- 没有再出现过任务互相影响或者负载过高造成的故障
差异化多级存储策略
- 结构化压缩
- 平均2倍的压缩率
- 读写效率和存储空间平衡
- TDW中默认的压缩策略
- 差异化压缩
- 平均5倍的压缩率
- 可与结构化压缩混用
- 主要针对TDW中的冷数据
- 差异化副本策略
- hadoop raid
- 节约存储和不降低数据安全
- 更激进的副本策略
- 存储成本可有50%的节省
分时计算框架
- 问题提出
- 白天集群负载低
- 凌晨集群负载非常高,集群压力大
- 无法按时完成计算任务
- 解决思路:将某一时间段的计算压力分散到全天
- 分时计算框架
- 由框架完成分时计算,用户不感知,程序不需修改
- 平峰填谷,集群资源得到充分利用,集群稳定性得到保证
- 业务SLA得到更好保证
SQL/MED
- MED = Management of External Data
- SQL/MED is ISO/IEC 9075-9
- 通过普通SQL可以访问到外部数据
友好丰富的用户界面
- 过程语言
- Window function
- Cube,Rollup
- CTE
- ……
- 原文链接:http://www.biaodianfu.com/tdw-hadoop.html