什么是执行以下Hive查询的球场图:SELECT COUNT(*)FROM TABLE;对于一个80亿行/ 40列/ 400Gb的表?

时间:2014-02-07 16:24:00

标签: hadoop hive hdfs

执行以下Hive查询的大概是什么:SELECT COUNT(*)FROM TABLE;对于下表:

  • 行数:~80亿
  • 列数:40,各种大小的int,double和字符串
  • HDFS上的尺寸:~400Gb

我想根据实际数字检查任何球场数字,看看系统是否配置正确。

道歉,如果我错过了一些至关重要的事情,我对Hive和Hadoop很新。

此外,如果机器的数量也按比例增加,执行时间是否与行数呈线性关系?

1 个答案:

答案 0 :(得分:2)

提供一个棒球场的数字是不可能的。

但是我们可以列出影响因素:

  • 群集中配置的地图任务数
  • 块大小(确定将使用的映射器的数量)

执行时间将再次取决于这些因素。

E.g。如果我有100个Mapper可用,我的块大小为128MB - 我需要3200 Mappers(400 * 1024/128)。因此,假设所有映射器都分配给您的作业,则一次需要执行32次100个映射器(同样假设所有映射器同时开始和结束,这是一个愚蠢的假设:))。因此,每个映射器花费的时间为32 *。

我会将此作为评论,但我不允许这样做。