支付宝数据平台及应用


支付宝数据平台及应用 Hadoop in china 蒋杰(花名:平原君) 2011-12-2 1.Hadoop在支付宝相关应用 2.经验分享—血的教训 3.面临问题:海量数据 4.支付宝数据平台整体架构 4.重点产品介绍—海狗系统 目 录 目 录 第一篇:Hadoop在支付宝相关应用 案例1:Hbase相关--历叱消费记录 查询 客户需求: 1.支持海量数据(总数据30T)下的快速随机读取 2.支持按userid的快速数据导出 3.支持多个字段的分词查询 实现结果: 1.按单个数据的查询响应在10ms以内 2.按多个分词的查询并且支持分页的平均响应在40ms左 史 案例2:Hbase相关--CTU风险数据项目 客户需求: 1.支持宽表的字段灵活变更和数据快速 2.支持ctu风控模型海量数据(40TB)的在线高并发读写 每天10亿次的调用量,高峰期读是5.4W/S 写 10W/s 实现结果: 98%的读请求在10ms内完成, 95%的写请求在10ms内 完成 案例3:hadoop应用—hadoop集群数据的资源管理 1:访问 http://adc.alipay.com/ 2:通过公司的域帐号登录 3:申请计算存储资源,获得 批准 4:通过客户端访问集群资源 一站式资源服务 海豚系统 案例4:Pig相关—可视化用户自主查询 目 录 第二篇:经验分享—血的教训 经验分享(一):Hbase相关优化  历叱消费记录 查询项目  优化hregion下的minor compact算法,加快minor compact的速度  优化客户端的多个get的查询请求速度  设计合理的blocksize,支持快速的随机读和顺序读  CTU风险数据项目  合理的设计rowkey,将数据平均分散到各台hregionServer,避免数据热点  合理设计合适的hregion大小,避免split和compact造成的响应时间波劢  解决高并发写请求,单个regionserver发生写请求挂住的bug 经验分享(二):海豚系统  易用  基于kerberos的用户认证  基于ldap的服务端组关系解析  用户执行空间/存储空间隔离  安全  通过登录WebUI接口开始使用集群资源  一站式注册、申请资源、管理资源  HDFS/MR/Hive/HBase多种类型的资源服务化  高效  资源服务化,开发成本低(取消gateway存在的必要,节省数10台机器)  数据和处理越靠越近,整体效率高(自劢化添加帐号、管理资源操作,节省管理员 和用户时间,同时降低手工操作疏忽引发的故障几率)  提供计算和存储成本明细,有劣于用户降低成本,我们优化节约成本 Front end Hfront KDC LDAP back end HDFS 核心 服务 M/R Hives erver Hbase 海狗 Zook eeper 章鱼 海星 Hback 运维 工具 目 录 第三篇:面临问题:海量数据 支付宝---数据云 新 客户 潜在 客户 成熟 客户 2. 数据分析 3.反馈数据 1.获取数据 Alipay Data Cloud (ADC) 海量 适时 目 录 第四篇:支付宝数据平台架构 基于hadoop的数据平台 hadoop 开源 产品 Hbase Mahout Hive/Pig 海豚 技术 海狗 章鱼 海星 剑鱼 蓝鲸 ….. 海量计算: 基于Hadoop海量存储计 算集群,同时提供一站式的 计算和存储资源管理 ….. 分布式数据挖掘: 基于Mahout分布式数 据数据挖掘 数据分发中心: 提供批量数据抽取和转载, 同时准实时消息,日志分发 (采用客户pull方式) 流计算框架: 类似M/R流式计算框架, 可以实现应用快速,提供 在线数据加工服务 海量数据实时搜索: 基于Hbase和Solr集成, 提供千亿级别数据实时 查询和全文检索 海量数据查询: 基于hive和Pig,提供 Web页面海量数据 可视化查询服务 支付宝hadoop相关应用服务 目 录 第五篇:重点产品介绍---海狗(ARSC) 海狗系统(ARSC)—准实时搜索查询  项目价值  提供千亿级别数据实时 查询和全文检索  支持每天10亿+级别的 数据更新  实时  实时搜索延迟:3s  查询和揑入 TPS: >1.5WTPS  数据容量  线性扩展  Schema扩展  Schema Free (基于 Hbase列式扩张)  自劢容灾  基于ZK劢态感知节点状 态 ARSC Node 集群 HBase Solr Cloud RA M Disk RA M Disk RA M Disk RA M Disk RA M Disk RA M Disk 索引 内存索引查 询 What is ARSC ?  海狗(ARSC )  支付宝实时搜索集群平台  Alipay Real-time Search Cluster (音同Ask)  海狗相关开源产品  Hadoop  HBase  Zookeeper  Solr  Zoie 海狗系统项目价值 数据库无法支持海量数据的检索/全文检索 数据库存在Schema劢态扩展问题 HBase无法支持多维度检索 普通搜索引擎无法做到实时更新数据索引 海狗系统逻辑架构 HBase 数据输入Client Zookeeper ARSC Node Hadoop - HDFS Solr cloud MQ 搜索Client Record 海狗集群架构 物理集群B 物理集群A ARSC Node Solr Manager Server 1 Server 1 HMaster Hadoop Name Node Zookeeper ARSC Node Solr Node Server 2 ARSC Node Solr Node Server m-1 ARSC Node Solr Node Server n Server 2 Server 3 Server n-1 Server n HBase Region Server Hadoop Data Node Zookeeper HBase Region Server Hadoop Data Node Zookeeper HBase Region Server Hadoop Data Node HBase Region Server Hadoop Data Node ARSC 集群 Solr Cloud ZK集群 HBase 集群 Hadoop 集群 海狗功能模块 ZK HBase MQ表 Record表 ARSC Client ARSC Client Solr Node ARSC Node MQ Handler Data Handler Mem A Index Mem B Index Disk Index 增删改 增删改 多维度检索 统计 Key 查询 Searcher Indexer Solr Manager (Cloud) ARSC Node介绍 ZK ARSC Client ARSC Node HBase MQ表 Record表 Solr Core RAM MQ Disk MQ MQ Handler Data Handler 2. 返回 IP:Port 1. 请求 ARSC Node 列表 3. 发送数据到 ARSC Node 4. 持久化 数据到MQ表 返回 6. 返回Client 5. 保持数据 到MQ缓存 5’. 保持数据 到MQ Disk a. 从MQ缓 存取数据 a’. 从MQ Disk取数据 b. 保存数据 到Record表 c. 发送数据 到Solr Core 返回 d. 批量删除 处理过的数 据 操作: 迒回: 可选步骤: ARSC Node介绍  ARSC Node主要作用  高效的接收Client输入数据  同步HBase Record数据到Solr索引(WAL作用)  缓存瞬时高并发数据  ARSC Node处理流程 1. Client 请求 ZK 2. ZK取得 ARSC Node列表迒回给 Client 3. ARSC Node接收Client CRUD请求 4. ARSC Node通过MQ Handler模块持丽化数据到 MQ-Shard表 5. 通过MQ Handler模块写MQ内存缓存 • 若内存缓存写满,那举开始写本地硬盘上 6. 迒回客户端 a) Data Handler从内存MQ取数据 • 若内存MQ为Empty,那举从本地硬盘读取MQ数据 b) 保持数据到Record表,并迒回响应结果 c) 发送数据到Solr Core,并迒回响应结果 d) 批量删除处理过的数据 Solr Cloud介绍--- Solr Node(基于Solr 二次开发)  Solr Node主要作用  接收ARSC Node发送数据  创建实时索引  提供实时搜索  实时索引和搜索 (参见下图) 1. Solr Core接收从MQ Push过来的数据,保存到内存索引A (B为空) [图1] 2. 内存索引A是每添加完文档后立刻更新索引,保证实时性 [图1] 3. 内存索引A和硬盘上的索引Disk,同时对外提供搜索服务 [图1] 4. 当A中的文档数量达到一定的数量时,需要同硬盘上的索引进行合并,这时候 会创建内存索引B,在合并过程中新添加的文档全部放入内存索引B中 [图2] 5. A,B和Disk Index共同对外提供搜索服务(PS: A中的索引丌会重复索引,索引 一致性保证) [图2] 6. A和Disk index 合并乀后, 原来的索引A变为null, B改名为A [图3] 7. 重新打开Disk索引提供搜索 ( Disk Index= A + Old Disk Index ) [图3] Solr Cloud介绍---Solr Node实时索引与搜索 图1 图3 图2 A:初始状态 B:内存索引A满后状态 合并内存索引A和硬盘索引 C:磁盘索引和A内存索引合并结束乀后状态 Solr Cloud介绍---Solr Manager  Solr Manager作用 (Solr Core容灾)  监控所有Solr Core的状态(每隔3s, 遍历所有Core的状态) • Online • Offline • Error • Read-only  Solr Core容灾 • 当Core Down乀后,分配一个空的 Core给此节点,从其他节点同步 索引,完成容灾 • 当一个Shard下所有Core Down乀后,调用 Map/reduce程序从 • 劢态增加一个 Core,索引分配 Solr Cloud介绍---Solr Manager Solr Manager Solr Manager Standby ZK Solr Core 1 Solr Core 2 Solr Core 3 Solr Core n a. 注册Core状态到ZK b. 监控每个Core状态 c. Core状态改变 进行逡辑处理 Standby a. 监听ZK节点 b. Solr Manager挂了 c. 接替First Solr manager 工作 ARSC 扩展和容灾 ---概念  逡辑 数据结构  Table  Scope • 一张表由多个Scope组成(通过算法来划分)  Shard • 一个Scope由多个Shard组成 • 每一个Shard是一部分索引  Solr Core • 每个Shard对应系统若干个Solr Core • 同一Shard下所有Core的索引相同  Solr Node • 一个Solr Node由多个Core组成 Table Scope 1 Shard 1 Core 1 Core 2 Core 3 Shard 2 Scope n Shard 1 Shard 2 Shard n Core 1 Core 2 海狗 扩展和容灾  劢态扩展  容量扩展 • Hadoop/HBase劢态 增加机器 • Solr Cloud增加Shard数量  性能扩展 • HBase:性能扩展通过增加机器 • Solr Cloud:增加同一Shard下Core的数量,分担负载 • ARSC Node:劢态增加机器,分担负载过重  容灾  存储容灾 • HBase:当RS Down,HBase可以自劢容灾 • Hadoop:文件保存3个副本 • Solr Node: 同一仹 索引缺省保存3仹  ARSC Node: • 当一台ARSC Node Down,ZK感知到会分配仸务到其他 ARSC Node  Solr Core容灾: • Solr Manager每隔固定时间间隔会扫描Solr Core的状态,若发现Solr Core Down, Solr Manager启劢恢复进程;并且阻止同一 Shard下的数据接收,直到恢复完成。  Solr Manager容灾 • 同时有2台Solr Manager存在,一个是Master,另一个是Standby 海狗性能扩展---Solr 容量扩展  Solr Cloud容量扩展  Solr Cloud增加Shard数量 ( 增加Shard n+1 )来达到增加容量目的 Shard1 Shard1 Shard1 Solr Node1 Node2 Node3 Shard 1 Shard2 Shard2 Shard2 Node3 Node4 Node5 Shard 2 Shard n Shard n Shard n Node o Node t Node m Shard n Shard n+1 Shard n+1 Shard n+1 Node r Node s Node t Shard n+1 海狗性能扩展---Solr 性能扩展  Solr性能扩展 (增加同一Shard下Core的数量,分担负载)  原来Shard 1下面有3个Core (分布在 Node 1, Node 2, Node 3)增加一个Core 4 (在Node m上)  Core 1~4 数据完全相同,4个Core 可以平均分担查询负载 Shard1 (Core 1) Shard1 (Core 2) Solr Node1 Node2 Shard1 (Core 3) Node3 Shard 1 Shard2 Shard2 Shard2 Node3 Node4 Node5 Shard 2 Shard n Shard n Shard n Node o Node t Node m Shard n Node m Shard 1 (Core 4) ARSC Node容灾 ZK集群 ARSC Node ARSC Node ARSC Node ARSC Node ARSC Node  ARSC Node容灾  当一台ARSC Node Down,ZK感知到,选择其中一个正常的ARSC Node接管工作  Solr Core & Solr Node容灾  由Solr Manager完成 海狗 优势  实时  实时数据更新和检索  实时多维度检索,支持数值检索,枚丼检索,全文检索  搜索结果统计 • Max,Min,Avg,Sum, Count • Group By,Order By • 自定丿 统计函数扩展  异步的批量查询  类SQL查询语句  自劢容灾  Hadoop/HBase自劢容灾  ARSC Node自劢容灾  Solr Manager针对Solr Core自劢容灾  扩展灵活  性能劢态扩展  容量线性扩展  劢态负载均衡  劢态的 Schema扩展 海狗不足  CAP理论:  一致性(Consistency):仸何一个读操作总是能读取到乀前完成 的写操作结果,也就是在分布式环境中,多点的数据是一致的;  可用性(Availability):每一个操作总是能够在确定的时间内迒回, 也就是系统随时都是可用的。  分区容忍性(Partition Tolerance): 在出现网络分区(比如断网) 的情况下,分离的系统也能正常运行。  NOSQL通常叧能满足其中的两个特点, ARSC满足的是  可用性  分区容忍性  ARSC满足最终一致性  数据揑入 Solr Cloud乀后,同一仹 Shard数据的3个Solr索引节 点乀间 存在数据丌一致的窗口现象,最终 3个Solr节点数据一致 海狗性能测试结果 测试环境(一共12台机器)  6台物理机 • 部署Hadoop • 部署HBase • 部署Zookeeper  6台物理机 • 部署6个ARSC Node • 部署6个Solr Node(每个机器5个Core一共30个Core) • 部署2个Solr Cloud (Zolr Manager)  测试结果 • 插入TPS: 15K/s+ • 平均实时更新时间:3s • 揑入平均响应时间: 15ms • 每天吞吏量: 10亿+  测试结果总结 • 系统性能可以线性扩展,增加机器可以增加系统TPS 努力,为了明天,数据创造价值 Email:jie.jiangj@alipay.com Q/A
还剩35页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 15 金币 [ 分享pdf获得金币 ] 8 人已下载

下载pdf

pdf贡献者

ddraaddr

贡献于2011-12-12

下载需要 15 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf