- 快召唤伙伴们来围观吧
- 微博 QQ QQ空间 贴吧
- 文档嵌入链接
- 复制
- 微信扫一扫分享
- 已成功复制到剪贴板
Apache Kylin 在网易游戏的落地实践
展开查看详情
1 .Apache Kylin 在网易游戏的落地实践 —— 杨操
2 . 目录页 Contents Page 背景介绍 1.1 网易游戏大数据平台 1.2 业务场景 1.3 选择 Kylin 的原因 1.4 Kylin 的使用现状 实践经验 2.1 并发性能调优 2.2 Segment 数量调优 2.3 Cube 性能调优 运维经验 3.1 故障处理 3.2 监控与告警
3 . 背景介绍 PART 01 BACKGROUND
4 .1.1 网易游戏大数据平台 架构图
5 .1.1 网易游戏大数据平台 数据流
6 .1.2 业务场景 游戏常规指标体系 → 登录 → 在线 运营 → 留存 指标 → 付费 → ....... 道具 ← 游戏内 玩法 ← 指标 经济体系 ← ....... ←
7 .1.2 业务场景 游戏常规指标体系
8 .1.2 业务场景 游戏常规指标体系
9 .1.2 业务场景 非常规指标案例——沙盒模拟战术竞技类项目地图编辑器
10 .1.3 选择kylin的原因 数据流
11 .1.4 kylin使用现状 数据 容量:5.4T (3兆行记录) 增量:100G+/day
12 .1.3 选择kylin的原因 业务线瓶颈 1. 新增业务成本高、周期长 - 编写ods 计算的SQL、MR、UDF - 编写dw 计算的SQL、MR、 UDF 2. MySQL单表性能瓶颈 - 单表存储几千万行记录 - 读写性能下降
13 .1.3 选择kylin的原因 技术选型—— Kylin 的优点 1 海量数据亚秒/秒级查询,与现有流程性能相当 2 支持6种常用的聚合算法,业务覆盖广 3 支持hive/kafka数据源,与现有流程切合度高 4 基于hbase的海量数据存储,解决mysql单表性能瓶颈 5 提供RestfullAPI 和 SQL查询,业务改动成本低 6 良好的webui,业务操作门槛低 7 社区活跃,资料丰富,组件引入风险低
14 .1.4 kylin使用现状 Kylin - v2.2.0 - 8台高配服务器 - 8个job节点,22个query节点 Hbase (kylin专用) - v1.2.6 - 23节点 - 全SSD
15 .1.4 kylin使用现状 业务 项目:75 cube数:1642
16 .1.4 kylin使用现状 查询性能
17 . 实践经验 PART 02 PRACTICE
18 .2.1 并发性能调优 案例背景 项目初期 - 1job节点,1query节点 - 与其他业务共用hbase集群 - Tomcat默认配置 - 千兆网卡 - heap 8G
19 .2.1 并发性能调优 案例背景 select count(distinct udid) from ods_g60_udid_day where ds>='20170617' and ds<='20170918' group by os_name, app_channel, ds 现象:一次查询性能优越;并发查询性能下降明显; 连续提交多次查询耗时递增。 业务要求:100并发性能在2s内。
20 .2.1 并发性能调优 性能调优结果 优化前后性能对比(与其他业务共用HBase)
21 .2.1 并发性能调优 Tomcat配置调优 Tomcat配置调优是最先能想到的,性能提升了200多毫秒。 优化前 <Connector port="7070" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="7443" compression="on" compressionMinSize="2048" noCompressionUserAgents="gozilla,traviata" compressableMimeType=“text/html,text/xml,text/javascript,application/javascript,application/json,text/css,t ext/plain" 优化后 /> <Connector port="7070" protocol="org.apache.coyote.http11.Http11NioProtocol" connectionTimeout="20000" redirectPort="7443" compression="on" compressionMinSize=“2048" noCompressionUserAgents="gozilla,traviata" compressableMimeType="text/html,text/xml,text/javascript,application/javascript,application/json,text/css,text/ plain" maxThreads="2000" minSpareThreads="100" maxSpareThreads="200" acceptCount="500"
22 .2.1 并发性能调优 Hbase RPC框架性能瓶颈
23 .2.1 并发性能调优 Hbase RPC框架性能瓶颈
24 .2.1 并发性能调优 针对Hbase性能瓶颈的调优 hbase性能瓶颈主要有两点: 1. responder线程对所有connection的雨露均沾式处理; 2. Hbase client默认一个connection,请求串行处理。 优化方案: 1. Kylin Hbase Connection pool,增加Hbase client的connection数; 2. 增加query实例,增加Hbase client数; 3. Kylin专用Hbase集群,降低Hbase负载; 4. 升级Hbase到2.0版本,该版本使用netty实现RPC框架。
25 .2.1 并发性能调优 其他调优 1. 网卡升级 2. kylin代码调优 3. 关闭debug日志
26 .2.2 segment数量调优 问题背景 项目早期,segment merge策略使用默认的7天、28天 。 接入75个项目构建完历史数据后,segment数量爆炸。 增量:500+ /周期
27 .2.2 segment数量调优 merge策略调优 目标:限定一个cube的segment数 定时将6个月前的数据合并到一个segment max(segment数/cube) = 1 + 2 + 1 + 3 + 2 + 1 = 10
28 .2.2 segment数量爆炸 merge策略调优
29 .2.2 segment数量爆炸 merge策略调优 注意,segment合并需谨慎: - merge会增加job数,例如设置2天合并,job数会增加一半 - segment合并会降低查询性能 一定要结合业务,在保证性能的前提下合理设置merge策略。