搜狗大数据平台部 申贤强:分布式存储优化与离线混布弹性计算平台

范姜敏丽

2017/11/14 发布于 技术 分类

基于社区的HDFS进行元信息的垂直扩展,且进一步优化针对二级目录的拆分,让HDFS的元数据更加均匀,降低GC time,提升HDFS稳定性到99.99%,同时业务发展制约于计算资源的缺乏,因此采用离线混布的计算模型,将资源进行统一管理,提供稳定高效的服务,极大的解决了业务方资源不足的问题。听众收益:了解HDFS当集群扩大一定阶段后需要应对的问题,以及具体的Fedration的技术,了解针对YARN改进弹性计算框架改进可能遇到的问题。

文字内容
1. 分布式存S储计A与算CC离平2线台01混7 部弹性 Sogou 申贤强
2. About us • 来自搜狗大数据平台部 SACC2017• 基于Apache Hadoop生态,建设搜狗海量 数据存储和计算平台 • 提供稳定高效的数据分析系统,为搜狗各 类型大数据应用,提供一站式数据处理服 务 • 每天数十亿的数据增量,数以万计的数据 计算流程,使数据的价值得到充分利用 • 最前沿技术落地及推进开源技术的发展
3. Catalogue 目录 1 背景 2 技术选型 SACC20173 分布式存储优化 4 弹性计算平台背景 5 弹性计算平台 6 TODO
4. 1SACC2017背景 Background
5. Background 背景 100G内存管理约3.5亿inode 集群规模上限约1000台 SLA水平只有60% SACC2017HDFS集群 规模 稳定性 SLA水平 扩展性 服务恢复时间8个小时以上 读写压力大namenode切换 删除千万block导致HDFS崩溃 Full gc time平均是5s以上 集群规模达到瓶颈 集群性能达到瓶颈
6. 技术选型 2 2017Technology SACCselection
7. 考察业内的选择 • 国外主流企业 • 国内互联网企业 SACC2017技术选型 Technology selection 目的实现集群的无限扩容,提高性能 最终选择 借鉴和自研的垂直扩展Hadoop元信息的技 术,即社区的Fedration方案,将集群的管理能 力扩展到理论无上限,且保持高性能,稳定性 达到99.99%
8. 分布式存储 3 2017优化 Distributed storage SACCoptimization
9. Distributed storage optimization 分布式存储优化 1. HDFS Fedration SACC2017
10. Distributed storage optimization 分布式存储优化 2. NameService拆分 业务原则建议 SACC2017重要性原则 • 数据盘:原始日志 • 业务盘:/user目录 • 其他:如mr_history,logs等 • Online:重要业务,HDFS稳定性要 求比较高 • Offline:离线处理业务
11. 3. FastCopy Distributed storage optimization 分布式存储优化 https://issues.apache.org/jira/browse/HDFS-2139 SACC2017
12. Distributed storage optimization 分布式存储优化 不停服务全量拷贝 • 关闭HDFS Balancer SACC20174. 切分基本流程 • Split,将输入目录进行切分,建议粒度比 如为500 • distribute fastcp,启动分布式fastcp,建 议低并发 • 权限管理,目录chown/chmod管理 • Checksum校验,结果进行校验,防止出 错 增量迁移数据
13. Distributed storage optimization 分布式存储优化 5. 二级目录拆分 (现实却往往不理想) Blocks : 1亿 BlocSks :A2亿CC2017 Blocks : 3000W
14. Distributed storage optimization 分布式存储优化 5. 二级目录拆分 https://issues.apache.org/jira/browse/HDFS-12555 Blocks : 1亿 SACC2017Blocks : 1.3亿
15. Distributed storage optimization 分布式存储优化 6. 自更新Client Mount table • 地域特性,就近原则 2017• 版本控制 SACC• 增量更新需要的Jar • 更新conf本地优先 • 支持conf强制更新
16. Distributed storage optimization 分布式存储优化 优化后的性能 •NameNode的响应时间由平均秒级降低到毫秒 SACC2017
17. 分布式存储优化 Distributed storage optimization 600000 500000 2017优化后的性能 C• Master的性能和吞吐提升3倍 SAC• 计算性能提升12%以上 400000 300000 200000 100000 • SLA水平到达99.99% 0
18. 弹性计算 4 2017平台背景 Elastic computing SACCplatform background
19. Elastic computing platform background 弹性计算平台背景 预算 矛盾 持续在增加 SACC2017利用率 整体利用率却在降低 资源需求在增加,但资源的整体利用率却不高
20. Elastic computing platform background 弹性计算平台背景 造船过河不如借船过河 平台 解决实际业务 资源不足问题 SACC2017整合闲散资源以提 高资源整体利用率 集群 集群 业务1 预算还没到位 业务2 需要更多资源 晚上CPU等资源利用率低 白天CPU等资源利用率低
21. Hadoop资源隔离性差 • 任务间的影响造成高优先级业务SLA无法得到保证 弹性计算平台—Pythagoras Elastic computing platform—Pythagoras 1. Hadoop任务弹性计算 集群按重要性划分多个 SACC2017• online重要业务集群 • offline离线业务集群 集群间HDFS不共享 根据offline集群的资源负载弹性计算 对用户是透明的
22. Elastic computing platform —Pythagoras 弹性计算平台—Pythagoras 1. Hadoop任务弹性计算 SACC2017HDFS 计算 框架 HDFS 计算 框架 Online Client Pythagoras Proxy 任务的类型 集群的负载 Recovery
23. Elastic computing platform —Pythagoras 弹性计算平台—Pythagoras 2. C/S业务弹性计算—总体流程 • Driver精细的资源控制 2017• Docker环境隔离 • YARN自动化资源控制 SACC• 基于时间/负载的资源调度
24. Elastic computing platform —Pythagoras 弹性计算平台—Pythagoras 2. C/S业务弹性计算—总体流程 SACC2017
25. Elastic computing platform —Pythagoras 弹性计算平台—Pythagoras 2.C/S业务弹性计算—基于负载的调度 • Driver收集CPU/Mem/Net/Disk负载 • 负载超过阈值Driver Kill Service 2017• Driver将负载信息上报给LocateServer • NodeManager将负载上报给RM C• RM根据负载进行资源调度 SAC• LocateServer根据负载返回Service Client • 不影响集群原有服务 集群1 • 提高集群的利用率 集群2
26. Elastic computing platform —Pythagoras 弹性计算平台—Pythagoras 3.集群管理 SACC2017 集群1 集群2 Online Hadoop Offline Hadoop
27. 提高并均衡集群利用率 弹性计算平台—Pythagoras Elastic computing platform—Pythagoras SACC2017集群统一管理优势 解决业务方资源不足的问题 节约成本 提高online业务的SLA水平
28. 6SATCTOODCOD2O017
29. Docker支持核心搜索服务 2017支持合理的资源隔离策略 SACC支持更加合理的基于负载调度策略 支持Yarn Fedration TODO TODO
30. SACC2017