17|house keeping:如何让一个大数据系统持续可用
曹犟

你好,我是曹犟。
在上一节课中,我们学习了资源调度,了解了如何通过合理的调度策略,让有限的资源满足所有用户的需求。但是,即使有了完善的资源调度体系,如果不做好日常维护,大数据系统依然会逐渐“老化”,最终变得不堪重负。
今天,我们就来讨论如何通过 house keeping,让一个大数据系统持续可用。
House keeping 的本质与挑战
House keeping 这个词,字面意思是“家政”或“清洁工作”。在大数据系统中,它指的是为保持系统持续健康运行而进行的一系列日常维护工作。
具体包括哪些内容呢?主要有以下几个方面。
数据清理:清理过期数据、临时数据、僵尸数据。
日志管理:日志轮转、归档、清理,避免占满磁盘。
资源回收:回收不再使用的计算资源、存储空间、权限等。
性能优化:定期分析慢查询、优化索引、更新统计信息等。
预防性维护:监控系统健康状况,在问题发生前就解决。
为什么 house keeping 很重要,但又容易被忽视呢?
首先,它不像新功能开发那样有“成就感”。开发一个新功能,能看到立竿见影的效果,团队有成就感。但做 house keeping,往往是“做了没什么感觉,不做会出大问题”。
其次,问题往往是渐进式累积的,不会立即爆发。存储空间不是一天就满的,性能也不是一天就慢下来的。这种“温水煮青蛙”式的变化,很容易被忽视。
公开
同步至部落
取消
完成
0/2000
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结

1. 大数据系统中的 house keeping 工作包括数据生命周期管理、临时数据和中间结果的管理、日志管理、僵尸资源识别与清理、性能监控与预防性优化、备份与恢复机制、自动化与流程保障。 2. 僵尸资源的识别方法包括基于访问日志、数据血缘和用户反馈,清理流程包括生成清理候选列表、通知数据 Owner 进行确认、设置观察期和执行清理并记录。 3. 性能监控与预防性优化需要持续监控存储使用率、查询性能、任务执行时长和资源使用率,并进行预防性优化和容量规划。 4. 备份与恢复机制需要包括全量备份和增量备份的组合,验证备份可用性,进行异地备份。 5. 自动化工具和脚本的使用是关键,需要持续演进,同时需要建立 house keeping 责任制、巡检制度、KPI考核和规范的流程。 6. 文档和知识沉淀也是重要的,包括维护手册、故障案例库和团队分享会。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《大数据应用实战》,新⼈⾸单¥59
《大数据应用实战》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(1)
- 最新
- 精选
大寒答:这个事情可以说是从无到有一步步过来的,所以两个思考题一并回答了。最开始的时候其实是没有任何机制的,所以遇到了这样几个典型问题:1.存储占多少不知道;2.数据出了问题怎么办,一点点看代码查;3.数据任务有多少是知道的,但是有多少僵尸任务不知道。后续团队迭代中台时候把数据血缘开发放在了重中之重,但是呢其他问题并没有过多关注(可能也是因为大数据存储不算太贵,这方面成本不太敏感)。到了22-23年的时候,由于业务收缩各部门开始了降本增效,而这个时候我们才发现存储/僵尸任务还是一片迷雾。这个时候我个人在看王朝兴衰,人体健康等内容,从中突然想到了是否数据是否也该有生命周期(我觉得这也算是仿生学的指导意义所在,也一直在思考如何触类旁通)并提了出来。当时的思考还不甚清晰,经过小组讨论后,先开发做到了分区数据保留。后续尝试陆续做了报表层数据使用探测,存储占用测算等等,最后形成了一份使用报表。但是呢,也就止步于此了,依然需要人定期去看相关报表/数据展示。所以这节课算是收获不小,知道了下一步应该做到的是如何自动化定期报告触达出来而非钻牛角尖去想如何完善(因为之前想再推动时会被收益过低被拒),让现有成果能够更好的表现出来。 另追问一个问题,关于统一日志收集。因为现在大部分组件依赖于云厂商,但仍有自建的内容。所以大部分日志可以到对应云厂商那里查询,但是仍有组件的日志会保存到部署的机器上。老师是否建议做功能开发将这部分内容统一归入到云厂商提供的日志服务中吗?比如我们的DolphinScheduler是自己搭的,他的运行日志等内容就是存在了部署机上,需要去那台机器查询。2025-12-01归属地:北京
收起评论