{eval=Array;=+count(Array);}
首先明確下定義:計算時間是指計算機實際執(zhí)行的時間,不是人等待的時間,因為等待時間依賴于有多少資源可以調(diào)度。
首先我們不考慮資源問題,討論時間的預(yù)估。執(zhí)行時間依賴于執(zhí)行引擎是 Spark 還是 MapReduce。
Spark 任務(wù)的總執(zhí)行時間可以看 Spark UI,以下圖為例
Spark 任務(wù)是分多個 Physical Stage 執(zhí)行的,每個stage下有很多個task,task 的時間也有大致的預(yù)估,如下圖
Task 個數(shù)依賴于 Hive 表的文件數(shù),每個task的執(zhí)行時間依賴于 UDF是怎么實現(xiàn)的,需要具體問題具體分析。
MapReduce 任務(wù)的執(zhí)行時間,也需要參考 hadoop web ui
整體執(zhí)行時間 = map_time * map_number + reduce_time * reduce_number;
map 個數(shù)一般情況下是 hive 表的分區(qū)數(shù);
map 執(zhí)行時間取決于 每個分區(qū)里的數(shù)據(jù)量 和 udf 的邏輯;
不管是 Spark 還是 MapReduce,計算時間都依賴于:
0
回答0
回答0
回答0
回答0
回答0
回答0
回答0
回答0
回答1
回答