{eval=Array;=+count(Array);}
首先明确下定义:计算时间是指计算机实际执行的时间,不是人等待的时间,因为等待时间依赖于有多少资源可以调度。
首先我们不考虑资源问题,讨论时间的预估。执行时间依赖于执行引擎是 Spark 还是 MapReduce。
Spark 任务的总执行时间可以看 Spark UI,以下图为例
Spark 任务是分多个 Physical Stage 执行的,每个stage下有很多个task,task 的时间也有大致的预估,如下图
Task 个数依赖于 Hive 表的文件数,每个task的执行时间依赖于 UDF是怎么实现的,需要具体问题具体分析。
MapReduce 任务的执行时间,也需要参考 hadoop web ui
整体执行时间 = map_time * map_number + reduce_time * reduce_number;
map 个数一般情况下是 hive 表的分区数;
map 执行时间取决于 每个分区里的数据量 和 udf 的逻辑;
不管是 Spark 还是 MapReduce,计算时间都依赖于:
0
回答0
回答0
回答0
回答0
回答0
回答0
回答0
回答0
回答1
回答