Uber如何快准稳的扩容HDFS集群?
极客时间编辑部
讲述:杜力大小:1.21M时长:02:39
三年前,Uber 采用 Hadoop 作为大数据分析系统中,海量存储 HDFS 和并行计算(YARN)的底层架构方案。随着业务的发展,Uber 不断对这套系统的稳定性、可用性以及用户体验进行了持续的改善。
据了解,Uber 使用 Hadoop 的场景有很多,包括批处理和流式计算。其涵盖的业务场景有反欺诈、机器学习,以及达到时间预估系统等。
随着 Uber 业务在近几年的发展,其 Hadoop 集群数据存储容量大小和访问频次,都在以指数级别的方式增长。仅仅在 2017 年,HDFS 存储数据量就增长了 400% 以上。
想要完成一个兼顾扩展性和高性能的架构设计,绝对不是一件容易的事情。为了达到这个目标, Uber 的数据架构团队对整个架构进行了检查和分析,将目标拆分为几个大的方向去进行优化。具体包括:ViewFS(View File System )、快速的 HDFS 版本升级、NameNode 垃圾回收调优、限制系统中小文件数量、HDFS 加载管理服务,以及增加了一个 NameNode 的只读副本。
为了实现拆分,Uber 参考并行计算以及 Presto 集群相关操作分布的情况,将底层 HBase 进行了拆分。拆分之后,除了大幅降低了主集群的负载之外,还使得 HBase 更加稳定了,并且集群重启时间也由原来的几个小时缩短到了几分钟。
最终,Uber 选用了多个 HDFS 集群的方案,这种方案可以规避采用单一的 HDFS 集群的潜在风险(如宕机)。此外,物理层面的隔离还提高了整个系统的可靠性。不过这种方案有一个缺点,就是会增加 HDFS 集群运维的复杂度。
Uber 总结了他们在 HDFS 架构方面的一些最佳实践(其他同样采用 HDFS 的公司或者组织同样可能面临的一些问题),具体如下:
分期规划解决方案:像拆分 HDFS 集群这种解决方案,属于长期规划;而短期的、临时的解决方案,可以为长期规划提供缓冲的时间。两类方案结合规划施行,更加合理。
小文件对 HDFS 是一个很大的隐患,关于小文件的治理,越早开始越好。团队可以通过提供工具、文档,以及对用户培训的方式,在大规模的、多租户的 HDFS 集群中,尽可能地避免小文件的产生。
积极参与到社区当中:Hadoop 已经发行了有 10 年多的时间了,它的社区也比之前活跃了很多。每个新的版本中,都会引入社区中的一些可扩展性和功能性方面的新特性。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论