关于大数据平台上任务管理的思考
本文于2019年7月16日完成,发布在个人博客网站上。
考虑个人博客因某种原因无法修复,于是在博客园安家,之前发布的文章逐步搬迁过来。
作业,比如提交一个hive脚本到计算平台上运行,这个脚本宏观上称为一个作业。
任务,比如mapper,reducer等。
资源,比如CPU时间,内存,硬盘IO,网络IO,墙钟等。
期望计算平台提供的信息,比如:
- 当前有哪些作业在运行。
- 作业占用的资源。
- 作业总共使用了哪些运算节点。
- 指定的作业使用了哪些节点,分别占用了多少资源。
- 每个节点上分配了哪些任务,分别占用了多少资源。
- 每个作业有多少stage,分别有多少任务,各占用多少资源。
- 各分类的排名。
- 各个mapper,reducer读入的数据量,输出的数据量。
- 数据表的访问频率,访问数据量。
- SQL的执行计划。
监控和通知,比如:
- 针对上述信息,例行发送指标值。
- 针对上述信息,定义阈值,当超出阈值,发送给指定的群组。
- 针对上述信息,提供趋势图,供指定人查看。
- 运行时占用资源多的作业,执行计划,输入数据量,输出数据量等。
日常工作中需要回答的问题:
- 计算平台的资源使用情况,有什么变化,变化趋势怎么样。
- 计算平台的资源使用情况是否合理。
- 计算平台是否需要扩容。
- 任务的数量,近期是否有什么变化。
- 任务处理的数据量,输出的数据量,是否有什么变化,变化的特点是什么,是否合乎业务特点。
- 任务占用的资源,是否有什么变化,变化的特点是什么。
- 任务运行时,stage,mapper,reducer的数量,使用的资源等,是否有什么变化,变化的特点是什么。
- 对于给定的某个作业,占用的资源是否充足或者过多。
- 对于给定的某个作业,对应的代码,是否需要优化,优化空间有多大。
分配资源的原则,充分利用资源,比如:
- 重点业务,优先保障。
- 非重点业务,合理安排调度启动时间,控制等待时间和墙钟时间。
- 监测资源瓶颈,避免争用。
- 制定扩容计划,及时实施。
有了上述数据,就有了调整资源的依据,减少无效的沟通,提高生活质量。
本文来自博客园,作者:jackieathome,转载请注明原文链接:https://www.cnblogs.com/jackieathome/p/17949675
热门相关:爱的味道/性的公式 爱抚之神 水润继承女 暖君 重生隐婚:Hi,高冷权少!