首页 > 解决方案 > Hive表删除和查询处理

问题描述

根据我对 Hive 概念的理解,如果我们将数据集加载到 hive 表中,数据文件将从源路径移动到 HDFS 内的 hive 仓库,并且 HDFS 设置为数据的三个副本。

这些问题可能看起来很傻,但作为初学者,我想清除我的疑虑。

我的问题是:

1)如果我删除 hive 表,它会仅从 hive 仓库中删除数据文件,还是从 HDFS 的其他两个副本中删除数据文件?

2)如果我们正在处理 hive 表上的查询,该查询会作为分布式处理完成吗?例如,一个数据文件的大小为 1GB(实习生 8 个块 x 128MB),并且由于我们有三个复制因子,因此该文件总共有 24 个块可用,我们的 Hive 查询将分布在所有数据块中,或者它会仅在蜂巢仓库块上处理?

提前致谢..

标签: hive

解决方案


如果您从 HDFS 路径“加载数据路径”,则数据将从源 HDFS 路径移动到目标 HDFS 路径,如果您执行“加载数据本地路径”,它不会将数据从本地移动到 HDFS 路径,而是复制

对于您的问题,如果您删除 HDFS 中的文件,则所有副本都将被删除。

如果您有一个具有 3 个复制因子的 1gb 文件(8 个块),当您在 hive CLI 中触发查询时,它会将您的查询转换为 MR。它只处理 8 个块,如果触发作业的数据节点故障,它会访问不同节点上的第二个副本并处理数据(推测执行)


推荐阅读