王海鱼 发表于 2024-3-26 02:21:41

关于大数据平台上任务管理的思考

本文于2019年7月16日完成,发布在个人博客网站上。
考虑个人博客因某种原因无法修复,于是在博客园安家,之前发布的文章逐步搬迁过来。
作业,比如提交一个hive脚本到计算平台上运行,这个脚本宏观上称为一个作业。
任务,比如mapper,reducer等。
资源,比如CPU时间,内存,硬盘IO,网络IO,墙钟等。
期望计算平台提供的信息,比如:

[*]当前有哪些作业在运行。
[*]作业占用的资源。
[*]作业总共使用了哪些运算节点。
[*]指定的作业使用了哪些节点,分别占用了多少资源。
[*]每个节点上分配了哪些任务,分别占用了多少资源。
[*]每个作业有多少stage,分别有多少任务,各占用多少资源。
[*]各分类的排名。
[*]各个mapper,reducer读入的数据量,输出的数据量。
[*]数据表的访问频率,访问数据量。
[*]SQL的执行计划。
监控和通知,比如:

[*]针对上述信息,例行发送指标值。
[*]针对上述信息,定义阈值,当超出阈值,发送给指定的群组。
[*]针对上述信息,提供趋势图,供指定人查看。
[*]运行时占用资源多的作业,执行计划,输入数据量,输出数据量等。
日常工作中需要回答的问题:

[*]计算平台的资源使用情况,有什么变化,变化趋势怎么样。
[*]计算平台的资源使用情况是否合理。
[*]计算平台是否需要扩容。
[*]任务的数量,近期是否有什么变化。
[*]任务处理的数据量,输出的数据量,是否有什么变化,变化的特点是什么,是否合乎业务特点。
[*]任务占用的资源,是否有什么变化,变化的特点是什么。
[*]任务运行时,stage,mapper,reducer的数量,使用的资源等,是否有什么变化,变化的特点是什么。
[*]对于给定的某个作业,占用的资源是否充足或者过多。
[*]对于给定的某个作业,对应的代码,是否需要优化,优化空间有多大。
分配资源的原则,充分利用资源,比如:

[*]重点业务,优先保障。
[*]非重点业务,合理安排调度启动时间,控制等待时间和墙钟时间。
[*]监测资源瓶颈,避免争用。
[*]制定扩容计划,及时实施。
有了上述数据,就有了调整资源的依据,减少无效的沟通,提高生活质量。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: 关于大数据平台上任务管理的思考