sqlmap使用教程中文手册下载(kalisqlmap使用教程)

小舞 93 0

首先明确下定义:计算时间是指计算机实际执行的时间,不是人等待的时间,因为等待时间依赖于有多少资源可以调度。

首先我们不考虑资源问题,讨论时间的预估。执行时间依赖于执行引擎是 Spark 还是 MapReduce。

Spark 任务Spark 任务的总执行时间可以看 Spark UI,以下图为例

sqlmap使用教程中文手册下载(kalisqlmap使用教程)-第1张图片

Spark 任务是分多个 Physical Stage 执行的,每个stage下有很多个task,task 的时间也有大致的预估,如下图

sqlmap使用教程中文手册下载(kalisqlmap使用教程)-第2张图片

Task 个数依赖于 Hive 表的文件数,每个task的执行时间依赖于 UDF是怎么实现的,需要具体问题具体分析。

MapReduce 任务MapReduce 任务的执行时间,也需要参考 hadoop web ui

sqlmap使用教程中文手册下载(kalisqlmap使用教程)-第3张图片

整体执行时间 = map_time * map_number + reduce_time * reduce_number;

map 个数一般情况下是 hive 表的分区数;

map 执行时间取决于 每个分区里的数据量 和 udf 的逻辑;

不管是 Spark 还是 MapReduce,计算时间都依赖于:

数据源分区数每个分区里的文件数每个文件的大小udf 逻辑sql 逻辑(group by、filter、distinct count)

实际场景下资源是有限的,我们也不关心计算时间,反而是更关心一个数据集需要多久能处理完,比如一个1T的Hive表大概需要几个小时跑完MapReduce。这时候我们需要做实验,观察一个分区大概需要多久跑完,数据有没有 skew,从经验上给出一个合理的时间,进而保证任务交付。

抱歉,评论功能暂时关闭!