上海品茶

您的当前位置:上海品茶 > 报告分类 > PDF报告下载

专场20.5-Apache Pegasus的原理与实践-王伟.pdf

编号:126953 PDF 45页 2.15MB 下载积分:VIP专享
下载报告请您先登录!

专场20.5-Apache Pegasus的原理与实践-王伟.pdf

1、Apache Pegasus的应用与实践王伟 小米 高级软件工程师讲师简介王伟高级软工程师高级软件工程师,KV存储团队负责人曾就职于百度、SHAREit,先后负责分布式Trace、表格存储、KV存储系统的研发。目前就职于小米,负责KV存储方向。专注于存储系统、性能优化等技术,对分布式、Trace、存储等技术领域有较深的技术积累,及丰富的存储系统实践经验。目录 项目介绍 实现原理 功能特性 应用实践项目介绍项目介绍HBase的问题数据非本地保存(性能较差)Failover时间长(可用性低)JVM垃圾回收(长尾问题)Hadoop生态(运维困难)项目介绍Apache Pegasus一个高可用、高性能

2、、强一致、轻量级分布式KV存储系统项目介绍StartRelease 1.0.0Join ApacheRelease 2.0.0Open SourceGitHubMeetUP201520162017.92020.62020.92021.9Release 2.4.02022.9项目介绍架构设计中的一些考量 实现语言:C+、Java、Golang 存储介质:HDD、SSD、MEM 单机引擎:RocksDB、LevelDB 数据视图:KV、Tabular 数据分布:Hash、Range、一致性Hash 系统架构:中心化、去中心化 一致性协议:Raft、Paoxs、?实现原理实现原理分布式系统概念表A1

3、,2,3,4,51,2,3,4,5.a,b,c,d,e.1(2)2(3)3(4)4(5)5(1)传统数据库分布式数据库表Ba,b,c,d,e表A1,2,3,4,5表Ba,b,c,d,ea(b)b(c)c(d)d(e)e(f)实现原理Partition全局有序Key RangePartition#0 k0,k1 Partition#1 k2,k3 Partition#2 k4,k5Partition#3 k6,k7 Partition#4 k8,k9 k0k1k2k3k4k5k6k7k8k9 实现原理PartitionHash分环全Key Hash前缀HashPartition#0 k0,k5

4、Partition#1 k1,k6 Partition#2 k2,k7Partition#3 k3,k8 Partition#4 k4,k9 k0k1k2k3k4k5k6k7k8 离线)全量数据导出到HDFS,通过Spark进行离线计算,适用于在线数据离线分析场景 数据导入(离线-在线)离线生成数据文件,快速加载海量数据,适用于周期性更新数据,在线提供读取服务,大幅提升灌库速度及稳定性离线生态数据导出实现MetaServerZookeeperPrimary 0Secondary 1Secondary 2Primary 0Secondary 1Secondary 2HDFSSST fileSST

5、 fileSST fileSST fileUpload1 数据快照 通过RocksDB CheckPoint接口生成数据快照2 数据上传 将数据快照从ReplicaServer上传到HDFS即Pegasus的冷备份流程离线生态数据导出实现HDFSReplica serverReplica serverHiveSchema RDD3 使用PegasusSpark解析数据快照,进行离线分析转换为Hive(parquet)使用SparkSQL进行离线分析离线生态数据导入实现nodenodenodenodenodenodeTransform(Pegasus-Spark)HDFS(sst file)Di

6、stinctRepartitionSortoriginal dataoriginal data1 数据生成 通过离线系统ETL生成RocksDB底层数据文件离线生态数据导入实现2 数据下载 将数据文件从HDFS下载到ReplicaServer 数据将同时下载到Primary和Secondary3 导入引擎 待全部分片下载完成后进入导入环节 导入是特殊的写入,由Primary发起 通过IngestSST将数据文件加载到引擎 加载时引擎将瞬间阻写(分钟级别)MetaServerZookeeperPrimary 0Secondary 1Secondary 2Primary 0Secondary 1S

7、econdary 2HDFSSST fileSST fileSST fileSST fileDownload离线生态数据导入实现4 数据整理 数据导入后,必须进行全量数据Compaction,优化读取性能和空间占用 ManualCompaction可以限制Compaction速度,减小线上读取抖动 BulkLoad与Compaction解耦,支持多次BulkLoad之后,一次性Compaction应用实践应用实践选型对比极低时延数据量小成本高非强一致可用性高低时延数据量大成本低强一致可用性较高高时延 长尾数据量极大成本低强一致可用性较低Pegasus适用场景延迟敏感的在线业务、数据规模较大可用

8、性要求较高数据强一致性及持久化需求性能数据规模成本一致性可用性应用实践使用场景 典型场景 数据结构简单:单条记录长度短,Key-Value模型 存储量大:100G到100T级别 有持久化需求:数据高可靠,永久存储 强一致、低延迟:能满足强一致性,延迟较低(P99 通过API写入数据-写入完成-Manual Compact-切回Normal模式应用实践在广告业务落地 通过RocksDB调参,提升灌数据场景的QPS和吞吐参数参数值值disable_auto_compactionstruelevel0_file_num_compaction_triggerlevel0_slowdown_writes

9、_triggerlevel0_stop_writes_triggersoft_pending_compaction_bytes_limithard_pending_compaction_bytes_limitno limitmax_compaction_byteswrite_buffer_sizeraise to 256M form 64Mmax_write_buffer_numberraise to 6 form 4应用实践在广告业务落地 方案二:通过离线计算+BulkLoad,实现海量数据灌库 业务侧离线计算结束,以结算结果为数据源,对接PegasusSpark,生成数据文件 每天流量低峰

10、使用BulkLoad灌库,完成后进行Compaction 实践过程 离线生成底层数据文件 灌库 增量:切为灌库模式-下载数据文件到各节点-IngestSST-Manual Compact-切回Normal模式 全量:AB集群方式A提供在线读取-全量灌入B-切流到BB提供在线读取-全量灌入A-切流到A应用实践在广告业务落地 收益 2.2T数据灌库时间从12小时缩短为1小时(20台节点,100M限速)灌库过程中multi_get请求P99时延在30ms之内应用实践在广告业务落地 收益 相比于随机写入,磁盘IOPS、吞吐明显下降磁盘写吞吐/分钟磁盘读吞吐/分钟磁盘读请求个数/分钟磁盘写请求个数/分钟未来规划 功能 成本优化:更加丰富的负载均衡策略 SLA提升:多可用区部署能力 性能提升:Client请求聚合,非强一致性支持 架构优化:公有云对象存储(S3)支持,在线无损迁表,去除Zookeeper依赖 新能力:探索PMEM给Pegasus带来的变化,引入RocksDB更多特性 开源 推动Apache Pegasus合规建设,加速毕业进程 社区活跃度提升

友情提示

1、下载报告失败解决办法
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站报告下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。

本文(专场20.5-Apache Pegasus的原理与实践-王伟.pdf)为本站 (2200) 主动上传,三个皮匠报告文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三个皮匠报告文库(点击联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。
会员购买
客服

专属顾问

商务合作

机构入驻、侵权投诉、商务合作

服务号

三个皮匠报告官方公众号

回到顶部