文档详情

HBase在滴滴出行的应用.pptx

发布:2018-07-21约4.06千字共40页下载文档
文本预览下载声明
HBase在滴滴出行的应用技术创新,变革未来背景介绍滴滴出行:提供一站式的出行服务,包括专车,快车,出租车,巴士,试驾,代驾,租车,共 享单车(OFO)等出行服务。HBase:Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统HBase在滴滴的主要使用业务在线业务:服务于最终用户,需要实时快速地响应用户的操作对数据访问的延时非常敏感,访问趋向随机业务如派单,动调,计费,支付,客服等离线业务:通常是定时的大批量处理任务,对一段时间内的数据进行处理并产出结果对任务完成的时间要求一般,处理逻辑复杂业务如天报表,安全分析,用户行为分析,模型训练等访问HBase的方式HBase Native APIThrift server (C++, PHP, Go,python) PhoenixPhoenix Queryserver MapReduce job Spark Job Streaming存放在HBase中的主要数据数据类型:1. 统计结果,报表数据运营情况,运力情况,收入等结果通常配合Phoenix进行SQL查询数据量小,查询灵活性高,延时要求一般2. 原始事实类数据订单,司机,乘客等,GPS和日志等主要用作在线和离线数据供给数据量大,一致性和可用性要求高,延时要求高,实时写入,单点或者批量查询3. 生产中间数据和结果数据模型训练所需数据等数据量大,可用性和一致性要求一般,批量查询对吞吐要求高4. 线上系统的备份数据历史数据,查询频率不高,延时要求高场景一:订单事件需要满足三个需求:1. 在线查询订单的生命周期的各个状态包括status,event_type,order_detail等信息主要查询来自客服系统2. 在线历史订单详情查询同时由redis来存储近期的订单,当redis不可用,查询会直接落到HBase3. 离线对订单的状态进行分析场景一:订单事件写入,满足每秒10K事件读取,满足每秒1K事件 时效性,5s以内数据可用场景一:订单事件1. 订单状态表Rowkey: reverse(order_id) + (MAX_LONG - timestamp)Columns: 该订单各种状态2. 历史订单表Rowkey: reversed(passenger_id | driver_id) + (MAX_LONG - timestamp)Columns: 用户在时间范围内的所有订单场景二:司机乘客轨迹需求:1. 满足实时或者准实时司机乘客的轨迹坐标查询2. 满足离线大规模的轨迹分析场景:1. 给定ID,查询其历史移动轨迹2. 给定时间和空间范围,查询符合条件的所有轨迹场景二:司机乘客轨迹使用坐标的业务:客服系统查询某客户的某个订单的轨迹可视化系统查询指定地理范围的轨迹情况坐标+半径距离,坐标矩形运营系统地图交通分析 质量控制场景二:司机乘客轨迹坐标数据流水线:出租车轨迹kafkastorm快车轨迹专车轨迹HBase客服可视化运营地图场景二:司机乘客轨迹通过ID查询轨迹Rowkey: ID+TimestampColumn: 轨迹详细信息提供java API给用户使用通过地理范围查找全部出现的轨迹需要建立空间索引表GeoHash分区Rowkey: Reversed_geohash + Timestamp + ID 提供3种方式访问小范围或短时间数据:API一次性查询, 延时小,成本低中等范围或中等时间数据: 提供iterator/scanner批量查询结果,延时较高,成本低大范围或者长时间数据:提供Base mapper等离线查询方法,延时高,成本高场景三:ETAETA(预计到达时间)模型实时训练减少训练时间,准实时生产多城市并行训练增加灵活性减少人工干预造成的问题场景三:ETAETA流程:1. 原始数据汇集2. 清洗过滤3. 特征提取4. 存储和持久化5. 模型训练订单Kafka司机轨迹有效性信息Processor聚合后行程Spark streaming分城市,时间的特征HBase特征数据Model TrainingHDFSETA Server场景三:ETA模型训练通过spark任务,每30分钟对各个城市训练一次模型训练第一个阶段,在5分钟内,按照设定条件从HBase读取所有城市数据 模型训练第二阶段在25分钟之内完成ETA的计算Rowkey: Salting+CityId+Type0+Type1+Type2+Timestamp Columns: Order, FeatureHBase中的数据会每隔一段时间持久化至HDFS中,供新模型测试和新特征提取场景四:监控工具Hadoop集群资源监控和查询将hdfs文件的信息和job history定期导入HBase 通过phoenix来做复杂交互查
显示全部
相似文档