滴滴出行 张翰之 - HBase在滴滴出行的一站式服务平台实践
2020-02-27 1011浏览
- 1.HBase在滴滴出行的一站式服务平 台实践 张翰之 2017-05-31
- 2.背景介绍 滴滴出行: 提供一站式的出行服务,包括专车,快车,出租车,巴士,试驾,代驾,租车,共 享单车(OFO)等出行服务。HBase:Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统Phoenix:OLTP and operational analytics for Apache Hadoop,把SQL编译为HBase的 scan
- 3.HBase在滴滴的主要使用业务 在线业务: ◦ 服务于最终用户,需要实时快速地响应用户的操作 ◦ 对数据访问的延时非常敏感,访问趋向随机 ◦ 业务如派单,动调,计费,支付,客服等 离线业务: ◦ 通常是定时的大批量处理任务,对一段时间内的数据进行处理并产出结果 ◦ 对任务完成的时间要求一般,处理逻辑复杂 ◦ 业务如天报表,安全分析,用户行为分析,模型训练等
- 4.访问HBase的方式 HBase Native API Thrift server (C++, PHP, Go,python) Phoenix Phoenix Queryserver MapReduce job Spark Job Streaming
- 5.存放在HBase中的主要数据 数据类型: 1. 统计结果,报表数据 ◦ 运营情况,运力情况,收入等结果 ◦ 通常配合Phoenix进行SQL查询 ◦ 数据量小,查询灵活性高,延时要求一般 2. 原始事实类数据 ◦ 订单,司机,乘客等,GPS和日志等 ◦ 主要用作在线和离线数据供给 ◦ 数据量大,一致性和可用性要求高,延时要求高,实时写入,单点或者批量查询 3. 生产中间数据和结果数据 ◦ 模型训练所需数据等 ◦ 数据量大,可用性和一致性要求一般,批量查询对吞吐要求高 4. 线上系统的备份数据 ◦ 历史数据,查询频率不高,延时要求高
- 6.场景一:订单事件 需要满足三个需求: 1. 1. 在线查询订单的生命周期的各个状态 1. 包括status,event_type,order_detail等信息 2. 主要查询来自客服系统 2. 2. 在线历史订单详情查询 1. 同时由redis来存储近期的订单,当redis不可用,查询会直接落到HBase 3. 3. 离线对订单的状态进行分析
- 7.场景一:订单事件 写入,满足每秒10K事件 读取,满足每秒1K事件 时效性,5s以内数据可用
- 8.场景一:订单事件 1. 订单状态表 ◦Rowkey:'>Rowkey: