开发者社区> 问答> 正文

串行跑10个处理1个partition的job和跑1个处理10个partition的job,同样的10个partition,处理的业务逻辑是一样的,只是一个是多路输入输出的,运行时间一样吗?? 因为目前用并行处理是希望节省时间,禁止并发的话,来不及处理。 多个任务会处理同一张表,但是是不同的partition,试验了几次,都是会有部分任务有问题; mapper阶段确实就是并发,但是目前遇到的状况是,并行跑10个job,每个job大概72个parttion,并行跑的时候,每个job任务提交到开始执行挺快的,

串行跑10个处理1个partition的job和跑1个处理10个partition的job,同样的10个partition,处理的业务逻辑是一样的,只是一个是多路输入输出的,运行时间一样吗??
因为目前用并行处理是希望节省时间,禁止并发的话,来不及处理。
多个任务会处理同一张表,但是是不同的partition,试验了几次,都是会有部分任务有问题;
mapper阶段确实就是并发,但是目前遇到的状况是,并行跑10个job,每个job大概72个parttion,并行跑的时候,每个job任务提交到开始执行挺快的,但是如果720个partition放到一个job里面去处理的话,任务提交时间就会非常久,这个任务提交上去到真正开始执行mapreduce的时间,能优化吗?

展开
收起
123ya 2017-05-14 22:35:21 4389 0
1 条回答
写回答
取消 提交回答
  • 您好,实际上MaxCompute本身是分布式的,mr的中map和reduce也是并发处理的,用户无须干预。
    另外odps对表的操作不支持并发操作的,因为没有事务的控制,如果您多个任务处理同一个partition很有可能报错。
    处理的速度还是需要您从业务逻辑上优化,以及调节map和reduce的work内存等来调节速度,
    https://help.aliyun.com/document_detail/27834.html?spm=5176.doc35455.6.568.SXtLZy
    您参考其中的set命令,另外,如果是后付费的项目,计算资源如果需要很多可能出现等待的情况,我看您的任务消耗资源还是蛮大的,后付费的项目使用的是公共的计算资源,所以刚开始可能需要等待资源。

    2019-07-17 21:10:11
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spark优化实践 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载