今天再记录一下大数据开发的工作内容:回溯。回溯占工作比例比较大,说白了就是跑以前的数据。我今天开发了一个任务,而用户需要看一个月的数据,那我开发好之后,需要跑过去一个月的数据。
说起来好像很简单,事实上也不容易,并不是选好日期点了运行就能完事。一般还有如下步骤:
- 检查代码是否有需要改动?(例行任务和回溯任务可能有的代码需要改变)
- 回溯时并行度应该开多少?
- 开始回溯时要时刻盯着队列资源,队列资源多的时候可以增加并发。关于队列可以看之前的文章,关于 Yarn 队列如何进行调度。
其实在公司里,集群资源还是十分紧张的,并不是想要多少就要多少,所以要盯着队列资源,尽量在晚上 10 点前跑完任务,11 点还是进行回溯是会报警的,因为不能影响 0 点的例行任务。早上 8、9 点也是不能进行回溯的,不能影响例行任务的运行,例行任务是要在最晚产出时间之前必须跑完的,否则会影响用户使用和下游的任务。
跑大数据任务,总的感受是一切都能通过加机器解决,不过我的感受是 CPU 和 内存资源还是比较短缺,毕竟公司也要考虑经费问题,考虑收益和投入的比例,所以在开发任务时需要合理规划资源消耗。后面写篇文章总结一下 SQL 任务的资源消耗以及资源参数如何设置。
欢迎点击此处关注公众号。