HIVE SQL的MAPPER读取哪些HDFS文件和文件块

HIVE表tab_orcfile5有9个HDFS文件,CLI运行以下SQL后打印的信息里显示2个MAPPER,
如何查到这2个MAPPER各自读取哪些HDFS文件和文件块?

select substr(str,1,1), sum(length(str)) from tab_orcfile5 group by substr(str,1,1);

img

回答不易,求求您采纳点赞哦

HIVE SQL的MAPPER会根据HDFS文件块的大小来读取HDFS上的文件,例如一个128MB的HDFS文件块,它会被分成多个小的map任务,每个map任务由一个mapper负责运行,因此,HIVE SQL上运行的任务比如select substr(str,1,1), sum(length(str)) from tab_orcfile5 group by substr(str,1,1),会根据HDFS上存储的文件和文件块情况分配对应的mapper来进行数据读取。在CLI运行这条SQL时,你可以查看一下运行信息里显示的Map任务ID,然后进入Hadoop的 NameNodeUI,根据Map任务ID可以查看到哪些HDFS文件和文件块是由哪个mapper来执行的。